Version Description
= 2.0 = This is a major upgrade that introduces support for DigitalOcean Spaces, renames the plugin to WP Offload Media Lite, and coincidentally upgrades some of its database settings. You may not be able to downgrade to WP Offload S3 Lite 1.x after upgrading to WP Offload Media Lite 2.0+.
= 1.1 = This is a major change, which ensures S3 URLs are no longer saved in post content. Instead, local URLs are filtered on page generation and replaced with the S3 version. If you depend on the S3 URLs being stored in post content you will need to make modifications to support this version.
= 0.6 = This version requires PHP 5.3.3+ and the Amazon Web Services plugin
Download this release
Release Info
Developer | deliciousbrains |
Plugin | WP Offload S3 Lite |
Version | 2.1 |
Comparing to | |
See all releases |
Code changes from version 2.0.1 to 2.1
- README.md +20 -10
- assets/css/storage-provider.css +1 -1
- assets/img/gcp-logo.svg +16 -0
- assets/js/script.js +1 -1
- assets/js/script.min.js +1 -1
- assets/js/storage-provider.js +5 -3
- assets/js/storage-provider.min.js +1 -1
- assets/sass/storage-provider.scss +25 -6
- classes/amazon-s3-and-cloudfront.php +205 -75
- classes/as3cf-compatibility-check.php +9 -1
- classes/as3cf-plugin-base.php +25 -4
- classes/providers/aws-provider.php +34 -15
- classes/providers/digitalocean-provider.php +1 -1
- classes/providers/gcp-provider.php +671 -0
- classes/providers/provider.php +201 -33
- classes/providers/streams/gcp-gcs-stream-wrapper.php +70 -0
- languages/amazon-s3-and-cloudfront-en.pot +187 -135
- readme.txt +20 -10
- vendor/Aws3/Aws/Api/ErrorParser/JsonParserTrait.php +1 -1
- vendor/Aws3/Aws/Api/ErrorParser/XmlErrorParser.php +1 -1
- vendor/Aws3/Aws/Api/Parser/AbstractParser.php +5 -0
- vendor/Aws3/Aws/Api/Parser/AbstractRestParser.php +14 -7
- vendor/Aws3/Aws/Api/Parser/Crc32ValidatingParser.php +6 -2
- vendor/Aws3/Aws/Api/Parser/DecodingEventStreamIterator.php +241 -0
- vendor/Aws3/Aws/Api/Parser/EventParsingIterator.php +81 -0
- vendor/Aws3/Aws/Api/Parser/Exception/ParserException.php +20 -1
- vendor/Aws3/Aws/Api/Parser/JsonParser.php +3 -0
- vendor/Aws3/Aws/Api/Parser/JsonRpcParser.php +7 -2
- vendor/Aws3/Aws/Api/Parser/PayloadParserTrait.php +5 -4
- vendor/Aws3/Aws/Api/Parser/QueryParser.php +10 -5
- vendor/Aws3/Aws/Api/Parser/RestJsonParser.php +10 -3
- vendor/Aws3/Aws/Api/Parser/RestXmlParser.php +7 -4
- vendor/Aws3/Aws/Api/Parser/XmlParser.php +3 -0
- vendor/Aws3/Aws/Api/Serializer/JsonBody.php +5 -1
- vendor/Aws3/Aws/Api/Serializer/QueryParamBuilder.php +2 -1
- vendor/Aws3/Aws/Api/Serializer/RestSerializer.php +8 -3
- vendor/Aws3/Aws/Api/Serializer/XmlBody.php +2 -1
- vendor/Aws3/Aws/AwsClient.php +24 -0
- vendor/Aws3/Aws/ClientResolver.php +1 -1
- vendor/Aws3/Aws/ClientSideMonitoring/AbstractMonitoringMiddleware.php +217 -0
- vendor/Aws3/Aws/ClientSideMonitoring/ApiCallAttemptMonitoringMiddleware.php +181 -0
- vendor/Aws3/Aws/ClientSideMonitoring/ApiCallMonitoringMiddleware.php +126 -0
- vendor/Aws3/Aws/ClientSideMonitoring/Configuration.php +55 -0
- vendor/Aws3/Aws/ClientSideMonitoring/ConfigurationInterface.php +35 -0
- vendor/Aws3/Aws/ClientSideMonitoring/ConfigurationProvider.php +272 -0
- vendor/Aws3/Aws/ClientSideMonitoring/Exception/ConfigurationException.php +13 -0
- vendor/Aws3/Aws/ClientSideMonitoring/MonitoringMiddlewareInterface.php +30 -0
- vendor/Aws3/Aws/Credentials/CredentialProvider.php +5 -1
- vendor/Aws3/Aws/Endpoint/PartitionEndpointProvider.php +29 -2
- vendor/Aws3/Aws/EndpointParameterMiddleware.php +65 -0
- vendor/Aws3/Aws/Exception/AwsException.php +24 -1
- vendor/Aws3/Aws/Exception/CouldNotCreateChecksumException.php +4 -1
- vendor/Aws3/Aws/Exception/CredentialsException.php +4 -1
- vendor/Aws3/Aws/Exception/EventStreamDataException.php +36 -0
- vendor/Aws3/Aws/Exception/MultipartUploadException.php +4 -1
- vendor/Aws3/Aws/Exception/UnresolvedApiException.php +4 -1
- vendor/Aws3/Aws/Exception/UnresolvedEndpointException.php +4 -1
- vendor/Aws3/Aws/Exception/UnresolvedSignatureException.php +4 -1
- vendor/Aws3/Aws/HandlerList.php +23 -2
- vendor/Aws3/Aws/HasMonitoringEventsTrait.php +36 -0
- vendor/Aws3/Aws/MockHandler.php +13 -0
- vendor/Aws3/Aws/MonitoringEventsInterface.php +29 -0
- vendor/Aws3/Aws/ResponseContainerInterface.php +13 -0
- vendor/Aws3/Aws/Result.php +2 -1
- vendor/Aws3/Aws/RetryMiddleware.php +73 -27
- vendor/Aws3/Aws/S3/AmbiguousSuccessParser.php +6 -2
- vendor/Aws3/Aws/S3/ApplyChecksumMiddleware.php +1 -1
- vendor/Aws3/Aws/S3/Exception/DeleteMultipleObjectsException.php +4 -1
- vendor/Aws3/Aws/S3/GetBucketLocationParser.php +6 -2
- vendor/Aws3/Aws/S3/RetryableMalformedResponseParser.php +6 -2
- vendor/Aws3/Aws/S3/S3Client.php +22 -0
- vendor/Aws3/Aws/S3/S3ClientTrait.php +4 -3
- vendor/Aws3/Aws/S3/S3MultiRegionClient.php +23 -1
- vendor/Aws3/Aws/Sdk.php +53 -1
- vendor/Aws3/Aws/Signature/SignatureProvider.php +2 -1
- vendor/Aws3/Aws/Signature/SignatureV4.php +41 -9
- vendor/Aws3/Aws/TraceMiddleware.php +3 -1
- vendor/Aws3/Aws/Waiter.php +1 -6
- vendor/Aws3/Aws/WrappedHttpHandler.php +1 -1
- vendor/Aws3/Aws/data/acm-pca/2017-08-22/paginators-1.json.php +1 -1
- vendor/Aws3/Aws/data/acm-pca/2017-08-22/waiters-2.json.php +4 -0
- vendor/Aws3/Aws/data/acm/2015-12-08/waiters-2.json.php +4 -0
- vendor/Aws3/Aws/data/alexaforbusiness/2017-11-09/api-2.json.php +1 -1
- vendor/Aws3/Aws/data/alexaforbusiness/2017-11-09/paginators-1.json.php +1 -1
- vendor/Aws3/Aws/data/amplify/2017-07-25/api-2.json.php +4 -0
- vendor/Aws3/Aws/data/amplify/2017-07-25/paginators-1.json.php +4 -0
- vendor/Aws3/Aws/data/apigateway/2015-07-09/api-2.json.php +1 -1
- vendor/Aws3/Aws/data/apigatewaymanagementapi/2018-11-29/api-2.json.php +4 -0
- vendor/Aws3/Aws/data/apigatewaymanagementapi/2018-11-29/paginators-1.json.php +4 -0
- vendor/Aws3/Aws/data/apigatewayv2/2018-11-29/api-2.json.php +4 -0
- vendor/Aws3/Aws/data/apigatewayv2/2018-11-29/paginators-1.json.php +4 -0
- vendor/Aws3/Aws/data/application-autoscaling/2016-02-06/api-2.json.php +1 -1
- vendor/Aws3/Aws/data/appmesh/2018-10-01/api-2.json.php +4 -0
- vendor/Aws3/Aws/data/appmesh/2018-10-01/paginators-1.json.php +4 -0
- vendor/Aws3/Aws/data/appstream/2016-12-01/api-2.json.php +1 -1
- vendor/Aws3/Aws/data/appstream/2016-12-01/paginators-1.json.php +1 -1
- vendor/Aws3/Aws/data/appsync/2017-07-25/api-2.json.php +1 -1
- vendor/Aws3/Aws/data/athena/2017-05-18/api-2.json.php +1 -1
README.md
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
# WP Offload Media Lite for Amazon S3 and DigitalOcean Spaces #
|
2 |
**Contributors:** bradt, deliciousbrains, ianmjones
|
3 |
-
**Tags:** uploads, amazon, s3, amazon s3, digitalocean, digitalocean spaces, mirror, admin, media, cdn, cloudfront
|
4 |
**Requires at least:** 4.7
|
5 |
-
**Tested up to:** 5.
|
6 |
**Requires PHP:** 5.5
|
7 |
-
**Stable tag:** 2.
|
8 |
**License:** GPLv3
|
9 |
|
10 |
-
Copies files to Amazon S3
|
11 |
|
12 |
## Description ##
|
13 |
|
@@ -15,11 +15,11 @@ FORMERLY WP OFFLOAD S3 LITE
|
|
15 |
|
16 |
https://www.youtube.com/watch?v=_PVybEGaRXc
|
17 |
|
18 |
-
This plugin automatically copies images, videos, documents, and any other media added through WordPress' media uploader to [Amazon S3](http://aws.amazon.com/s3/)
|
19 |
|
20 |
-
Uploading files *directly* to your Amazon S3
|
21 |
|
22 |
-
If you're adding this plugin to a site that's been around for a while, your existing media files will not be copied to or served from Amazon S3 or
|
23 |
|
24 |
**Image Optimization**
|
25 |
|
@@ -27,7 +27,7 @@ Although WP Offload Media doesn't include image optimization features, we work c
|
|
27 |
|
28 |
**PRO Upgrade with Email Support and More Features**
|
29 |
|
30 |
-
* Upload existing Media Library to Amazon S3 or
|
31 |
* Control offloaded files from the Media Library
|
32 |
* [Assets Pull addon](https://deliciousbrains.com/wp-offload-media/?utm_campaign=WP%2BOffload%2BS3&utm_source=wordpress.org&utm_medium=free%2Bplugin%2Blisting&utm_content=assets%2Baddon#addons) - Serve your CSS, JS and fonts via CloudFront or another CDN
|
33 |
* [WooCommerce integration](https://deliciousbrains.com/wp-offload-media/?utm_campaign=WP%2BOffload%2BS3&utm_source=wordpress.org&utm_medium=free%2Bplugin%2Blisting&utm_content=woocommerce%2Baddon#integrations)
|
@@ -38,7 +38,7 @@ Although WP Offload Media doesn't include image optimization features, we work c
|
|
38 |
|
39 |
The video below runs through the pro upgrade features...
|
40 |
|
41 |
-
https://www.youtube.com/watch?v=
|
42 |
|
43 |
## Installation ##
|
44 |
|
@@ -86,6 +86,16 @@ This version requires PHP 5.3.3+ and the Amazon Web Services plugin
|
|
86 |
|
87 |
## Changelog ##
|
88 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
89 |
### WP Offload Media Lite 2.0.1 - 2018-12-17 ###
|
90 |
* Improvement: Streamlined UI for setting Storage Provider and Bucket
|
91 |
* Bug fix: On/Off switches in settings look reversed
|
@@ -95,7 +105,7 @@ This version requires PHP 5.3.3+ and the Amazon Web Services plugin
|
|
95 |
* Tested: WordPress 5.0
|
96 |
|
97 |
### WP Offload Media Lite 2.0 - 2018-09-24 ###
|
98 |
-
* [Release Summary Blog Post](https://deliciousbrains.com/wp-offload-s3-is-now-wp-offload-media-and-adds-support-for-digitalocean-spaces
|
99 |
* New: DigitalOcean Spaces is now supported
|
100 |
* New: Plugin name updated from WP Offload S3 Lite to WP Offload Media Lite
|
101 |
* Improvement: More logical UI layout and better description of each setting
|
1 |
# WP Offload Media Lite for Amazon S3 and DigitalOcean Spaces #
|
2 |
**Contributors:** bradt, deliciousbrains, ianmjones
|
3 |
+
**Tags:** uploads, amazon, s3, amazon s3, digitalocean, digitalocean spaces, google cloud storage, gcs, mirror, admin, media, cdn, cloudfront
|
4 |
**Requires at least:** 4.7
|
5 |
+
**Tested up to:** 5.1
|
6 |
**Requires PHP:** 5.5
|
7 |
+
**Stable tag:** 2.1
|
8 |
**License:** GPLv3
|
9 |
|
10 |
+
Copies files to Amazon S3, DigitalOcean Spaces or Google Cloud Storage as they are uploaded to the Media Library. Optionally configure Amazon CloudFront or another CDN for faster delivery.
|
11 |
|
12 |
## Description ##
|
13 |
|
15 |
|
16 |
https://www.youtube.com/watch?v=_PVybEGaRXc
|
17 |
|
18 |
+
This plugin automatically copies images, videos, documents, and any other media added through WordPress' media uploader to [Amazon S3](http://aws.amazon.com/s3/), [DigitalOcean Spaces](https://www.digitalocean.com/products/spaces/) or [Google Cloud Storage](https://cloud.google.com/storage/). It then automatically replaces the URL to each media file with their respective Amazon S3, DigitalOcean Spaces or Google Cloud Storage URL or, if you have configured [Amazon CloudFront](http://aws.amazon.com/cloudfront/) or another CDN with or without a custom domain, that URL instead. Image thumbnails are also copied to the bucket and delivered through the correct remote URL.
|
19 |
|
20 |
+
Uploading files *directly* to your Amazon S3, DigitalOcean Spaces or Google Cloud Storage account is not currently supported by this plugin. They are uploaded to your server first, then copied to the bucket. There is an option to automatically remove the files from your server once they are copied to the bucket however.
|
21 |
|
22 |
+
If you're adding this plugin to a site that's been around for a while, your existing media files will not be copied to or served from Amazon S3, DigitalOcean Spaces or Google Cloud Storage. Only newly uploaded files will be copied to and served from the bucket. [The pro upgrade](https://deliciousbrains.com/wp-offload-media/upgrade/?utm_campaign=WP%2BOffload%2BS3&utm_source=wordpress.org&utm_medium=free%2Bplugin%2Blisting) has an upload tool to handle existing media files.
|
23 |
|
24 |
**Image Optimization**
|
25 |
|
27 |
|
28 |
**PRO Upgrade with Email Support and More Features**
|
29 |
|
30 |
+
* Upload existing Media Library to Amazon S3, DigitalOcean Spaces or Google Cloud Storage
|
31 |
* Control offloaded files from the Media Library
|
32 |
* [Assets Pull addon](https://deliciousbrains.com/wp-offload-media/?utm_campaign=WP%2BOffload%2BS3&utm_source=wordpress.org&utm_medium=free%2Bplugin%2Blisting&utm_content=assets%2Baddon#addons) - Serve your CSS, JS and fonts via CloudFront or another CDN
|
33 |
* [WooCommerce integration](https://deliciousbrains.com/wp-offload-media/?utm_campaign=WP%2BOffload%2BS3&utm_source=wordpress.org&utm_medium=free%2Bplugin%2Blisting&utm_content=woocommerce%2Baddon#integrations)
|
38 |
|
39 |
The video below runs through the pro upgrade features...
|
40 |
|
41 |
+
https://www.youtube.com/watch?v=I-wTMXMeFu4
|
42 |
|
43 |
## Installation ##
|
44 |
|
86 |
|
87 |
## Changelog ##
|
88 |
|
89 |
+
### WP Offload Media Lite 2.1 - 2019-03-05 ###
|
90 |
+
* [Release Summary Blog Post](https://deliciousbrains.com/wp-offload-media-2-1-released/?utm_campaign=changelogs&utm_source=wordpress.org&utm_medium=free%2Bplugin%2Blisting)
|
91 |
+
* New: Google Cloud Storage is now supported
|
92 |
+
* Improvement: AWS PHP SDK updated
|
93 |
+
* Improvement: Diagnostic Info shows more complete settings information
|
94 |
+
* Bug fix: Year/Month path prefix incorrectly set in bucket for non-image media files
|
95 |
+
* Bug fix: PHP Fatal error: Class 'XMLWriter' not found
|
96 |
+
* Bug fix: PHP Fatal error: Uncaught Error: Call to undefined method ...\Aws3\Aws\S3\Exception\S3Exception::search() in .../classes/providers/aws-provider.php:439
|
97 |
+
* Bug fix: PHP Warning: filesize(): stat failed for [file-path] in classes/amazon-s3-and-cloudfront.php on line 1309
|
98 |
+
|
99 |
### WP Offload Media Lite 2.0.1 - 2018-12-17 ###
|
100 |
* Improvement: Streamlined UI for setting Storage Provider and Bucket
|
101 |
* Bug fix: On/Off switches in settings look reversed
|
105 |
* Tested: WordPress 5.0
|
106 |
|
107 |
### WP Offload Media Lite 2.0 - 2018-09-24 ###
|
108 |
+
* [Release Summary Blog Post](https://deliciousbrains.com/wp-offload-s3-is-now-wp-offload-media-and-adds-support-for-digitalocean-spaces/?utm_campaign=changelogs&utm_source=wordpress.org&utm_medium=free%2Bplugin%2Blisting)
|
109 |
* New: DigitalOcean Spaces is now supported
|
110 |
* New: Plugin name updated from WP Offload S3 Lite to WP Offload Media Lite
|
111 |
* Improvement: More logical UI layout and better description of each setting
|
assets/css/storage-provider.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.as3cf-provider-select h3{font-size:20px}.as3cf-provider-select table{border-collapse:collapse}.as3cf-provider-select .as3cf-provider-title{margin:0;padding:0;background:#f1f1f1}.as3cf-provider-select .as3cf-provider-title label{position:relative;display:inline-block}.as3cf-provider-select .as3cf-provider-title label:hover{cursor:pointer}.as3cf-provider-select .as3cf-provider-title .as3cf-provider-logo{color:white;padding:1em}.as3cf-provider-select .as3cf-provider-title h3{display:inline-block;position:absolute;top:50%;left:76px;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);font-weight:bold;text-transform:none;padding:0;margin:0 15px;white-space:nowrap}.as3cf-provider-select .as3cf-provider-title.as3cf-provider-selected{cursor:default}.as3cf-provider-select .as3cf-provider-title.as3cf-provider-aws .as3cf-provider-logo{background-color:#f7a80d}.as3cf-provider-select .as3cf-provider-title.as3cf-provider-do .as3cf-provider-logo{background-color:#0080ff}.as3cf-provider-select .as3cf-provider-content td{padding-bottom:10px}.as3cf-provider-select .as3cf-provider-content table{background:#e5e5e5}.as3cf-provider-select .as3cf-provider-content table th{padding:10px 0 10px 10px}.as3cf-provider-select .as3cf-provider-content table td{padding:10px}.as3cf-provider-select .as3cf-provider-content .asc3f-provider-authmethod-title label{font-weight:bold}.as3cf-provider-select .as3cf-provider-content .asc3f-provider-authmethod-content td{padding-top:0}.as3cf-provider-select .as3cf-provider-content .asc3f-provider-authmethod-content textarea.as3cf-define-snippet.code{
|
1 |
+
.as3cf-provider-select h3{font-size:20px}.as3cf-provider-select table{border-collapse:collapse}.as3cf-provider-select .as3cf-provider-title{margin:0;padding:0;background:#f1f1f1}.as3cf-provider-select .as3cf-provider-title label{position:relative;display:inline-block}.as3cf-provider-select .as3cf-provider-title label:hover{cursor:pointer}.as3cf-provider-select .as3cf-provider-title .as3cf-provider-logo{color:white;padding:1em}.as3cf-provider-select .as3cf-provider-title h3{display:inline-block;position:absolute;top:50%;left:76px;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);font-weight:bold;text-transform:none;padding:0;margin:0 15px;white-space:nowrap}.as3cf-provider-select .as3cf-provider-title.as3cf-provider-selected{cursor:default}.as3cf-provider-select .as3cf-provider-title.as3cf-provider-aws .as3cf-provider-logo{background-color:#f7a80d;border:1px solid #f7a80d}.as3cf-provider-select .as3cf-provider-title.as3cf-provider-do .as3cf-provider-logo{background-color:#0080ff;border:1px solid #0080ff}.as3cf-provider-select .as3cf-provider-title.as3cf-provider-gcp .as3cf-provider-logo{background-color:#fff;border-top:1px solid #ea4335;border-right:1px solid #4285f4;border-bottom:1px solid #34a853;border-left:1px solid #fbbc05}.as3cf-provider-select .as3cf-provider-content td{padding-bottom:10px}.as3cf-provider-select .as3cf-provider-content table{background:#e5e5e5}.as3cf-provider-select .as3cf-provider-content table th{padding:10px 0 10px 10px}.as3cf-provider-select .as3cf-provider-content table td{padding:10px}.as3cf-provider-select .as3cf-provider-content .asc3f-provider-authmethod-title label{font-weight:bold}.as3cf-provider-select .as3cf-provider-content .asc3f-provider-authmethod-content td{padding-top:0}.as3cf-provider-select .as3cf-provider-content .asc3f-provider-authmethod-content textarea{margin-top:10px}.as3cf-provider-select .as3cf-provider-content .asc3f-provider-authmethod-content textarea.clear{width:100%}.as3cf-provider-select .as3cf-provider-content .asc3f-provider-authmethod-content textarea.as3cf-define-snippet.code{white-space:pre;overflow:hidden;font-size:11px;padding:10px}.as3cf-provider-select .as3cf-provider-content .asc3f-provider-authmethod-content table.as3cf-access-keys{margin-top:10px}.as3cf-provider-select .as3cf-provider-content .asc3f-provider-authmethod-content table.as3cf-access-keys th{padding-left:0}.as3cf-provider-select .as3cf-provider-content .asc3f-provider-authmethod-content table.as3cf-access-keys input{width:100%}
|
assets/img/gcp-logo.svg
ADDED
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2 |
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
3 |
+
<svg width="100%" height="100%" viewBox="0 0 33 27" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;">
|
4 |
+
<g transform="matrix(1,0,0,1,-1.04531,-0.144077)">
|
5 |
+
<path d="M21.85,7.41L22.85,7.41L25.7,4.56L25.84,3.35C23.5,1.285 20.484,0.144 17.363,0.144C11.598,0.144 6.51,4.036 5,9.6C5.317,9.47 5.669,9.449 6,9.54L11.7,8.6C11.7,8.6 11.99,8.12 12.14,8.15C14.661,5.381 18.959,5.054 21.87,7.41L21.85,7.41Z" style="fill:rgb(234,67,53);fill-rule:nonzero;"/>
|
6 |
+
</g>
|
7 |
+
<g transform="matrix(1,0,0,1,-1.04531,-0.144077)">
|
8 |
+
<path d="M29.76,9.6C29.105,7.188 27.76,5.019 25.89,3.36L21.89,7.36C23.578,8.739 24.541,10.821 24.5,13L24.5,13.71C26.453,13.71 28.06,15.317 28.06,17.27C28.06,19.223 26.453,20.83 24.5,20.83C24.5,20.83 17.38,20.83 17.38,20.83L16.67,21.55L16.67,25.82L17.38,26.53L24.5,26.53C24.524,26.53 24.548,26.53 24.572,26.53C29.652,26.53 33.832,22.35 33.832,17.27C33.832,14.199 32.304,11.321 29.76,9.6Z" style="fill:rgb(66,133,244);fill-rule:nonzero;"/>
|
9 |
+
</g>
|
10 |
+
<g transform="matrix(1,0,0,1,-1.04531,-0.144077)">
|
11 |
+
<path d="M10.25,26.49L17.37,26.49L17.37,20.79L10.25,20.79C9.743,20.79 9.241,20.681 8.78,20.47L7.78,20.78L4.91,23.63L4.66,24.63C6.269,25.845 8.234,26.499 10.25,26.49Z" style="fill:rgb(52,168,83);fill-rule:nonzero;"/>
|
12 |
+
</g>
|
13 |
+
<g transform="matrix(1,0,0,1,-1.04531,-0.144077)">
|
14 |
+
<path d="M10.25,8C5.191,8.03 1.045,12.201 1.045,17.26C1.045,20.133 2.383,22.848 4.66,24.6L8.79,20.47C7.517,19.895 6.696,18.622 6.696,17.226C6.696,15.273 8.303,13.666 10.256,13.666C11.652,13.666 12.925,14.487 13.5,15.76L17.63,11.63C15.874,9.334 13.14,7.99 10.25,8Z" style="fill:rgb(251,188,5);fill-rule:nonzero;"/>
|
15 |
+
</g>
|
16 |
+
</svg>
|
assets/js/script.js
CHANGED
@@ -387,7 +387,7 @@
|
|
387 |
var prefix = $objectPrefix.val();
|
388 |
|
389 |
if ( '' !== prefix ) {
|
390 |
-
prefix = as3cf.
|
391 |
}
|
392 |
|
393 |
var url = as3cf.provider_console_url + bucket + prefix;
|
387 |
var prefix = $objectPrefix.val();
|
388 |
|
389 |
if ( '' !== prefix ) {
|
390 |
+
prefix = as3cf.provider_console_url_prefix_param + encodeURIComponent( prefix );
|
391 |
}
|
392 |
|
393 |
var url = as3cf.provider_console_url + bucket + prefix;
|
assets/js/script.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
!function(a,b){function c(b){return a("#"+b+" .as3cf-main-settings form").find("input:not(.no-compare)").serialize()}function d(a){var b=l.find("#"+a),c=b.find("input[type=checkbox]");b.toggleClass("on").find("span").toggleClass("checked");var d=b.find("span.on").hasClass("checked");c.prop("checked",d).trigger("change")}function e(b){var c=b.next(".as3cf-validation-error"),d=a("#"+l.attr("id")+' form button[type="submit"]'),e=/[^a-zA-Z0-9\.\-]/;e.test(b.val())?(c.show(),d.prop("disabled",!0)):(c.hide(),d.prop("disabled",!1))}function f(){var c=a("#"+b.prefix+"-bucket").val(),d=l.find('input[name="object-prefix"]'),e=d.val();""!==e&&(e=as3cf.
|
1 |
+
!function(a,b){function c(b){return a("#"+b+" .as3cf-main-settings form").find("input:not(.no-compare)").serialize()}function d(a){var b=l.find("#"+a),c=b.find("input[type=checkbox]");b.toggleClass("on").find("span").toggleClass("checked");var d=b.find("span.on").hasClass("checked");c.prop("checked",d).trigger("change")}function e(b){var c=b.next(".as3cf-validation-error"),d=a("#"+l.attr("id")+' form button[type="submit"]'),e=/[^a-zA-Z0-9\.\-]/;e.test(b.val())?(c.show(),d.prop("disabled",!0)):(c.hide(),d.prop("disabled",!1))}function f(){var c=a("#"+b.prefix+"-bucket").val(),d=l.find('input[name="object-prefix"]'),e=d.val();""!==e&&(e=as3cf.provider_console_url_prefix_param+encodeURIComponent(e));var f=as3cf.provider_console_url+c+e;a("#"+b.prefix+"-view-bucket").attr("href",f)}function g(){a("#as3cf-remove-local-file").is(":checked")&&a("#as3cf-serve-from-s3").is(":not(:checked)")?a("#as3cf-lost-files-notice").show():a("#as3cf-lost-files-notice").hide()}function h(){a("#as3cf-remove-local-file").is(":checked")?a("#as3cf-remove-local-notice").show():a("#as3cf-remove-local-notice").hide()}function i(b){!0!==b?a("#as3cf-seo-friendly-url-notice").show():a("#as3cf-seo-friendly-url-notice").hide()}function j(){a(".as3cf-url-preview").html("Generating...");var b={_nonce:as3cf.nonces.get_url_preview};a.each(a("#tab-"+as3cf.tabs.defaultTab+" .as3cf-main-settings form").serializeArray(),function(c,d){var e=d.name,f=d.value;e=e.replace("[]",""),b[e]=void 0===b[e]?f:a.isArray(b[e])?b[e].concat(f):[b[e],f]}),b.action="as3cf-get-url-preview",a.ajax({url:ajaxurl,type:"POST",dataType:"JSON",data:b,error:function(a,b,c){alert(as3cf.strings.get_url_preview_error+c)},success:function(b,c,d){"undefined"!=typeof b.success?(a(".as3cf-url-preview").html(b.url),i(b.seo_friendly)):alert(as3cf.strings.get_url_preview_error+b.error)}})}function k(){return"#"+as3cf.tabs.defaultTab===location.hash?void(location.hash=""):(as3cf.tabs.toggle(location.hash.replace("#",""),!0),void a(document).trigger("as3cf.tabRendered",[location.hash.replace("#","")]))}var l,m={},n=/[^a-z0-9.-]/,o=a("body"),p=a(".as3cf-tab");a(".as3cf-settings");as3cf.tabs={defaultTab:"media",toggle:function(c,d){c=as3cf.tabs.sanitizeHash(c),p.hide(),l=a("#tab-"+c),l.show(),a(".nav-tab").removeClass("nav-tab-active"),a('a.nav-tab[data-tab="'+c+'"]').addClass("nav-tab-active"),a(".as3cf-main").data("tab",c),l.data("prefix")&&(b.prefix=l.data("prefix")),d||a(".as3cf-updated").removeClass("show"),"support"===c&&as3cf.tabs.getDiagnosticInfo()},getDiagnosticInfo:function(){var b=a(".debug-log-textarea");b.html(as3cf.strings.get_diagnostic_info);var c={action:"as3cf-get-diagnostic-info",_nonce:as3cf.nonces.get_diagnostic_info};a.ajax({url:ajaxurl,type:"POST",dataType:"JSON",data:c,error:function(a,c,d){b.html(d)},success:function(a,c,d){"undefined"!=typeof a.success?b.html(a.diagnostic_info):(b.html(as3cf.strings.get_diagnostic_info_error),b.append(a.error))}})},sanitizeHash:function(b){var c=a("#tab-"+b);return 0===c.length&&(b=as3cf.tabs.defaultTab),b}},as3cf.buckets={validLength:3,bucketSelectLock:!1,loadList:function(c){"undefined"==typeof c&&(c=!1);var d=a(".as3cf-bucket-container."+b.prefix+" .as3cf-bucket-select"),e=d.find(".bucket-select-region"),f=d.find(".as3cf-bucket-list"),g=a("#"+b.prefix+"-bucket").val();if(!1===c&&f.find("li").length>1)return a(".as3cf-bucket-list a").removeClass("selected"),a('.as3cf-bucket-list a[data-bucket="'+g+'"]').addClass("selected"),void this.scrollToSelected();f.html('<li class="loading">'+f.data("working")+"</li>"),this.disabledButtons();var h={action:b.prefix+"-get-buckets",_nonce:window[b.prefix.replace(/-/g,"_")].nonces.get_buckets};e.val()&&(h.region=e.val());var i=this;a.ajax({url:ajaxurl,type:"POST",dataType:"JSON",data:h,error:function(a,b,c){f.html(""),i.showError(as3cf.strings.get_buckets_error,c,"as3cf-bucket-select")},success:function(b,c,d){f.html(""),"undefined"!=typeof b.success?(a(".as3cf-bucket-error").hide(),0===b.buckets.length?f.html('<li class="loading">'+f.data("nothing-found")+"</li>"):(a(b.buckets).each(function(a,b){var c=b.Name===g?"selected":"";f.append('<li><a class="'+c+'" href="#" data-bucket="'+b.Name+'"><span class="bucket"><span class="dashicons dashicons-portfolio"></span> '+b.Name+'</span><span class="spinner"></span></span></a></li>')}),i.scrollToSelected(),i.disabledButtons())):i.showError(as3cf.strings.get_buckets_error,b.error,"as3cf-bucket-select")}})},scrollToSelected:function(){if(a(".as3cf-bucket-list a.selected").length){var b=a("ul.as3cf-bucket-list li").first().position().top+150;a(".as3cf-bucket-list").animate({scrollTop:a("ul.as3cf-bucket-list li a.selected").position().top-b})}},setSelected:function(c){a(".as3cf-bucket-list a").removeClass("selected"),c.addClass("selected"),a("#"+b.prefix+"-bucket-select-name").val(c.data("bucket"))},disabledButtons:function(){var c=a(".as3cf-bucket-container."+b.prefix+" .as3cf-bucket-create"),d=a(".as3cf-bucket-container."+b.prefix+" .as3cf-bucket-manual"),e=a(".as3cf-bucket-container."+b.prefix+" .as3cf-bucket-select");0===c.length&&0===d.length&&0===e.length||(0<c.length&&this.isValidName(c.find(".as3cf-bucket-name").val())?c.find("button[type=submit]").prop("disabled",!1):c.find("button[type=submit]").prop("disabled",!0),0<d.length&&this.isValidName(d.find(".as3cf-bucket-name").val())?d.find("button[type=submit]").prop("disabled",!1):d.find("button[type=submit]").prop("disabled",!0),0<e.length&&1===e.find(".as3cf-bucket-list a.selected").length?e.find("button[type=submit]").prop("disabled",!1):e.find("button[type=submit]").prop("disabled",!0))},showError:function(b,c,d){var e=a(".as3cf-bucket-container").children(":visible"),f=e.find(".as3cf-bucket-error");d="undefined"==typeof d?null:d,d&&!e.hasClass(d)||(f.find("span.title").html(b+" —"),f.find("span.message").html(c),f.show(),this.bucketSelectLock=!1)},isValidName:function(a){return!(a.length<3||a.length>63)&&!0!==n.test(a)},updateNameNotice:function(b){var c=null;!0===n.test(b)?c=as3cf.strings.create_bucket_invalid_chars:b.length<3?c=as3cf.strings.create_bucket_name_short:b.length>63&&(c=as3cf.strings.create_bucket_name_long),c&&b.length>0?a(".as3cf-invalid-bucket-name").html(c):a(".as3cf-invalid-bucket-name").html("")}},as3cf.reloadUpdated=function(){var a=location.pathname+location.search;location.search.match(/[?&]updated=/)||(a+="&updated=1"),a+=location.hash,location.assign(a)},as3cf.showSettingsSavedNotice=function(){if(!(0<a("#setting-error-settings_updated:visible").length||0<a("#as3cf-settings_updated:visible").length)){var b='<div id="as3cf-settings_updated" class="updated settings-error notice is-dismissible"><p><strong>'+as3cf.strings.settings_saved+"</strong></p></div>";a("h2.nav-tab-wrapper").after(b),a(document).trigger("wp-updates-notice-added")}},a(document).ready(function(){k(),window.onhashchange=function(a){"function"==typeof history.replaceState&&"#"===location.href.slice(-1)&&history.replaceState({},"",location.href.slice(0,-1)),k()};var i=a(".as3cf-main .nav-tab-wrapper");a(".as3cf-compatibility-notice, div.updated, div.error, div.notice").not(".below-h2, .inline").insertAfter(i),p.length&&p.each(function(a,b){m[b.id]=c(b.id)}),a(window).on("beforeunload.as3cf-settings",function(){if(!a.isEmptyObject(m)){var b=l.attr("id");return c(b)!==m[b]?as3cf.strings.save_alert:void 0}}),a(document).on("submit",".as3cf-main-settings form",function(b){a(window).off("beforeunload.as3cf-settings")}),a(".as3cf-switch").on("click",function(b){a(this).hasClass("disabled")||d(a(this).attr("id"))}),p.on("change",".sub-toggle",function(b){var c=a(this).attr("id");a(".as3cf-setting."+c).toggleClass("hide")}),a(".as3cf-domain").on("change",'input[type="radio"]',function(b){var c=a(this).closest('input:radio[name="domain"]:checked'),d=c.val(),e=a(this).parents(".as3cf-domain").find(".as3cf-setting.cloudfront"),f="cloudfront"===d;e.toggleClass("hide",!f)}),a(".url-preview").on("change","input",function(a){j()}),g(),a("#as3cf-serve-from-s3,#as3cf-remove-local-file").on("change",function(a){g()}),h(),a("#as3cf-remove-local-file").on("change",function(a){h()}),a('.as3cf-setting input[type="text"]').keypress(function(a){if(13===a.which)return a.preventDefault(),!1}),a('input[name="cloudfront"]').on("keyup",function(b){e(a(this))}),a('input[name="domain"]').on("change",function(b){var c=a(this),d=a("#"+l.attr("id")+' form button[type="submit"]');"cloudfront"!==c.val()?d.prop("disabled",!1):e(c.next(".as3cf-setting").find('input[name="cloudfront"]'))}),a('input[name="object-prefix"]').on("change",function(a){f()}),a("#tab-media > .as3cf-bucket-error").detach().insertAfter(".as3cf-bucket-container h3"),as3cf.buckets.disabledButtons(),o.on("click",".bucket-action-refresh",function(a){a.preventDefault(),as3cf.buckets.loadList(!0)}),o.on("change",".bucket-select-region",function(a){a.preventDefault(),as3cf.buckets.loadList(!0)}),0<a(".as3cf-bucket-container."+b.prefix+" .as3cf-bucket-select").length&&as3cf.buckets.loadList(!0),o.on("click",".as3cf-bucket-list a",function(b){b.preventDefault(),as3cf.buckets.setSelected(a(this)),as3cf.buckets.disabledButtons()}),a(".as3cf-bucket-container").on("click","a.js-link",function(b){return b.preventDefault(),window.open(a(this).attr("href")),!1}),o.on("input keyup",".as3cf-bucket-create .as3cf-bucket-name",function(b){var c=a(this).val();as3cf.buckets.updateNameNotice(c),as3cf.buckets.disabledButtons()}),o.on("input keyup",".as3cf-bucket-manual .as3cf-bucket-name",function(b){var c=a(this).val();as3cf.buckets.updateNameNotice(c),as3cf.buckets.disabledButtons()}),a('.as3cf-bucket-container input[type="text"]').keypress(function(a){if(13===a.which)return a.preventDefault(),!1})})}(jQuery,as3cfModal);
|
assets/js/storage-provider.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
(
|
2 |
var $body = $( 'body' );
|
3 |
|
4 |
var as3cf = as3cf || {};
|
@@ -25,10 +25,12 @@
|
|
25 |
$( element ).hide();
|
26 |
$( element ).removeClass( 'as3cf-provider-selected' );
|
27 |
$( element ).find( 'input' ).prop( 'disabled', true );
|
|
|
28 |
},
|
29 |
|
30 |
enableContent: function( element ) {
|
31 |
$( element ).find( 'input:not( [data-as3cf-disabled="true"] )' ).prop( 'disabled', false );
|
|
|
32 |
$( element ).addClass( 'as3cf-provider-selected' );
|
33 |
$( element ).show( 'fast', function() {
|
34 |
as3cf.storageProvider.setSelectedAuthMethod( this );
|
@@ -42,7 +44,7 @@
|
|
42 |
var checkedCount = $( element ).find( 'input[name="authmethod"]:checked' ).length;
|
43 |
|
44 |
if ( 1 !== checkedCount ) {
|
45 |
-
$( element ).find( 'input[name="authmethod"]' ).first().prop( 'checked', true ).change();
|
46 |
}
|
47 |
},
|
48 |
|
@@ -82,4 +84,4 @@
|
|
82 |
} );
|
83 |
} );
|
84 |
|
85 |
-
}
|
1 |
+
(function( $ ) {
|
2 |
var $body = $( 'body' );
|
3 |
|
4 |
var as3cf = as3cf || {};
|
25 |
$( element ).hide();
|
26 |
$( element ).removeClass( 'as3cf-provider-selected' );
|
27 |
$( element ).find( 'input' ).prop( 'disabled', true );
|
28 |
+
$( element ).find( 'textarea.as3cf-large-input' ).prop( 'disabled', true );
|
29 |
},
|
30 |
|
31 |
enableContent: function( element ) {
|
32 |
$( element ).find( 'input:not( [data-as3cf-disabled="true"] )' ).prop( 'disabled', false );
|
33 |
+
$( element ).find( 'textarea.as3cf-large-input' ).prop( 'disabled', false );
|
34 |
$( element ).addClass( 'as3cf-provider-selected' );
|
35 |
$( element ).show( 'fast', function() {
|
36 |
as3cf.storageProvider.setSelectedAuthMethod( this );
|
44 |
var checkedCount = $( element ).find( 'input[name="authmethod"]:checked' ).length;
|
45 |
|
46 |
if ( 1 !== checkedCount ) {
|
47 |
+
$( element ).find( 'input[name="authmethod"]:not( [data-as3cf-disabled="true"] )' ).first().prop( 'checked', true ).change();
|
48 |
}
|
49 |
},
|
50 |
|
84 |
} );
|
85 |
} );
|
86 |
|
87 |
+
})( jQuery );
|
assets/js/storage-provider.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
!function(a){var b=a("body"),c=c||{};c.storageProvider={changed:function(){var b=a('input[name="provider"]:checked').val();a(".as3cf-provider-content").each(function(){c.storageProvider.disableContent(this)}),a('.as3cf-provider-content[data-provider="'+b+'"]').each(function(){c.storageProvider.enableContent(this)})},disableContent:function(b){a(b).hide(),a(b).removeClass("as3cf-provider-selected"),a(b).find("input").prop("disabled",!0)},enableContent:function(b){a(b).find('input:not( [data-as3cf-disabled="true"] )').prop("disabled",!1),a(b).addClass("as3cf-provider-selected"),a(b).show("fast",function(){c.storageProvider.setSelectedAuthMethod(this)})},setSelectedAuthMethod:function(b){a(b).find('input[name="authmethod"]:checked').prop("checked",!0).change();var c=a(b).find('input[name="authmethod"]:checked').length;1!==c&&a(b).find('input[name="authmethod"]').first().prop("checked",!0).change()},authMethodChanged:function(){var b=a('input[name="authmethod"]:checked').val();a(".asc3f-provider-authmethod-content").each(function(){c.storageProvider.disableAuthMethodContent(this)}),a('.asc3f-provider-authmethod-content[data-provider-authmethod="'+b+'"]').each(function(){c.storageProvider.enableAuthMethodContent(this)})},disableAuthMethodContent:function(b){a(b).hide()},enableAuthMethodContent:function(b){a(b).show()}},a(document).ready(function(){b.on("change",'input[name="provider"]',function(a){a.preventDefault(),c.storageProvider.changed()}),b.on("change",'input[name="authmethod"]',function(a){a.preventDefault(),c.storageProvider.authMethodChanged()})})}(jQuery);
|
1 |
+
!function(a){var b=a("body"),c=c||{};c.storageProvider={changed:function(){var b=a('input[name="provider"]:checked').val();a(".as3cf-provider-content").each(function(){c.storageProvider.disableContent(this)}),a('.as3cf-provider-content[data-provider="'+b+'"]').each(function(){c.storageProvider.enableContent(this)})},disableContent:function(b){a(b).hide(),a(b).removeClass("as3cf-provider-selected"),a(b).find("input").prop("disabled",!0),a(b).find("textarea.as3cf-large-input").prop("disabled",!0)},enableContent:function(b){a(b).find('input:not( [data-as3cf-disabled="true"] )').prop("disabled",!1),a(b).find("textarea.as3cf-large-input").prop("disabled",!1),a(b).addClass("as3cf-provider-selected"),a(b).show("fast",function(){c.storageProvider.setSelectedAuthMethod(this)})},setSelectedAuthMethod:function(b){a(b).find('input[name="authmethod"]:checked').prop("checked",!0).change();var c=a(b).find('input[name="authmethod"]:checked').length;1!==c&&a(b).find('input[name="authmethod"]:not( [data-as3cf-disabled="true"] )').first().prop("checked",!0).change()},authMethodChanged:function(){var b=a('input[name="authmethod"]:checked').val();a(".asc3f-provider-authmethod-content").each(function(){c.storageProvider.disableAuthMethodContent(this)}),a('.asc3f-provider-authmethod-content[data-provider-authmethod="'+b+'"]').each(function(){c.storageProvider.enableAuthMethodContent(this)})},disableAuthMethodContent:function(b){a(b).hide()},enableAuthMethodContent:function(b){a(b).show()}},a(document).ready(function(){b.on("change",'input[name="provider"]',function(a){a.preventDefault(),c.storageProvider.changed()}),b.on("change",'input[name="authmethod"]',function(a){a.preventDefault(),c.storageProvider.authMethodChanged()})})}(jQuery);
|
assets/sass/storage-provider.scss
CHANGED
@@ -1,5 +1,6 @@
|
|
1 |
-
$
|
2 |
-
$
|
|
|
3 |
|
4 |
.as3cf-provider-select {
|
5 |
h3 {
|
@@ -48,13 +49,25 @@ $do_blue: #0080ff;
|
|
48 |
|
49 |
&.as3cf-provider-aws {
|
50 |
.as3cf-provider-logo {
|
51 |
-
background-color: $
|
|
|
52 |
}
|
53 |
}
|
54 |
|
55 |
&.as3cf-provider-do {
|
56 |
.as3cf-provider-logo {
|
57 |
-
background-color: $
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
58 |
}
|
59 |
}
|
60 |
}
|
@@ -87,13 +100,19 @@ $do_blue: #0080ff;
|
|
87 |
padding-top: 0;
|
88 |
}
|
89 |
|
90 |
-
textarea
|
|
|
|
|
|
|
|
|
91 |
width: 100%;
|
|
|
|
|
|
|
92 |
white-space: pre;
|
93 |
overflow: hidden;
|
94 |
font-size: 11px;
|
95 |
padding: 10px;
|
96 |
-
margin-top: 10px;
|
97 |
}
|
98 |
|
99 |
table.as3cf-access-keys {
|
1 |
+
$aws_background: #f7a80d;
|
2 |
+
$do_background: #0080ff;
|
3 |
+
$gcp_background: #ffffff;
|
4 |
|
5 |
.as3cf-provider-select {
|
6 |
h3 {
|
49 |
|
50 |
&.as3cf-provider-aws {
|
51 |
.as3cf-provider-logo {
|
52 |
+
background-color: $aws_background;
|
53 |
+
border: 1px solid $aws_background;
|
54 |
}
|
55 |
}
|
56 |
|
57 |
&.as3cf-provider-do {
|
58 |
.as3cf-provider-logo {
|
59 |
+
background-color: $do_background;
|
60 |
+
border: 1px solid $do_background;
|
61 |
+
}
|
62 |
+
}
|
63 |
+
|
64 |
+
&.as3cf-provider-gcp {
|
65 |
+
.as3cf-provider-logo {
|
66 |
+
background-color: $gcp_background;
|
67 |
+
border-top: 1px solid #ea4335;
|
68 |
+
border-right: 1px solid #4285f4;
|
69 |
+
border-bottom: 1px solid #34a853;
|
70 |
+
border-left: 1px solid #fbbc05;
|
71 |
}
|
72 |
}
|
73 |
}
|
100 |
padding-top: 0;
|
101 |
}
|
102 |
|
103 |
+
textarea {
|
104 |
+
margin-top: 10px;
|
105 |
+
}
|
106 |
+
|
107 |
+
textarea.clear {
|
108 |
width: 100%;
|
109 |
+
}
|
110 |
+
|
111 |
+
textarea.as3cf-define-snippet.code {
|
112 |
white-space: pre;
|
113 |
overflow: hidden;
|
114 |
font-size: 11px;
|
115 |
padding: 10px;
|
|
|
116 |
}
|
117 |
|
118 |
table.as3cf-access-keys {
|
classes/amazon-s3-and-cloudfront.php
CHANGED
@@ -2,6 +2,7 @@
|
|
2 |
|
3 |
use DeliciousBrains\WP_Offload_Media\Providers\AWS_Provider;
|
4 |
use DeliciousBrains\WP_Offload_Media\Providers\DigitalOcean_Provider;
|
|
|
5 |
use DeliciousBrains\WP_Offload_Media\Providers\Null_Provider;
|
6 |
use DeliciousBrains\WP_Offload_Media\Providers\Provider;
|
7 |
use DeliciousBrains\WP_Offload_Media\Upgrades\Upgrade_Content_Replace_URLs;
|
@@ -138,6 +139,7 @@ class Amazon_S3_And_CloudFront extends AS3CF_Plugin_Base {
|
|
138 |
static::$provider_classes = array(
|
139 |
AWS_Provider::get_provider_key_name() => 'DeliciousBrains\WP_Offload_Media\Providers\AWS_Provider',
|
140 |
DigitalOcean_Provider::get_provider_key_name() => 'DeliciousBrains\WP_Offload_Media\Providers\DigitalOcean_Provider',
|
|
|
141 |
);
|
142 |
|
143 |
$this->set_provider();
|
@@ -1127,13 +1129,7 @@ class Amazon_S3_And_CloudFront extends AS3CF_Plugin_Base {
|
|
1127 |
$region = isset( $old_provider_object['region'] ) ? $old_provider_object['region'] : '';
|
1128 |
} else {
|
1129 |
// derive prefix from various settings
|
1130 |
-
|
1131 |
-
$time = $this->get_folder_time_from_url( $data['file'] );
|
1132 |
-
} else {
|
1133 |
-
$time = $this->get_attachment_folder_time( $post_id );
|
1134 |
-
$time = date( 'Y/m', $time );
|
1135 |
-
}
|
1136 |
-
|
1137 |
$prefix = $this->get_file_prefix( $time );
|
1138 |
|
1139 |
// use bucket from settings
|
@@ -1157,6 +1153,7 @@ class Amazon_S3_And_CloudFront extends AS3CF_Plugin_Base {
|
|
1157 |
'Expires' => date( 'D, d M Y H:i:s O', time() + 31536000 ),
|
1158 |
);
|
1159 |
|
|
|
1160 |
// Handle gzip on supported items
|
1161 |
if ( $this->should_gzip_file( $file_path, $type ) && false !== ( $gzip_body = gzencode( file_get_contents( $file_path ) ) ) ) {
|
1162 |
unset( $args['SourceFile'] );
|
@@ -1451,31 +1448,42 @@ class Amazon_S3_And_CloudFront extends AS3CF_Plugin_Base {
|
|
1451 |
}
|
1452 |
|
1453 |
/**
|
1454 |
-
* Get the
|
1455 |
*
|
1456 |
-
*
|
1457 |
*
|
1458 |
-
* @param int
|
|
|
1459 |
*
|
1460 |
-
* @return
|
1461 |
*/
|
1462 |
-
function
|
1463 |
-
|
1464 |
-
|
1465 |
-
if ( ! ( $attach = get_post( $post_id ) ) ) {
|
1466 |
-
return $time;
|
1467 |
}
|
1468 |
|
1469 |
-
if (
|
1470 |
-
|
1471 |
}
|
1472 |
|
1473 |
-
if (
|
1474 |
-
|
1475 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1476 |
|
1477 |
-
|
1478 |
-
|
|
|
1479 |
}
|
1480 |
|
1481 |
return $time;
|
@@ -1903,8 +1911,6 @@ class Amazon_S3_And_CloudFront extends AS3CF_Plugin_Base {
|
|
1903 |
* @return mixed|WP_Error
|
1904 |
*/
|
1905 |
public function get_attachment_provider_url( $post_id, $provider_object, $expires = null, $size = null, $meta = null, $headers = array() ) {
|
1906 |
-
$scheme = $this->get_url_scheme();
|
1907 |
-
|
1908 |
// We don't use $this->get_provider_object_region() here because we don't want
|
1909 |
// to make an AWS API call and slow down page loading
|
1910 |
if ( isset( $provider_object['region'] ) && ( $this->get_provider()->region_required() || $this->get_provider()->get_default_region() !== $provider_object['region'] ) ) {
|
@@ -1945,8 +1951,16 @@ class Amazon_S3_And_CloudFront extends AS3CF_Plugin_Base {
|
|
1945 |
}
|
1946 |
}
|
1947 |
|
|
|
|
|
|
|
|
|
1948 |
if ( ! is_null( $expires ) && $this->is_plugin_setup( true ) ) {
|
1949 |
try {
|
|
|
|
|
|
|
|
|
1950 |
$expires = time() + apply_filters( 'as3cf_expires', $expires );
|
1951 |
$secure_url = $this->get_provider_client( $region )
|
1952 |
->get_object_url( $provider_object['bucket'], $provider_object['key'], $expires, $headers );
|
@@ -1959,9 +1973,8 @@ class Amazon_S3_And_CloudFront extends AS3CF_Plugin_Base {
|
|
1959 |
|
1960 |
$provider_object['key'] = $this->maybe_update_cloudfront_path( $provider_object['key'] );
|
1961 |
|
1962 |
-
$
|
1963 |
-
$
|
1964 |
-
$url = $scheme . '://' . $domain_bucket . '/' . $file;
|
1965 |
|
1966 |
return apply_filters( 'as3cf_get_attachment_url', $url, $provider_object, $post_id, $expires, $headers );
|
1967 |
}
|
@@ -2726,7 +2739,11 @@ class Amazon_S3_And_CloudFront extends AS3CF_Plugin_Base {
|
|
2726 |
return new WP_Error( 'exception', $e->getMessage() );
|
2727 |
}
|
2728 |
|
2729 |
-
|
|
|
|
|
|
|
|
|
2730 |
}
|
2731 |
|
2732 |
/**
|
@@ -2770,7 +2787,7 @@ class Amazon_S3_And_CloudFront extends AS3CF_Plugin_Base {
|
|
2770 |
}
|
2771 |
|
2772 |
$key = $this->get_file_prefix() . 'as3cf-permission-check.txt';
|
2773 |
-
$file_contents = __( 'This is a test file to check if the user has write permission to
|
2774 |
|
2775 |
$can_write = $this->get_provider_client( $region, true )->can_write( $bucket, $key, $file_contents );
|
2776 |
|
@@ -2857,7 +2874,7 @@ class Amazon_S3_And_CloudFront extends AS3CF_Plugin_Base {
|
|
2857 |
wp_localize_script( 'as3cf-script',
|
2858 |
'as3cf',
|
2859 |
array(
|
2860 |
-
'strings'
|
2861 |
'create_bucket_error' => __( 'Error creating bucket', 'amazon-s3-and-cloudfront' ),
|
2862 |
'create_bucket_name_short' => __( 'Bucket name too short.', 'amazon-s3-and-cloudfront' ),
|
2863 |
'create_bucket_name_long' => __( 'Bucket name too long.', 'amazon-s3-and-cloudfront' ),
|
@@ -2872,7 +2889,7 @@ class Amazon_S3_And_CloudFront extends AS3CF_Plugin_Base {
|
|
2872 |
// Mimic WP Core's notice text, therefore no translation needed here.
|
2873 |
'settings_saved' => __( 'Settings saved.' ),
|
2874 |
),
|
2875 |
-
'nonces'
|
2876 |
'create_bucket' => wp_create_nonce( 'as3cf-create-bucket' ),
|
2877 |
'manual_bucket' => wp_create_nonce( 'as3cf-manual-save-bucket' ),
|
2878 |
'get_buckets' => wp_create_nonce( 'as3cf-get-buckets' ),
|
@@ -2882,9 +2899,9 @@ class Amazon_S3_And_CloudFront extends AS3CF_Plugin_Base {
|
|
2882 |
'aws_keys_set' => wp_create_nonce( 'as3cf-aws-keys-set' ),
|
2883 |
'aws_keys_remove' => wp_create_nonce( 'as3cf-aws-keys-remove' ),
|
2884 |
),
|
2885 |
-
'is_pro'
|
2886 |
-
'provider_console_url'
|
2887 |
-
'
|
2888 |
)
|
2889 |
);
|
2890 |
|
@@ -2905,6 +2922,8 @@ class Amazon_S3_And_CloudFront extends AS3CF_Plugin_Base {
|
|
2905 |
'provider',
|
2906 |
'access-key-id',
|
2907 |
'secret-access-key',
|
|
|
|
|
2908 |
'bucket',
|
2909 |
'region',
|
2910 |
'domain',
|
@@ -2941,7 +2960,7 @@ class Amazon_S3_And_CloudFront extends AS3CF_Plugin_Base {
|
|
2941 |
* @return array
|
2942 |
*/
|
2943 |
function get_skip_sanitize_settings() {
|
2944 |
-
return array();
|
2945 |
}
|
2946 |
|
2947 |
/**
|
@@ -2960,6 +2979,9 @@ class Amazon_S3_And_CloudFront extends AS3CF_Plugin_Base {
|
|
2960 |
die( __( "Cheatin' eh?", 'amazon-s3-and-cloudfront' ) );
|
2961 |
}
|
2962 |
|
|
|
|
|
|
|
2963 |
if ( $this->get_provider()->needs_access_keys() || ( ! empty( $_GET['action'] ) && 'change-provider' === $_GET['action'] ) ) {
|
2964 |
// Changing Provider currently doesn't need anything special over saving settings,
|
2965 |
// but if not already set needs to be handled rather than change-bucket raising its hand.
|
@@ -2988,7 +3010,7 @@ class Amazon_S3_And_CloudFront extends AS3CF_Plugin_Base {
|
|
2988 |
// If anything about the Provider has changed then we need to verify the bucket selection.
|
2989 |
// Otherwise we can let the filter decide whether there is an action to take.
|
2990 |
// Last implementer will win, but the above handlers take care of grouping things appropriately.
|
2991 |
-
if ( in_array( $key, array( 'provider', 'access-key-id', 'secret-access-key' ) ) && ! $this->get_defined_setting( 'bucket', false ) ) {
|
2992 |
$action = 'change-bucket';
|
2993 |
break;
|
2994 |
} else {
|
@@ -3012,10 +3034,14 @@ class Amazon_S3_And_CloudFront extends AS3CF_Plugin_Base {
|
|
3012 |
|
3013 |
if ( ! empty( $action ) ) {
|
3014 |
$url_args['action'] = $action;
|
3015 |
-
}
|
3016 |
|
3017 |
-
|
3018 |
-
|
|
|
|
|
|
|
|
|
|
|
3019 |
}
|
3020 |
|
3021 |
$url = $this->get_plugin_page_url( $url_args );
|
@@ -3043,7 +3069,7 @@ class Amazon_S3_And_CloudFront extends AS3CF_Plugin_Base {
|
|
3043 |
$bucket = $this->check_bucket( $bucket );
|
3044 |
|
3045 |
if ( false === $bucket ) {
|
3046 |
-
$this->notices->add_notice( __( '
|
3047 |
|
3048 |
return false;
|
3049 |
}
|
@@ -3121,9 +3147,9 @@ class Amazon_S3_And_CloudFront extends AS3CF_Plugin_Base {
|
|
3121 |
/**
|
3122 |
* Handle saving settings submitted by user.
|
3123 |
*
|
3124 |
-
* @return array
|
3125 |
*/
|
3126 |
-
|
3127 |
$changed_keys = array();
|
3128 |
|
3129 |
do_action( 'as3cf_pre_save_settings' );
|
@@ -3145,6 +3171,23 @@ class Amazon_S3_And_CloudFront extends AS3CF_Plugin_Base {
|
|
3145 |
|
3146 |
$value = $this->sanitize_setting( $var, $_POST[ $var ] );
|
3147 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3148 |
$this->set_setting( $var, $value );
|
3149 |
|
3150 |
// Some setting changes might have knock-on effects that require confirmation of secondary settings.
|
@@ -3357,6 +3400,7 @@ class Amazon_S3_And_CloudFront extends AS3CF_Plugin_Base {
|
|
3357 |
* @param string $acl
|
3358 |
*
|
3359 |
* @return array|bool|WP_Error
|
|
|
3360 |
*/
|
3361 |
public function set_attachment_acl_on_provider( $post_id, $provider_object, $acl ) {
|
3362 |
// Return early if already set to the desired ACL
|
@@ -3466,6 +3510,10 @@ class Amazon_S3_And_CloudFront extends AS3CF_Plugin_Base {
|
|
3466 |
global $table_prefix;
|
3467 |
global $wpdb;
|
3468 |
|
|
|
|
|
|
|
|
|
3469 |
$output = 'site_url(): ';
|
3470 |
$output .= esc_html( site_url() );
|
3471 |
$output .= "\r\n";
|
@@ -3660,6 +3708,10 @@ class Amazon_S3_And_CloudFront extends AS3CF_Plugin_Base {
|
|
3660 |
}
|
3661 |
$output .= "\r\n\r\n";
|
3662 |
|
|
|
|
|
|
|
|
|
3663 |
$media_counts = $this->diagnostic_media_counts();
|
3664 |
|
3665 |
$output .= 'Media Files: ';
|
@@ -3681,6 +3733,10 @@ class Amazon_S3_And_CloudFront extends AS3CF_Plugin_Base {
|
|
3681 |
$output .= $size_details;
|
3682 |
$output .= "\r\n";
|
3683 |
|
|
|
|
|
|
|
|
|
3684 |
$output .= 'WP_CONTENT_DIR: ';
|
3685 |
$output .= esc_html( ( defined( 'WP_CONTENT_DIR' ) ) ? WP_CONTENT_DIR : 'Not defined' );
|
3686 |
$output .= "\r\n";
|
@@ -3701,10 +3757,6 @@ class Amazon_S3_And_CloudFront extends AS3CF_Plugin_Base {
|
|
3701 |
$output .= esc_html( ( defined( 'WP_PLUGIN_URL' ) ) ? WP_PLUGIN_URL : 'Not defined' );
|
3702 |
$output .= "\r\n\r\n";
|
3703 |
|
3704 |
-
$output .= 'AWS_USE_EC2_IAM_ROLE: ';
|
3705 |
-
$output .= esc_html( ( defined( 'AWS_USE_EC2_IAM_ROLE' ) ) ? AWS_USE_EC2_IAM_ROLE : 'Not defined' );
|
3706 |
-
$output .= "\r\n";
|
3707 |
-
|
3708 |
$output .= 'AS3CF_PROVIDER: ';
|
3709 |
$output .= esc_html( ( defined( 'AS3CF_PROVIDER' ) ) ? AS3CF_PROVIDER : 'Not defined' );
|
3710 |
$output .= "\r\n";
|
@@ -3715,53 +3767,130 @@ class Amazon_S3_And_CloudFront extends AS3CF_Plugin_Base {
|
|
3715 |
|
3716 |
$output .= 'AS3CF_REGION: ';
|
3717 |
$output .= esc_html( ( defined( 'AS3CF_REGION' ) ) ? AS3CF_REGION : 'Not defined' );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3718 |
$output .= "\r\n\r\n";
|
3719 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3720 |
$output .= 'Bucket: ';
|
3721 |
-
$output .= $this->get_setting( 'bucket' );
|
3722 |
$output .= "\r\n";
|
3723 |
$output .= 'Region: ';
|
3724 |
-
$region = $this->get_setting( 'region' );
|
3725 |
if ( ! is_wp_error( $region ) ) {
|
3726 |
$output .= $region;
|
3727 |
}
|
3728 |
$output .= "\r\n";
|
|
|
|
|
3729 |
$output .= 'Copy Files to Bucket: ';
|
3730 |
$output .= $this->on_off( 'copy-to-s3' );
|
3731 |
$output .= "\r\n";
|
3732 |
-
$output .= '
|
3733 |
-
$output .= $this->on_off( '
|
3734 |
$output .= "\r\n";
|
|
|
|
|
3735 |
$output .= "\r\n";
|
3736 |
-
|
3737 |
-
$output .=
|
3738 |
-
$output .= $this->get_local_url_preview( $escape );
|
3739 |
$output .= "\r\n";
|
3740 |
-
$output .=
|
3741 |
-
$output .= $this->
|
3742 |
$output .= "\r\n";
|
3743 |
$output .= "\r\n";
|
3744 |
|
3745 |
-
$output .= '
|
3746 |
-
$output .= $this->
|
3747 |
-
$output .= "\r\n";
|
3748 |
-
$output .= 'Enable Path: ';
|
3749 |
-
$output .= $this->on_off( 'enable-object-prefix' );
|
3750 |
$output .= "\r\n";
|
3751 |
-
$output .= 'Custom
|
3752 |
-
$output .= $this->get_setting( '
|
3753 |
$output .= "\r\n";
|
3754 |
-
$output .= '
|
3755 |
-
$output .= $this->
|
3756 |
$output .= "\r\n";
|
3757 |
$output .= 'Force HTTPS: ';
|
3758 |
$output .= $this->on_off( 'force-https' );
|
3759 |
$output .= "\r\n";
|
|
|
|
|
3760 |
$output .= 'Remove Files From Server: ';
|
3761 |
$output .= $this->on_off( 'remove-local-file' );
|
3762 |
-
$output .= "\r\n";
|
3763 |
-
$output .= 'Object Versioning: ';
|
3764 |
-
$output .= $this->on_off( 'object-versioning' );
|
3765 |
$output .= "\r\n\r\n";
|
3766 |
|
3767 |
$output = apply_filters( 'as3cf_diagnostic_info', $output );
|
@@ -3879,14 +4008,15 @@ class Amazon_S3_And_CloudFront extends AS3CF_Plugin_Base {
|
|
3879 |
/**
|
3880 |
* Helper to remove the plugin directory from the plugin path
|
3881 |
*
|
3882 |
-
* @param string $path
|
3883 |
*
|
3884 |
* @return string
|
3885 |
*/
|
3886 |
-
function remove_wp_plugin_dir( $path ) {
|
3887 |
-
$
|
|
|
3888 |
|
3889 |
-
return
|
3890 |
}
|
3891 |
|
3892 |
/**
|
@@ -4057,9 +4187,9 @@ class Amazon_S3_And_CloudFront extends AS3CF_Plugin_Base {
|
|
4057 |
|
4058 |
$quick_start = sprintf( '<a class="js-link" href="%s">%s</a>', $url, __( 'Quick Start Guide', 'amazon-s3-and-cloudfront' ) );
|
4059 |
|
4060 |
-
$message = sprintf( __( "Looks like we don't have write access to this bucket. It's likely that the user you've provided
|
4061 |
if ( ! $single ) {
|
4062 |
-
$message = sprintf( __( "Looks like we don't have access to the buckets. It's likely that the user you've provided
|
4063 |
}
|
4064 |
|
4065 |
return $message;
|
@@ -4568,7 +4698,7 @@ class Amazon_S3_And_CloudFront extends AS3CF_Plugin_Base {
|
|
4568 |
*
|
4569 |
* @return array
|
4570 |
*/
|
4571 |
-
function add_media_row_actions( $actions
|
4572 |
return $actions;
|
4573 |
}
|
4574 |
|
2 |
|
3 |
use DeliciousBrains\WP_Offload_Media\Providers\AWS_Provider;
|
4 |
use DeliciousBrains\WP_Offload_Media\Providers\DigitalOcean_Provider;
|
5 |
+
use DeliciousBrains\WP_Offload_Media\Providers\GCP_Provider;
|
6 |
use DeliciousBrains\WP_Offload_Media\Providers\Null_Provider;
|
7 |
use DeliciousBrains\WP_Offload_Media\Providers\Provider;
|
8 |
use DeliciousBrains\WP_Offload_Media\Upgrades\Upgrade_Content_Replace_URLs;
|
139 |
static::$provider_classes = array(
|
140 |
AWS_Provider::get_provider_key_name() => 'DeliciousBrains\WP_Offload_Media\Providers\AWS_Provider',
|
141 |
DigitalOcean_Provider::get_provider_key_name() => 'DeliciousBrains\WP_Offload_Media\Providers\DigitalOcean_Provider',
|
142 |
+
GCP_Provider::get_provider_key_name() => 'DeliciousBrains\WP_Offload_Media\Providers\GCP_Provider',
|
143 |
);
|
144 |
|
145 |
$this->set_provider();
|
1129 |
$region = isset( $old_provider_object['region'] ) ? $old_provider_object['region'] : '';
|
1130 |
} else {
|
1131 |
// derive prefix from various settings
|
1132 |
+
$time = $this->get_attachment_folder_year_month( $post_id, $data );
|
|
|
|
|
|
|
|
|
|
|
|
|
1133 |
$prefix = $this->get_file_prefix( $time );
|
1134 |
|
1135 |
// use bucket from settings
|
1153 |
'Expires' => date( 'D, d M Y H:i:s O', time() + 31536000 ),
|
1154 |
);
|
1155 |
|
1156 |
+
// TODO: Remove GZIP functionality.
|
1157 |
// Handle gzip on supported items
|
1158 |
if ( $this->should_gzip_file( $file_path, $type ) && false !== ( $gzip_body = gzencode( file_get_contents( $file_path ) ) ) ) {
|
1159 |
unset( $args['SourceFile'] );
|
1448 |
}
|
1449 |
|
1450 |
/**
|
1451 |
+
* Get the year/month string for attachment's upload.
|
1452 |
*
|
1453 |
+
* Fall back to post date if attached, otherwise current date.
|
1454 |
*
|
1455 |
+
* @param int $post_id Attachment's ID
|
1456 |
+
* @param array $data Attachment's metadata
|
1457 |
*
|
1458 |
+
* @return string
|
1459 |
*/
|
1460 |
+
function get_attachment_folder_year_month( $post_id, $data = null ) {
|
1461 |
+
if ( isset( $data['file'] ) ) {
|
1462 |
+
$time = $this->get_folder_time_from_url( $data['file'] );
|
|
|
|
|
1463 |
}
|
1464 |
|
1465 |
+
if ( empty( $time ) && ( $local_url = wp_get_attachment_url( $post_id ) ) ) {
|
1466 |
+
$time = $this->get_folder_time_from_url( $local_url );
|
1467 |
}
|
1468 |
|
1469 |
+
if ( empty( $time ) ) {
|
1470 |
+
$time = date( 'Y/m' );
|
1471 |
+
|
1472 |
+
if ( ! ( $attach = get_post( $post_id ) ) ) {
|
1473 |
+
return $time;
|
1474 |
+
}
|
1475 |
+
|
1476 |
+
if ( ! $attach->post_parent ) {
|
1477 |
+
return $time;
|
1478 |
+
}
|
1479 |
+
|
1480 |
+
if ( ! ( $post = get_post( $attach->post_parent ) ) ) {
|
1481 |
+
return $time;
|
1482 |
+
}
|
1483 |
|
1484 |
+
if ( substr( $post->post_date_gmt, 0, 4 ) > 0 ) {
|
1485 |
+
return date( 'Y/m', strtotime( $post->post_date_gmt . ' +0000' ) );
|
1486 |
+
}
|
1487 |
}
|
1488 |
|
1489 |
return $time;
|
1911 |
* @return mixed|WP_Error
|
1912 |
*/
|
1913 |
public function get_attachment_provider_url( $post_id, $provider_object, $expires = null, $size = null, $meta = null, $headers = array() ) {
|
|
|
|
|
1914 |
// We don't use $this->get_provider_object_region() here because we don't want
|
1915 |
// to make an AWS API call and slow down page loading
|
1916 |
if ( isset( $provider_object['region'] ) && ( $this->get_provider()->region_required() || $this->get_provider()->get_default_region() !== $provider_object['region'] ) ) {
|
1951 |
}
|
1952 |
}
|
1953 |
|
1954 |
+
$scheme = $this->get_url_scheme();
|
1955 |
+
$domain = $this->get_provider()->get_url_domain( $provider_object['bucket'], $region, $expires );
|
1956 |
+
$base_url = $scheme . '://' . $domain;
|
1957 |
+
|
1958 |
if ( ! is_null( $expires ) && $this->is_plugin_setup( true ) ) {
|
1959 |
try {
|
1960 |
+
if ( $this->get_provider()->get_domain() !== $domain ) {
|
1961 |
+
$headers['BaseURL'] = $base_url;
|
1962 |
+
}
|
1963 |
+
|
1964 |
$expires = time() + apply_filters( 'as3cf_expires', $expires );
|
1965 |
$secure_url = $this->get_provider_client( $region )
|
1966 |
->get_object_url( $provider_object['bucket'], $provider_object['key'], $expires, $headers );
|
1973 |
|
1974 |
$provider_object['key'] = $this->maybe_update_cloudfront_path( $provider_object['key'] );
|
1975 |
|
1976 |
+
$file = $this->encode_filename_in_path( $provider_object['key'] );
|
1977 |
+
$url = $base_url . '/' . $file;
|
|
|
1978 |
|
1979 |
return apply_filters( 'as3cf_get_attachment_url', $url, $provider_object, $post_id, $expires, $headers );
|
1980 |
}
|
2739 |
return new WP_Error( 'exception', $e->getMessage() );
|
2740 |
}
|
2741 |
|
2742 |
+
if ( empty( $result['Buckets'] ) ) {
|
2743 |
+
return array();
|
2744 |
+
} else {
|
2745 |
+
return $result['Buckets'];
|
2746 |
+
}
|
2747 |
}
|
2748 |
|
2749 |
/**
|
2787 |
}
|
2788 |
|
2789 |
$key = $this->get_file_prefix() . 'as3cf-permission-check.txt';
|
2790 |
+
$file_contents = __( 'This is a test file to check if the user has write permission to the bucket. Delete me if found.', 'amazon-s3-and-cloudfront' );
|
2791 |
|
2792 |
$can_write = $this->get_provider_client( $region, true )->can_write( $bucket, $key, $file_contents );
|
2793 |
|
2874 |
wp_localize_script( 'as3cf-script',
|
2875 |
'as3cf',
|
2876 |
array(
|
2877 |
+
'strings' => array(
|
2878 |
'create_bucket_error' => __( 'Error creating bucket', 'amazon-s3-and-cloudfront' ),
|
2879 |
'create_bucket_name_short' => __( 'Bucket name too short.', 'amazon-s3-and-cloudfront' ),
|
2880 |
'create_bucket_name_long' => __( 'Bucket name too long.', 'amazon-s3-and-cloudfront' ),
|
2889 |
// Mimic WP Core's notice text, therefore no translation needed here.
|
2890 |
'settings_saved' => __( 'Settings saved.' ),
|
2891 |
),
|
2892 |
+
'nonces' => array(
|
2893 |
'create_bucket' => wp_create_nonce( 'as3cf-create-bucket' ),
|
2894 |
'manual_bucket' => wp_create_nonce( 'as3cf-manual-save-bucket' ),
|
2895 |
'get_buckets' => wp_create_nonce( 'as3cf-get-buckets' ),
|
2899 |
'aws_keys_set' => wp_create_nonce( 'as3cf-aws-keys-set' ),
|
2900 |
'aws_keys_remove' => wp_create_nonce( 'as3cf-aws-keys-remove' ),
|
2901 |
),
|
2902 |
+
'is_pro' => $this->is_pro(),
|
2903 |
+
'provider_console_url' => $this->get_provider()->get_console_url(),
|
2904 |
+
'provider_console_url_prefix_param' => $this->get_provider()->get_console_url_prefix_param(),
|
2905 |
)
|
2906 |
);
|
2907 |
|
2922 |
'provider',
|
2923 |
'access-key-id',
|
2924 |
'secret-access-key',
|
2925 |
+
'key-file-path',
|
2926 |
+
'key-file',
|
2927 |
'bucket',
|
2928 |
'region',
|
2929 |
'domain',
|
2960 |
* @return array
|
2961 |
*/
|
2962 |
function get_skip_sanitize_settings() {
|
2963 |
+
return array( 'key-file' );
|
2964 |
}
|
2965 |
|
2966 |
/**
|
2979 |
die( __( "Cheatin' eh?", 'amazon-s3-and-cloudfront' ) );
|
2980 |
}
|
2981 |
|
2982 |
+
// Keep track of original provider at start of settings change flow.
|
2983 |
+
$orig_provider = empty( $_GET['orig_provider'] ) ? $this->get_setting( 'provider', false ) : $_GET['orig_provider'];
|
2984 |
+
|
2985 |
if ( $this->get_provider()->needs_access_keys() || ( ! empty( $_GET['action'] ) && 'change-provider' === $_GET['action'] ) ) {
|
2986 |
// Changing Provider currently doesn't need anything special over saving settings,
|
2987 |
// but if not already set needs to be handled rather than change-bucket raising its hand.
|
3010 |
// If anything about the Provider has changed then we need to verify the bucket selection.
|
3011 |
// Otherwise we can let the filter decide whether there is an action to take.
|
3012 |
// Last implementer will win, but the above handlers take care of grouping things appropriately.
|
3013 |
+
if ( in_array( $key, array( 'provider', 'access-key-id', 'secret-access-key', 'key-file' ) ) && ! $this->get_defined_setting( 'bucket', false ) ) {
|
3014 |
$action = 'change-bucket';
|
3015 |
break;
|
3016 |
} else {
|
3034 |
|
3035 |
if ( ! empty( $action ) ) {
|
3036 |
$url_args['action'] = $action;
|
|
|
3037 |
|
3038 |
+
if ( ! empty( $prev_action ) ) {
|
3039 |
+
$url_args['prev_action'] = $prev_action;
|
3040 |
+
}
|
3041 |
+
|
3042 |
+
if ( ! empty( $orig_provider ) ) {
|
3043 |
+
$url_args['orig_provider'] = $orig_provider;
|
3044 |
+
}
|
3045 |
}
|
3046 |
|
3047 |
$url = $this->get_plugin_page_url( $url_args );
|
3069 |
$bucket = $this->check_bucket( $bucket );
|
3070 |
|
3071 |
if ( false === $bucket ) {
|
3072 |
+
$this->notices->add_notice( __( 'Bucket name not valid.', 'amazon-s3-and-cloudfront' ), array( 'type' => 'error', 'only_show_in_settings' => true, 'only_show_on_tab' => 'media' ) );
|
3073 |
|
3074 |
return false;
|
3075 |
}
|
3147 |
/**
|
3148 |
* Handle saving settings submitted by user.
|
3149 |
*
|
3150 |
+
* @return array|bool
|
3151 |
*/
|
3152 |
+
protected function handle_save_settings() {
|
3153 |
$changed_keys = array();
|
3154 |
|
3155 |
do_action( 'as3cf_pre_save_settings' );
|
3171 |
|
3172 |
$value = $this->sanitize_setting( $var, $_POST[ $var ] );
|
3173 |
|
3174 |
+
if ( 'key-file' === $var && is_string( $value ) && ! empty( $value ) ) {
|
3175 |
+
$value = stripslashes( $value );
|
3176 |
+
|
3177 |
+
// Guard against empty JSON.
|
3178 |
+
if ( '""' === $value ) {
|
3179 |
+
continue;
|
3180 |
+
}
|
3181 |
+
|
3182 |
+
$value = json_decode( $value, true );
|
3183 |
+
|
3184 |
+
if ( empty( $value ) ) {
|
3185 |
+
$this->notices->add_notice( __( 'Key File not valid JSON.', 'amazon-s3-and-cloudfront' ), array( 'type' => 'error', 'only_show_in_settings' => true, 'only_show_on_tab' => 'media' ) );
|
3186 |
+
|
3187 |
+
return false;
|
3188 |
+
}
|
3189 |
+
}
|
3190 |
+
|
3191 |
$this->set_setting( $var, $value );
|
3192 |
|
3193 |
// Some setting changes might have knock-on effects that require confirmation of secondary settings.
|
3400 |
* @param string $acl
|
3401 |
*
|
3402 |
* @return array|bool|WP_Error
|
3403 |
+
* @throws Exception
|
3404 |
*/
|
3405 |
public function set_attachment_acl_on_provider( $post_id, $provider_object, $acl ) {
|
3406 |
// Return early if already set to the desired ACL
|
3510 |
global $table_prefix;
|
3511 |
global $wpdb;
|
3512 |
|
3513 |
+
/*
|
3514 |
+
* WordPress & Server Environment
|
3515 |
+
*/
|
3516 |
+
|
3517 |
$output = 'site_url(): ';
|
3518 |
$output .= esc_html( site_url() );
|
3519 |
$output .= "\r\n";
|
3708 |
}
|
3709 |
$output .= "\r\n\r\n";
|
3710 |
|
3711 |
+
/*
|
3712 |
+
* Media
|
3713 |
+
*/
|
3714 |
+
|
3715 |
$media_counts = $this->diagnostic_media_counts();
|
3716 |
|
3717 |
$output .= 'Media Files: ';
|
3733 |
$output .= $size_details;
|
3734 |
$output .= "\r\n";
|
3735 |
|
3736 |
+
/*
|
3737 |
+
* Defines
|
3738 |
+
*/
|
3739 |
+
|
3740 |
$output .= 'WP_CONTENT_DIR: ';
|
3741 |
$output .= esc_html( ( defined( 'WP_CONTENT_DIR' ) ) ? WP_CONTENT_DIR : 'Not defined' );
|
3742 |
$output .= "\r\n";
|
3757 |
$output .= esc_html( ( defined( 'WP_PLUGIN_URL' ) ) ? WP_PLUGIN_URL : 'Not defined' );
|
3758 |
$output .= "\r\n\r\n";
|
3759 |
|
|
|
|
|
|
|
|
|
3760 |
$output .= 'AS3CF_PROVIDER: ';
|
3761 |
$output .= esc_html( ( defined( 'AS3CF_PROVIDER' ) ) ? AS3CF_PROVIDER : 'Not defined' );
|
3762 |
$output .= "\r\n";
|
3767 |
|
3768 |
$output .= 'AS3CF_REGION: ';
|
3769 |
$output .= esc_html( ( defined( 'AS3CF_REGION' ) ) ? AS3CF_REGION : 'Not defined' );
|
3770 |
+
$output .= "\r\n";
|
3771 |
+
|
3772 |
+
$output .= 'AS3CF_SETTINGS: ';
|
3773 |
+
|
3774 |
+
$settings_constant = $this::settings_constant();
|
3775 |
+
|
3776 |
+
if ( $settings_constant ) {
|
3777 |
+
$output .= 'Defined';
|
3778 |
+
|
3779 |
+
if ( 'AS3CF_SETTINGS' !== $settings_constant ) {
|
3780 |
+
$output .= ' (using ' . $settings_constant . ')';
|
3781 |
+
}
|
3782 |
+
|
3783 |
+
$defined_settings = $this::get_defined_settings();
|
3784 |
+
if ( empty( $defined_settings ) ) {
|
3785 |
+
$output .= ' - *EMPTY*';
|
3786 |
+
} else {
|
3787 |
+
$output .= "\r\n";
|
3788 |
+
$output .= 'AS3CF_SETTINGS Keys: ' . implode( ', ', array_keys( $defined_settings ) );
|
3789 |
+
}
|
3790 |
+
} else {
|
3791 |
+
$output .= 'Not defined';
|
3792 |
+
}
|
3793 |
$output .= "\r\n\r\n";
|
3794 |
|
3795 |
+
/*
|
3796 |
+
* Settings
|
3797 |
+
*/
|
3798 |
+
|
3799 |
+
$output .= "Local URL:\r\n";
|
3800 |
+
$output .= $this->get_local_url_preview( $escape );
|
3801 |
+
$output .= "\r\n";
|
3802 |
+
$output .= "Offload URL:\r\n";
|
3803 |
+
$output .= $this->get_url_preview( $escape );
|
3804 |
+
$output .= "\r\n";
|
3805 |
+
$output .= "\r\n";
|
3806 |
+
|
3807 |
+
$provider = $this->get_provider();
|
3808 |
+
|
3809 |
+
if ( empty( $provider ) ) {
|
3810 |
+
$output .= 'Provider: Not configured';
|
3811 |
+
$output .= "\r\n";
|
3812 |
+
} else {
|
3813 |
+
$output .= 'Provider: ' . $provider::get_provider_name();
|
3814 |
+
$output .= "\r\n";
|
3815 |
+
|
3816 |
+
if ( $provider::use_server_roles_allowed() ) {
|
3817 |
+
$output .= 'Use Server Role: ' . $this->on_off( $provider::use_server_roles() );
|
3818 |
+
} else {
|
3819 |
+
$output .= 'Use Server Role: N/A';
|
3820 |
+
}
|
3821 |
+
$output .= "\r\n";
|
3822 |
+
|
3823 |
+
if ( $provider::use_key_file_allowed() ) {
|
3824 |
+
$output .= 'Key File Path: ';
|
3825 |
+
$output .= empty( $provider->get_key_file_path() ) ? 'None' : esc_html( $provider->get_key_file_path() );
|
3826 |
+
$output .= "\r\n";
|
3827 |
+
$output .= 'Key File Path Define: ';
|
3828 |
+
$output .= $provider::key_file_path_constant() ? $provider::key_file_path_constant() : 'Not defined';
|
3829 |
+
} else {
|
3830 |
+
$output .= 'Key File Path: N/A';
|
3831 |
+
}
|
3832 |
+
$output .= "\r\n";
|
3833 |
+
|
3834 |
+
if ( $provider::use_access_keys_allowed() ) {
|
3835 |
+
$output .= 'Access Keys Set: ';
|
3836 |
+
$output .= $provider->are_access_keys_set() ? 'Yes' : 'No';
|
3837 |
+
$output .= "\r\n";
|
3838 |
+
$output .= 'Access Key ID Define: ';
|
3839 |
+
$output .= $provider::access_key_id_constant() ? $provider::access_key_id_constant() : 'Not defined';
|
3840 |
+
$output .= "\r\n";
|
3841 |
+
$output .= 'Secret Access Key Define: ';
|
3842 |
+
$output .= $provider::secret_access_key_constant() ? $provider::secret_access_key_constant() : 'Not defined';
|
3843 |
+
} else {
|
3844 |
+
$output .= 'Access Keys Set: N/A';
|
3845 |
+
}
|
3846 |
+
$output .= "\r\n";
|
3847 |
+
}
|
3848 |
+
$output .= "\r\n";
|
3849 |
+
|
3850 |
$output .= 'Bucket: ';
|
3851 |
+
$output .= esc_html( $this->get_setting( 'bucket' ) );
|
3852 |
$output .= "\r\n";
|
3853 |
$output .= 'Region: ';
|
3854 |
+
$region = esc_html( $this->get_setting( 'region' ) );
|
3855 |
if ( ! is_wp_error( $region ) ) {
|
3856 |
$output .= $region;
|
3857 |
}
|
3858 |
$output .= "\r\n";
|
3859 |
+
$output .= "\r\n";
|
3860 |
+
|
3861 |
$output .= 'Copy Files to Bucket: ';
|
3862 |
$output .= $this->on_off( 'copy-to-s3' );
|
3863 |
$output .= "\r\n";
|
3864 |
+
$output .= 'Enable Path: ';
|
3865 |
+
$output .= $this->on_off( 'enable-object-prefix' );
|
3866 |
$output .= "\r\n";
|
3867 |
+
$output .= 'Custom Path: ';
|
3868 |
+
$output .= esc_html( $this->get_setting( 'object-prefix' ) );
|
3869 |
$output .= "\r\n";
|
3870 |
+
$output .= 'Use Year/Month: ';
|
3871 |
+
$output .= $this->on_off( 'use-yearmonth-folders' );
|
|
|
3872 |
$output .= "\r\n";
|
3873 |
+
$output .= 'Object Versioning: ';
|
3874 |
+
$output .= $this->on_off( 'object-versioning' );
|
3875 |
$output .= "\r\n";
|
3876 |
$output .= "\r\n";
|
3877 |
|
3878 |
+
$output .= 'Rewrite Media URLs: ';
|
3879 |
+
$output .= $this->on_off( 'serve-from-s3' );
|
|
|
|
|
|
|
3880 |
$output .= "\r\n";
|
3881 |
+
$output .= 'Enable Custom Domain (CDN): ';
|
3882 |
+
$output .= 'cloudfront' === $this->get_setting( 'domain' ) ? 'On' : 'Off';
|
3883 |
$output .= "\r\n";
|
3884 |
+
$output .= 'Custom Domain (CDN): ';
|
3885 |
+
$output .= esc_html( $this->get_setting( 'cloudfront' ) );
|
3886 |
$output .= "\r\n";
|
3887 |
$output .= 'Force HTTPS: ';
|
3888 |
$output .= $this->on_off( 'force-https' );
|
3889 |
$output .= "\r\n";
|
3890 |
+
$output .= "\r\n";
|
3891 |
+
|
3892 |
$output .= 'Remove Files From Server: ';
|
3893 |
$output .= $this->on_off( 'remove-local-file' );
|
|
|
|
|
|
|
3894 |
$output .= "\r\n\r\n";
|
3895 |
|
3896 |
$output = apply_filters( 'as3cf_diagnostic_info', $output );
|
4008 |
/**
|
4009 |
* Helper to remove the plugin directory from the plugin path
|
4010 |
*
|
4011 |
+
* @param string $path Absolute plugin file path
|
4012 |
*
|
4013 |
* @return string
|
4014 |
*/
|
4015 |
+
public function remove_wp_plugin_dir( $path ) {
|
4016 |
+
$plugin_dir = trailingslashit( WP_PLUGIN_DIR );
|
4017 |
+
$plugin = str_replace( $plugin_dir, '', $path );
|
4018 |
|
4019 |
+
return $plugin;
|
4020 |
}
|
4021 |
|
4022 |
/**
|
4187 |
|
4188 |
$quick_start = sprintf( '<a class="js-link" href="%s">%s</a>', $url, __( 'Quick Start Guide', 'amazon-s3-and-cloudfront' ) );
|
4189 |
|
4190 |
+
$message = sprintf( __( "Looks like we don't have write access to this bucket. It's likely that the user you've provided credentials for hasn't been granted the correct permissions. Please see our %s for instructions on setting up permissions correctly.", 'amazon-s3-and-cloudfront' ), $quick_start );
|
4191 |
if ( ! $single ) {
|
4192 |
+
$message = sprintf( __( "Looks like we don't have access to the buckets. It's likely that the user you've provided credentials for hasn't been granted the correct permissions. Please see our %s for instructions on setting up permissions correctly.", 'amazon-s3-and-cloudfront' ), $quick_start );
|
4193 |
}
|
4194 |
|
4195 |
return $message;
|
4698 |
*
|
4699 |
* @return array
|
4700 |
*/
|
4701 |
+
function add_media_row_actions( Array $actions, $post ) {
|
4702 |
return $actions;
|
4703 |
}
|
4704 |
|
classes/as3cf-compatibility-check.php
CHANGED
@@ -620,6 +620,14 @@ if ( ! class_exists( 'AS3CF_Compatibility_Check' ) ) {
|
|
620 |
$errors[] = __( 'a PHP version less than 5.5', 'amazon-s3-and-cloudfront' );
|
621 |
}
|
622 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
623 |
if ( ! function_exists( 'curl_version' ) ) {
|
624 |
$errors[] = __( 'no PHP cURL library activated', 'amazon-s3-and-cloudfront' );
|
625 |
|
@@ -665,7 +673,7 @@ if ( ! class_exists( 'AS3CF_Compatibility_Check' ) ) {
|
|
665 |
return '';
|
666 |
}
|
667 |
|
668 |
-
$msg = __( 'The official Amazon Web Services SDK requires PHP 5.5+ and cURL 7.16.2+ compiled with OpenSSL and zlib. Your server currently has', 'amazon-s3-and-cloudfront' );
|
669 |
|
670 |
if ( count( $errors ) > 1 ) {
|
671 |
$last_one = ' and ' . array_pop( $errors );
|
620 |
$errors[] = __( 'a PHP version less than 5.5', 'amazon-s3-and-cloudfront' );
|
621 |
}
|
622 |
|
623 |
+
if ( ! class_exists( 'SimpleXMLElement' ) ) {
|
624 |
+
$errors[] = __( 'no SimpleXML PHP module', 'amazon-s3-and-cloudfront' );
|
625 |
+
}
|
626 |
+
|
627 |
+
if ( ! class_exists( 'XMLWriter' ) ) {
|
628 |
+
$errors[] = __( 'no XMLWriter PHP module', 'amazon-s3-and-cloudfront' );
|
629 |
+
}
|
630 |
+
|
631 |
if ( ! function_exists( 'curl_version' ) ) {
|
632 |
$errors[] = __( 'no PHP cURL library activated', 'amazon-s3-and-cloudfront' );
|
633 |
|
673 |
return '';
|
674 |
}
|
675 |
|
676 |
+
$msg = __( 'The official Amazon Web Services SDK requires PHP 5.5+ with SimpleXML and XMLWriter modules, and cURL 7.16.2+ compiled with OpenSSL and zlib. Your server currently has', 'amazon-s3-and-cloudfront' );
|
677 |
|
678 |
if ( count( $errors ) > 1 ) {
|
679 |
$last_one = ' and ' . array_pop( $errors );
|
classes/as3cf-plugin-base.php
CHANGED
@@ -126,6 +126,19 @@ abstract class AS3CF_Plugin_Base {
|
|
126 |
return $this->settings;
|
127 |
}
|
128 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
129 |
/**
|
130 |
* Get the constant used to define the settings.
|
131 |
*
|
@@ -309,16 +322,24 @@ abstract class AS3CF_Plugin_Base {
|
|
309 |
/**
|
310 |
* Sanitize a setting value, maybe.
|
311 |
*
|
312 |
-
* @param $key
|
313 |
-
* @param $value
|
314 |
*
|
315 |
-
* @return
|
316 |
*/
|
317 |
function sanitize_setting( $key, $value ) {
|
318 |
$skip_sanitize = $this->get_skip_sanitize_settings();
|
319 |
|
320 |
if ( in_array( $key, $skip_sanitize ) ) {
|
321 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
322 |
} else {
|
323 |
$value = sanitize_text_field( $value );
|
324 |
}
|
126 |
return $this->settings;
|
127 |
}
|
128 |
|
129 |
+
/**
|
130 |
+
* Returns first (preferred) settings constant that can be defined, otherwise blank.
|
131 |
+
*
|
132 |
+
* @return string
|
133 |
+
*/
|
134 |
+
public static function preferred_settings_constant() {
|
135 |
+
if ( ! empty( static::$settings_constants ) ) {
|
136 |
+
return static::$settings_constants[0];
|
137 |
+
} else {
|
138 |
+
return '';
|
139 |
+
}
|
140 |
+
}
|
141 |
+
|
142 |
/**
|
143 |
* Get the constant used to define the settings.
|
144 |
*
|
322 |
/**
|
323 |
* Sanitize a setting value, maybe.
|
324 |
*
|
325 |
+
* @param string $key
|
326 |
+
* @param mixed $value
|
327 |
*
|
328 |
+
* @return mixed
|
329 |
*/
|
330 |
function sanitize_setting( $key, $value ) {
|
331 |
$skip_sanitize = $this->get_skip_sanitize_settings();
|
332 |
|
333 |
if ( in_array( $key, $skip_sanitize ) ) {
|
334 |
+
if ( is_array( $value ) ) {
|
335 |
+
$result = array();
|
336 |
+
foreach ( $value as $k => $v ) {
|
337 |
+
$result[ $k ] = wp_strip_all_tags( $v );
|
338 |
+
}
|
339 |
+
$value = $result;
|
340 |
+
} else {
|
341 |
+
$value = wp_strip_all_tags( $value );
|
342 |
+
}
|
343 |
} else {
|
344 |
$value = sanitize_text_field( $value );
|
345 |
}
|
classes/providers/aws-provider.php
CHANGED
@@ -139,7 +139,7 @@ class AWS_Provider extends Provider {
|
|
139 |
/**
|
140 |
* @var string
|
141 |
*/
|
142 |
-
protected $
|
143 |
|
144 |
const API_VERSION = '2006-03-01';
|
145 |
const SIGNATURE_VERSION = 'v4';
|
@@ -265,7 +265,7 @@ class AWS_Provider extends Provider {
|
|
265 |
/**
|
266 |
* Check whether bucket exists.
|
267 |
*
|
268 |
-
* @param $bucket
|
269 |
*
|
270 |
* @return bool
|
271 |
*/
|
@@ -301,9 +301,9 @@ class AWS_Provider extends Provider {
|
|
301 |
/**
|
302 |
* Check whether key exists in bucket.
|
303 |
*
|
304 |
-
* @param
|
305 |
-
* @param
|
306 |
-
* @param array
|
307 |
*
|
308 |
* @return bool
|
309 |
*/
|
@@ -343,10 +343,10 @@ class AWS_Provider extends Provider {
|
|
343 |
/**
|
344 |
* Get object's URL.
|
345 |
*
|
346 |
-
* @param
|
347 |
-
* @param
|
348 |
-
* @param
|
349 |
-
* @param array
|
350 |
*
|
351 |
* @return string
|
352 |
*/
|
@@ -359,7 +359,7 @@ class AWS_Provider extends Provider {
|
|
359 |
|
360 |
$command = $this->s3_client->getCommand( 'GetObject', $commandArgs );
|
361 |
|
362 |
-
if ( empty( $expires ) ) {
|
363 |
return (string) \DeliciousBrains\WP_Offload_Media\Aws3\Aws\serialize( $command )->getUri();
|
364 |
} else {
|
365 |
return (string) $this->s3_client->createPresignedRequest( $command, $expires )->getUri();
|
@@ -436,10 +436,17 @@ class AWS_Provider extends Provider {
|
|
436 |
|
437 |
/* @var ResultInterface $result */
|
438 |
foreach ( $results as $attachment_id => $result ) {
|
439 |
-
|
|
|
440 |
|
441 |
-
|
442 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
443 |
}
|
444 |
}
|
445 |
|
@@ -524,7 +531,7 @@ class AWS_Provider extends Provider {
|
|
524 |
'Bucket' => $bucket,
|
525 |
'Key' => $key,
|
526 |
'Body' => $file_contents,
|
527 |
-
'ACL' =>
|
528 |
) );
|
529 |
|
530 |
// delete it straight away if created
|
@@ -536,7 +543,7 @@ class AWS_Provider extends Provider {
|
|
536 |
return true;
|
537 |
} catch ( \Exception $e ) {
|
538 |
// If we encounter an error that isn't access denied, throw that error.
|
539 |
-
if ( ! $e instanceof S3Exception ||
|
540 |
return $e->getMessage();
|
541 |
}
|
542 |
}
|
@@ -599,4 +606,16 @@ class AWS_Provider extends Provider {
|
|
599 |
|
600 |
return $domain;
|
601 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
602 |
}
|
139 |
/**
|
140 |
* @var string
|
141 |
*/
|
142 |
+
protected $console_url_prefix_param = '&prefix=';
|
143 |
|
144 |
const API_VERSION = '2006-03-01';
|
145 |
const SIGNATURE_VERSION = 'v4';
|
265 |
/**
|
266 |
* Check whether bucket exists.
|
267 |
*
|
268 |
+
* @param string $bucket
|
269 |
*
|
270 |
* @return bool
|
271 |
*/
|
301 |
/**
|
302 |
* Check whether key exists in bucket.
|
303 |
*
|
304 |
+
* @param string $bucket
|
305 |
+
* @param string $key
|
306 |
+
* @param array $options
|
307 |
*
|
308 |
* @return bool
|
309 |
*/
|
343 |
/**
|
344 |
* Get object's URL.
|
345 |
*
|
346 |
+
* @param string $bucket
|
347 |
+
* @param string $key
|
348 |
+
* @param int $expires
|
349 |
+
* @param array $args
|
350 |
*
|
351 |
* @return string
|
352 |
*/
|
359 |
|
360 |
$command = $this->s3_client->getCommand( 'GetObject', $commandArgs );
|
361 |
|
362 |
+
if ( empty( $expires ) || ! is_int( $expires ) || $expires < 0 ) {
|
363 |
return (string) \DeliciousBrains\WP_Offload_Media\Aws3\Aws\serialize( $command )->getUri();
|
364 |
} else {
|
365 |
return (string) $this->s3_client->createPresignedRequest( $command, $expires )->getUri();
|
436 |
|
437 |
/* @var ResultInterface $result */
|
438 |
foreach ( $results as $attachment_id => $result ) {
|
439 |
+
if ( is_a( $result, 'DeliciousBrains\WP_Offload_Media\Aws3\Aws\ResultInterface' ) ) {
|
440 |
+
$found_keys = $result->search( 'Contents[].Key' );
|
441 |
|
442 |
+
if ( ! empty( $found_keys ) ) {
|
443 |
+
$keys[ $attachment_id ] = $found_keys;
|
444 |
+
}
|
445 |
+
} elseif ( is_a( $result, 'DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3\Exception\S3Exception' ) ) {
|
446 |
+
/* @var S3Exception $result */
|
447 |
+
\AS3CF_Error::log( __FUNCTION__ . ' - ' . $result->getAwsErrorMessage() . ' - Attachment ID: ' . $attachment_id );
|
448 |
+
} else {
|
449 |
+
\AS3CF_Error::log( __FUNCTION__ . ' - Unrecognised class returned from CommandPool::batch - Attachment ID: ' . $attachment_id );
|
450 |
}
|
451 |
}
|
452 |
|
531 |
'Bucket' => $bucket,
|
532 |
'Key' => $key,
|
533 |
'Body' => $file_contents,
|
534 |
+
'ACL' => self::DEFAULT_ACL,
|
535 |
) );
|
536 |
|
537 |
// delete it straight away if created
|
543 |
return true;
|
544 |
} catch ( \Exception $e ) {
|
545 |
// If we encounter an error that isn't access denied, throw that error.
|
546 |
+
if ( ! $e instanceof S3Exception || ! in_array( $e->getAwsErrorCode(), array( 'AccessDenied', 'NoSuchBucket' ) ) ) {
|
547 |
return $e->getMessage();
|
548 |
}
|
549 |
}
|
606 |
|
607 |
return $domain;
|
608 |
}
|
609 |
+
|
610 |
+
/**
|
611 |
+
* Get the suffix param to append to the link to the bucket on the provider's console.
|
612 |
+
*
|
613 |
+
* @param string $bucket
|
614 |
+
* @param string $prefix
|
615 |
+
*
|
616 |
+
* @return string
|
617 |
+
*/
|
618 |
+
protected function get_console_url_suffix_param( $bucket = '', $prefix = '' ) {
|
619 |
+
return '';
|
620 |
+
}
|
621 |
}
|
classes/providers/digitalocean-provider.php
CHANGED
@@ -104,7 +104,7 @@ class DigitalOcean_Provider extends AWS_Provider {
|
|
104 |
/**
|
105 |
* @var string
|
106 |
*/
|
107 |
-
protected $
|
108 |
|
109 |
/**
|
110 |
* @var array
|
104 |
/**
|
105 |
* @var string
|
106 |
*/
|
107 |
+
protected $console_url_prefix_param = '?path=';
|
108 |
|
109 |
/**
|
110 |
* @var array
|
classes/providers/gcp-provider.php
ADDED
@@ -0,0 +1,671 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace DeliciousBrains\WP_Offload_Media\Providers;
|
4 |
+
|
5 |
+
use AS3CF_Utils;
|
6 |
+
use DeliciousBrains\WP_Offload_Media\Gcp\Google\Cloud\Core\Exception\GoogleException;
|
7 |
+
use DeliciousBrains\WP_Offload_Media\Gcp\Google\Cloud\Core\ServiceBuilder;
|
8 |
+
use DeliciousBrains\WP_Offload_Media\Gcp\Google\Cloud\Storage\Bucket;
|
9 |
+
use DeliciousBrains\WP_Offload_Media\Gcp\Google\Cloud\Storage\StorageClient;
|
10 |
+
use DeliciousBrains\WP_Offload_Media\Gcp\Google\Cloud\Storage\StorageObject;
|
11 |
+
use DeliciousBrains\WP_Offload_Media\Providers\Streams\GCP_GCS_Stream_Wrapper;
|
12 |
+
|
13 |
+
class GCP_Provider extends Provider {
|
14 |
+
|
15 |
+
/**
|
16 |
+
* @var ServiceBuilder
|
17 |
+
*/
|
18 |
+
private $cloud;
|
19 |
+
|
20 |
+
/**
|
21 |
+
* @var StorageClient
|
22 |
+
*/
|
23 |
+
private $storage;
|
24 |
+
|
25 |
+
/**
|
26 |
+
* @var string
|
27 |
+
*/
|
28 |
+
protected static $provider_name = 'Google Cloud Platform';
|
29 |
+
|
30 |
+
/**
|
31 |
+
* @var string
|
32 |
+
*/
|
33 |
+
protected static $provider_short_name = 'GCP';
|
34 |
+
|
35 |
+
/**
|
36 |
+
* Used in filters and settings.
|
37 |
+
*
|
38 |
+
* @var string
|
39 |
+
*/
|
40 |
+
protected static $provider_key_name = 'gcp';
|
41 |
+
|
42 |
+
/**
|
43 |
+
* @var string
|
44 |
+
*/
|
45 |
+
protected static $service_name = 'Google Cloud Storage';
|
46 |
+
|
47 |
+
/**
|
48 |
+
* @var string
|
49 |
+
*/
|
50 |
+
protected static $service_short_name = 'GCS';
|
51 |
+
|
52 |
+
/**
|
53 |
+
* Used in filters and settings.
|
54 |
+
*
|
55 |
+
* @var string
|
56 |
+
*/
|
57 |
+
protected static $service_key_name = 'gcs';
|
58 |
+
|
59 |
+
/**
|
60 |
+
* Optional override of "Provider Name" + "Service Name" for friendly name for service.
|
61 |
+
*
|
62 |
+
* @var string
|
63 |
+
*/
|
64 |
+
protected static $provider_service_name = 'Google Cloud Storage';
|
65 |
+
|
66 |
+
/**
|
67 |
+
* The slug for the service's quick start guide doc.
|
68 |
+
*
|
69 |
+
* @var string
|
70 |
+
*/
|
71 |
+
protected static $provider_service_quick_start_slug = 'google-cloud-storage-quick-start-guide';
|
72 |
+
|
73 |
+
/**
|
74 |
+
* @var array
|
75 |
+
*/
|
76 |
+
protected static $use_server_roles_constants = array(
|
77 |
+
'AS3CF_GCP_USE_GCE_IAM_ROLE',
|
78 |
+
);
|
79 |
+
|
80 |
+
/**
|
81 |
+
* @var array
|
82 |
+
*/
|
83 |
+
protected static $key_file_path_constants = array(
|
84 |
+
'AS3CF_GCP_KEY_FILE_PATH',
|
85 |
+
);
|
86 |
+
|
87 |
+
/**
|
88 |
+
* @var array
|
89 |
+
*/
|
90 |
+
protected $regions = array(
|
91 |
+
'asia' => 'Asia (Multi-Regional)',
|
92 |
+
'eu' => 'European Union (Multi-Regional)',
|
93 |
+
'us' => 'United States (Multi-Regional)',
|
94 |
+
'northamerica-northeast1' => 'Montréal',
|
95 |
+
'us-central1' => 'Iowa',
|
96 |
+
'us-east1' => 'South Carolina',
|
97 |
+
'us-east4' => 'Northern Virginia',
|
98 |
+
'us-west1' => 'Oregon',
|
99 |
+
'us-west2' => 'Los Angeles',
|
100 |
+
'southamerica-east1' => 'São Paulo',
|
101 |
+
'europe-north1' => 'Finland',
|
102 |
+
'europe-west1' => 'Belgium',
|
103 |
+
'europe-west2' => 'London',
|
104 |
+
'europe-west3' => 'Frankfurt',
|
105 |
+
'europe-west4' => 'Netherlands',
|
106 |
+
'asia-east1' => 'Taiwan',
|
107 |
+
'asia-east2' => 'Hong Kong',
|
108 |
+
'asia-northeast1' => 'Tokyo',
|
109 |
+
'asia-south1' => 'Mumbai',
|
110 |
+
'asia-southeast1' => 'Singapore',
|
111 |
+
'australia-southeast1' => 'Sydney',
|
112 |
+
);
|
113 |
+
|
114 |
+
/**
|
115 |
+
* @var string
|
116 |
+
*/
|
117 |
+
protected $default_region = 'us';
|
118 |
+
|
119 |
+
/**
|
120 |
+
* @var string
|
121 |
+
*/
|
122 |
+
protected $default_domain = 'storage.googleapis.com';
|
123 |
+
|
124 |
+
/**
|
125 |
+
* @var string
|
126 |
+
*/
|
127 |
+
protected $console_url = 'https://console.cloud.google.com/storage/browser/';
|
128 |
+
|
129 |
+
/**
|
130 |
+
* @var string
|
131 |
+
*/
|
132 |
+
protected $console_url_prefix_param = '/';
|
133 |
+
|
134 |
+
const DEFAULT_ACL = 'publicRead';
|
135 |
+
const PRIVATE_ACL = 'projectPrivate';
|
136 |
+
|
137 |
+
/**
|
138 |
+
* GCP_Provider constructor.
|
139 |
+
*
|
140 |
+
* @param \AS3CF_Plugin_Base $as3cf
|
141 |
+
*/
|
142 |
+
public function __construct( \AS3CF_Plugin_Base $as3cf ) {
|
143 |
+
parent::__construct( $as3cf );
|
144 |
+
|
145 |
+
// Autoloader.
|
146 |
+
require_once $as3cf->get_plugin_sdks_dir_path() . '/Gcp/autoload.php';
|
147 |
+
}
|
148 |
+
|
149 |
+
/**
|
150 |
+
* Returns default args array for the client.
|
151 |
+
*
|
152 |
+
* @return array
|
153 |
+
*/
|
154 |
+
protected function default_client_args() {
|
155 |
+
return array();
|
156 |
+
}
|
157 |
+
|
158 |
+
/**
|
159 |
+
* Process the args before instantiating a new client for the provider's SDK.
|
160 |
+
*
|
161 |
+
* @param array $args
|
162 |
+
*
|
163 |
+
* @return array
|
164 |
+
*/
|
165 |
+
protected function init_client_args( Array $args ) {
|
166 |
+
return $args;
|
167 |
+
}
|
168 |
+
|
169 |
+
/**
|
170 |
+
* Instantiate a new client for the provider's SDK.
|
171 |
+
*
|
172 |
+
* @param array $args
|
173 |
+
*/
|
174 |
+
protected function init_client( Array $args ) {
|
175 |
+
$this->cloud = new ServiceBuilder( $args );
|
176 |
+
}
|
177 |
+
|
178 |
+
/**
|
179 |
+
* Process the args before instantiating a new service specific client.
|
180 |
+
*
|
181 |
+
* @param array $args
|
182 |
+
*
|
183 |
+
* @return array
|
184 |
+
*/
|
185 |
+
protected function init_service_client_args( Array $args ) {
|
186 |
+
return $args;
|
187 |
+
}
|
188 |
+
|
189 |
+
/**
|
190 |
+
* Instantiate a new service specific client.
|
191 |
+
*
|
192 |
+
* @param array $args
|
193 |
+
*
|
194 |
+
* @return StorageClient
|
195 |
+
*/
|
196 |
+
protected function init_service_client( Array $args ) {
|
197 |
+
$this->storage = $this->cloud->storage( $args );
|
198 |
+
|
199 |
+
return $this->storage;
|
200 |
+
}
|
201 |
+
|
202 |
+
/**
|
203 |
+
* Make sure region "slug" fits expected format.
|
204 |
+
*
|
205 |
+
* @param string $region
|
206 |
+
*
|
207 |
+
* @return string
|
208 |
+
*/
|
209 |
+
public function sanitize_region( $region ) {
|
210 |
+
if ( ! is_string( $region ) ) {
|
211 |
+
// Don't translate any region errors
|
212 |
+
return $region;
|
213 |
+
}
|
214 |
+
|
215 |
+
return strtolower( $region );
|
216 |
+
}
|
217 |
+
|
218 |
+
/**
|
219 |
+
* Create bucket.
|
220 |
+
*
|
221 |
+
* @param array $args
|
222 |
+
*
|
223 |
+
* @throws GoogleException
|
224 |
+
*/
|
225 |
+
public function create_bucket( Array $args ) {
|
226 |
+
$name = '';
|
227 |
+
if ( ! empty( $args['Bucket'] ) ) {
|
228 |
+
$name = $args['Bucket'];
|
229 |
+
unset( $args['Bucket'] );
|
230 |
+
}
|
231 |
+
|
232 |
+
if ( ! empty( $args['LocationConstraint'] ) ) {
|
233 |
+
$args['location'] = $args['LocationConstraint'];
|
234 |
+
unset( $args['LocationConstraint'] );
|
235 |
+
}
|
236 |
+
|
237 |
+
$this->storage->createBucket( $name, $args );
|
238 |
+
}
|
239 |
+
|
240 |
+
/**
|
241 |
+
* Check whether bucket exists.
|
242 |
+
*
|
243 |
+
* @param string $bucket
|
244 |
+
*
|
245 |
+
* @return bool
|
246 |
+
*/
|
247 |
+
public function does_bucket_exist( $bucket ) {
|
248 |
+
return $this->storage->bucket( $bucket )->exists();
|
249 |
+
}
|
250 |
+
|
251 |
+
/**
|
252 |
+
* Returns region for bucket.
|
253 |
+
*
|
254 |
+
* @param array $args
|
255 |
+
*
|
256 |
+
* @return string
|
257 |
+
*/
|
258 |
+
public function get_bucket_location( Array $args ) {
|
259 |
+
$info = $this->storage->bucket( $args['Bucket'] )->info();
|
260 |
+
$region = empty( $info['location'] ) ? '' : $info['location'];
|
261 |
+
|
262 |
+
return $region;
|
263 |
+
}
|
264 |
+
|
265 |
+
/**
|
266 |
+
* List buckets.
|
267 |
+
*
|
268 |
+
* @param array $args
|
269 |
+
*
|
270 |
+
* @return array
|
271 |
+
* @throws GoogleException
|
272 |
+
*/
|
273 |
+
public function list_buckets( Array $args = array() ) {
|
274 |
+
$result = array();
|
275 |
+
|
276 |
+
$buckets = $this->storage->buckets( $args );
|
277 |
+
|
278 |
+
if ( ! empty( $buckets ) ) {
|
279 |
+
/** @var Bucket $bucket */
|
280 |
+
foreach ( $buckets as $bucket ) {
|
281 |
+
$result['Buckets'][] = array(
|
282 |
+
'Name' => $bucket->name(),
|
283 |
+
);
|
284 |
+
}
|
285 |
+
}
|
286 |
+
|
287 |
+
return $result;
|
288 |
+
}
|
289 |
+
|
290 |
+
/**
|
291 |
+
* Check whether key exists in bucket.
|
292 |
+
*
|
293 |
+
* @param string $bucket
|
294 |
+
* @param string $key
|
295 |
+
* @param array $options
|
296 |
+
*
|
297 |
+
* @return bool
|
298 |
+
*/
|
299 |
+
public function does_object_exist( $bucket, $key, Array $options = array() ) {
|
300 |
+
return $this->storage->bucket( $bucket )->object( $key )->exists( $options );
|
301 |
+
}
|
302 |
+
|
303 |
+
/**
|
304 |
+
* Get default "canned" ACL string.
|
305 |
+
*
|
306 |
+
* @return string
|
307 |
+
*/
|
308 |
+
public function get_default_acl() {
|
309 |
+
return static::DEFAULT_ACL;
|
310 |
+
}
|
311 |
+
|
312 |
+
/**
|
313 |
+
* Get private "canned" ACL string.
|
314 |
+
*
|
315 |
+
* @return string
|
316 |
+
*/
|
317 |
+
public function get_private_acl() {
|
318 |
+
return static::PRIVATE_ACL;
|
319 |
+
}
|
320 |
+
|
321 |
+
/**
|
322 |
+
* Download object, destination specified in args.
|
323 |
+
*
|
324 |
+
* @see https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-s3-2006-03-01.html#getobject
|
325 |
+
* @see https://googleapis.github.io/google-cloud-php/#/docs/google-cloud/v0.90.0/storage/storageobject?method=downloadToFile
|
326 |
+
*
|
327 |
+
* @param array $args
|
328 |
+
*/
|
329 |
+
public function get_object( Array $args ) {
|
330 |
+
$this->storage->bucket( $args['Bucket'] )->object( $args['Key'] )->downloadToFile( $args['SaveAs'] );
|
331 |
+
}
|
332 |
+
|
333 |
+
/**
|
334 |
+
* Get object's URL.
|
335 |
+
*
|
336 |
+
* @param string $bucket
|
337 |
+
* @param string $key
|
338 |
+
* @param int $expires
|
339 |
+
* @param array $args
|
340 |
+
*
|
341 |
+
* @return string
|
342 |
+
*/
|
343 |
+
public function get_object_url( $bucket, $key, $expires, Array $args = array() ) {
|
344 |
+
if ( empty( $expires ) || ! is_int( $expires ) || $expires < 0 ) {
|
345 |
+
$info = $this->storage->bucket( $bucket )->object( $key )->info();
|
346 |
+
$link = empty( $info['selfLink'] ) ? '' : $info['selfLink'];
|
347 |
+
|
348 |
+
return $link;
|
349 |
+
} else {
|
350 |
+
$options = array();
|
351 |
+
|
352 |
+
if ( ! empty( $args['BaseURL'] ) ) {
|
353 |
+
$options['cname'] = $args['BaseURL'];
|
354 |
+
}
|
355 |
+
|
356 |
+
return $this->storage->bucket( $bucket )->object( $key )->signedUrl( time() + $expires, $options );
|
357 |
+
}
|
358 |
+
}
|
359 |
+
|
360 |
+
/**
|
361 |
+
* List objects.
|
362 |
+
*
|
363 |
+
* @param array $args
|
364 |
+
*
|
365 |
+
* @return array
|
366 |
+
*/
|
367 |
+
public function list_objects( Array $args = array() ) {
|
368 |
+
$result = array();
|
369 |
+
|
370 |
+
$objects = $this->storage->bucket( $args['Bucket'] )->objects( $args['Prefix'] );
|
371 |
+
|
372 |
+
if ( ! empty( $objects ) ) {
|
373 |
+
/** @var StorageObject $object */
|
374 |
+
foreach ( $objects as $object ) {
|
375 |
+
$info = $object->info();
|
376 |
+
$result['Contents'][] = array(
|
377 |
+
'Key' => $object->name(),
|
378 |
+
'Size' => $info['size'],
|
379 |
+
);
|
380 |
+
}
|
381 |
+
}
|
382 |
+
|
383 |
+
return $result;
|
384 |
+
}
|
385 |
+
|
386 |
+
/**
|
387 |
+
* Update the ACL for an object.
|
388 |
+
*
|
389 |
+
* @param array $args
|
390 |
+
*/
|
391 |
+
public function update_object_acl( Array $args ) {
|
392 |
+
$this->storage->bucket( $args['Bucket'] )->object( $args['Key'] )->update( array( 'predefinedAcl' => $args['ACL'] ) );
|
393 |
+
}
|
394 |
+
|
395 |
+
/**
|
396 |
+
* Upload file to bucket.
|
397 |
+
*
|
398 |
+
* @param array $args
|
399 |
+
*
|
400 |
+
* @throws \Exception
|
401 |
+
*/
|
402 |
+
public function upload_object( Array $args ) {
|
403 |
+
if ( ! empty( $args['SourceFile'] ) ) {
|
404 |
+
$file = fopen( $args['SourceFile'], 'r' );
|
405 |
+
} elseif ( ! empty( $args['Body'] ) ) {
|
406 |
+
$file = $args['Body'];
|
407 |
+
} else {
|
408 |
+
throw new \Exception( __METHOD__ . ' called without either "SourceFile" or "Body" arg.' );
|
409 |
+
}
|
410 |
+
|
411 |
+
$options = array(
|
412 |
+
'name' => $args['Key'],
|
413 |
+
'predefinedAcl' => $args['ACL'],
|
414 |
+
);
|
415 |
+
|
416 |
+
if ( ! empty( $args['ContentType'] ) ) {
|
417 |
+
$options['metadata']['contentType'] = $args['ContentType'];
|
418 |
+
}
|
419 |
+
|
420 |
+
if ( ! empty( $args['CacheControl'] ) ) {
|
421 |
+
$options['metadata']['cacheControl'] = $args['CacheControl'];
|
422 |
+
}
|
423 |
+
|
424 |
+
// TODO: Potentially strip out known keys from $args and then put rest in $options['metadata']['metadata'].
|
425 |
+
|
426 |
+
$object = $this->storage->bucket( $args['Bucket'] )->upload( $file, $options );
|
427 |
+
}
|
428 |
+
|
429 |
+
/**
|
430 |
+
* Delete object from bucket.
|
431 |
+
*
|
432 |
+
* @param array $args
|
433 |
+
*/
|
434 |
+
public function delete_object( Array $args ) {
|
435 |
+
$this->storage->bucket( $args['Bucket'] )->object( $args['Key'] )->delete();
|
436 |
+
}
|
437 |
+
|
438 |
+
/**
|
439 |
+
* Delete multiple objects from bucket.
|
440 |
+
*
|
441 |
+
* @param array $args
|
442 |
+
*/
|
443 |
+
public function delete_objects( Array $args ) {
|
444 |
+
if ( isset( $args['Delete']['Objects'] ) ) {
|
445 |
+
$keys = $args['Delete']['Objects'];
|
446 |
+
} elseif ( isset( $args['Objects'] ) ) {
|
447 |
+
$keys = $args['Objects'];
|
448 |
+
}
|
449 |
+
|
450 |
+
if ( ! empty( $keys ) ) {
|
451 |
+
$bucket = $this->storage->bucket( $args['Bucket'] );
|
452 |
+
|
453 |
+
// Unfortunately the GCP PHP SDK does not have batch operations.
|
454 |
+
foreach ( $keys as $key ) {
|
455 |
+
$bucket->object( $key['Key'] )->delete();
|
456 |
+
}
|
457 |
+
}
|
458 |
+
}
|
459 |
+
|
460 |
+
/**
|
461 |
+
* Returns arrays of found keys for given bucket and prefix locations, retaining given array's integer based index.
|
462 |
+
*
|
463 |
+
* @param array $locations Array with attachment ID as key and Bucket and Prefix in an associative array as values.
|
464 |
+
*
|
465 |
+
* @return array
|
466 |
+
*/
|
467 |
+
public function list_keys( Array $locations ) {
|
468 |
+
$keys = array();
|
469 |
+
|
470 |
+
$results = array_map( function ( $location ) {
|
471 |
+
return $this->storage->bucket( $location['Bucket'] )->objects( array( 'prefix' => $location['Prefix'], 'fields' => 'items/name' ) );
|
472 |
+
}, $locations );
|
473 |
+
|
474 |
+
foreach ( $results as $attachment_id => $objects ) {
|
475 |
+
/** @var StorageObject $object */
|
476 |
+
foreach ( $objects as $object ) {
|
477 |
+
$keys[ $attachment_id ][] = $object->name();
|
478 |
+
}
|
479 |
+
}
|
480 |
+
|
481 |
+
return $keys;
|
482 |
+
}
|
483 |
+
|
484 |
+
/**
|
485 |
+
* Copies objects into current bucket from another bucket hosted with provider.
|
486 |
+
*
|
487 |
+
* @param array $items
|
488 |
+
*
|
489 |
+
* @return array Failures with elements Key and Message
|
490 |
+
*/
|
491 |
+
public function copy_objects( Array $items ) {
|
492 |
+
$failures = array();
|
493 |
+
|
494 |
+
// Unfortunately the GCP PHP SDK does not have batch operations.
|
495 |
+
foreach ( $items as $item ) {
|
496 |
+
list( $bucket, $key ) = explode( '/', urldecode( $item['CopySource'] ), 2 );
|
497 |
+
try {
|
498 |
+
$this->storage->bucket( $bucket )->object( $key )->copy(
|
499 |
+
$item['Bucket'],
|
500 |
+
array(
|
501 |
+
'name' => $item['Key'],
|
502 |
+
'predefinedAcl' => $item['ACL'],
|
503 |
+
)
|
504 |
+
);
|
505 |
+
} catch ( \Exception $e ) {
|
506 |
+
$failures[] = array(
|
507 |
+
'Key' => $item['Key'],
|
508 |
+
'Message' => $e->getMessage(),
|
509 |
+
);
|
510 |
+
}
|
511 |
+
}
|
512 |
+
|
513 |
+
return $failures;
|
514 |
+
}
|
515 |
+
|
516 |
+
/**
|
517 |
+
* Generate the stream wrapper protocol
|
518 |
+
*
|
519 |
+
* @param string $region
|
520 |
+
*
|
521 |
+
* @return string
|
522 |
+
*/
|
523 |
+
protected function get_stream_wrapper_protocol( $region ) {
|
524 |
+
$protocol = 'gs';
|
525 |
+
|
526 |
+
// TODO: Determine whether same protocol for all regions is ok.
|
527 |
+
// Assumption not as each may have client instance, hence keeping this for time being.
|
528 |
+
$protocol .= str_replace( '-', '', $region );
|
529 |
+
|
530 |
+
return $protocol;
|
531 |
+
}
|
532 |
+
|
533 |
+
/**
|
534 |
+
* Register a stream wrapper for specific region.
|
535 |
+
*
|
536 |
+
* @param string $region
|
537 |
+
*
|
538 |
+
* @return bool
|
539 |
+
*/
|
540 |
+
public function register_stream_wrapper( $region ) {
|
541 |
+
$protocol = $this->get_stream_wrapper_protocol( $region );
|
542 |
+
|
543 |
+
// Register the region specific stream wrapper to be used by plugins
|
544 |
+
GCP_GCS_Stream_Wrapper::register( $this->storage, $protocol );
|
545 |
+
|
546 |
+
return true;
|
547 |
+
}
|
548 |
+
|
549 |
+
/**
|
550 |
+
* Check that a bucket and key can be written to.
|
551 |
+
*
|
552 |
+
* @param string $bucket
|
553 |
+
* @param string $key
|
554 |
+
* @param string $file_contents
|
555 |
+
*
|
556 |
+
* @return bool|string Error message on unexpected exception
|
557 |
+
*/
|
558 |
+
public function can_write( $bucket, $key, $file_contents ) {
|
559 |
+
try {
|
560 |
+
// Attempt to create the test file.
|
561 |
+
$this->upload_object( array(
|
562 |
+
'Bucket' => $bucket,
|
563 |
+
'Key' => $key,
|
564 |
+
'Body' => $file_contents,
|
565 |
+
'ACL' => self::DEFAULT_ACL,
|
566 |
+
) );
|
567 |
+
|
568 |
+
// delete it straight away if created
|
569 |
+
$this->delete_object( array(
|
570 |
+
'Bucket' => $bucket,
|
571 |
+
'Key' => $key,
|
572 |
+
) );
|
573 |
+
|
574 |
+
return true;
|
575 |
+
} catch ( \Exception $e ) {
|
576 |
+
// If we encounter an error that isn't from Google, throw that error.
|
577 |
+
if ( ! $e instanceof GoogleException ) {
|
578 |
+
return $e->getMessage();
|
579 |
+
}
|
580 |
+
}
|
581 |
+
}
|
582 |
+
|
583 |
+
/**
|
584 |
+
* Get the region specific prefix for raw URL
|
585 |
+
*
|
586 |
+
* @param string $region
|
587 |
+
* @param null|int $expires
|
588 |
+
*
|
589 |
+
* @return string
|
590 |
+
*/
|
591 |
+
protected function url_prefix( $region = '', $expires = null ) {
|
592 |
+
return '';
|
593 |
+
}
|
594 |
+
|
595 |
+
/**
|
596 |
+
* Get the url domain for the files
|
597 |
+
*
|
598 |
+
* @param string $domain Likely prefixed with region
|
599 |
+
* @param string $bucket
|
600 |
+
* @param string $region
|
601 |
+
* @param int $expires
|
602 |
+
* @param array $args Allows you to specify custom URL settings
|
603 |
+
* @param bool $preview When generating the URL preview sanitize certain output
|
604 |
+
*
|
605 |
+
* @return string
|
606 |
+
*/
|
607 |
+
protected function url_domain( $domain, $bucket, $region = '', $expires = null, $args = array(), $preview = false ) {
|
608 |
+
if ( 'cloudfront' === $args['domain'] && $args['cloudfront'] ) {
|
609 |
+
$cloudfront = $args['cloudfront'];
|
610 |
+
if ( $preview ) {
|
611 |
+
$cloudfront = AS3CF_Utils::sanitize_custom_domain( $cloudfront );
|
612 |
+
}
|
613 |
+
|
614 |
+
$domain = $cloudfront;
|
615 |
+
} else {
|
616 |
+
$domain = $domain . '/' . $bucket;
|
617 |
+
}
|
618 |
+
|
619 |
+
return $domain;
|
620 |
+
}
|
621 |
+
|
622 |
+
/**
|
623 |
+
* Get the suffix param to append to the link to the bucket on the provider's console.
|
624 |
+
*
|
625 |
+
* @param string $bucket
|
626 |
+
* @param string $prefix
|
627 |
+
*
|
628 |
+
* @return string
|
629 |
+
*/
|
630 |
+
protected function get_console_url_suffix_param( $bucket = '', $prefix = '' ) {
|
631 |
+
if ( ! empty( $this->get_project_id() ) ) {
|
632 |
+
return '?project=' . $this->get_project_id();
|
633 |
+
}
|
634 |
+
|
635 |
+
return '';
|
636 |
+
}
|
637 |
+
|
638 |
+
/**
|
639 |
+
* Get the Project ID for the current client.
|
640 |
+
*
|
641 |
+
* @return string|null
|
642 |
+
*/
|
643 |
+
private function get_project_id() {
|
644 |
+
static $project_id = null;
|
645 |
+
|
646 |
+
// If not already grabbed, get project id from key file data but only if client properly instantiated.
|
647 |
+
if ( null === $project_id && ! empty( $this->storage ) && $this->use_key_file() ) {
|
648 |
+
$key_file_path = $this->get_key_file_path();
|
649 |
+
|
650 |
+
if ( ! empty( $key_file_path ) && file_exists( $key_file_path ) ) {
|
651 |
+
$key_file_contents = json_decode( file_get_contents( $key_file_path ), true );
|
652 |
+
|
653 |
+
if ( ! empty( $key_file_contents['project_id'] ) ) {
|
654 |
+
$project_id = $key_file_contents['project_id'];
|
655 |
+
|
656 |
+
return $project_id;
|
657 |
+
}
|
658 |
+
}
|
659 |
+
|
660 |
+
$key_file_contents = $this->get_key_file();
|
661 |
+
|
662 |
+
if ( is_array( $key_file_contents ) && ! empty( $key_file_contents['project_id'] ) ) {
|
663 |
+
$project_id = $key_file_contents['project_id'];
|
664 |
+
|
665 |
+
return $project_id;
|
666 |
+
}
|
667 |
+
}
|
668 |
+
|
669 |
+
return $project_id;
|
670 |
+
}
|
671 |
+
}
|
classes/providers/provider.php
CHANGED
@@ -78,6 +78,18 @@ abstract class Provider {
|
|
78 |
protected static $secret_access_key_setting_name = 'secret-access-key';
|
79 |
|
80 |
/**
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
81 |
* @var array
|
82 |
*/
|
83 |
protected static $access_key_id_constants = array();
|
@@ -94,6 +106,13 @@ abstract class Provider {
|
|
94 |
*/
|
95 |
protected static $use_server_roles_constants = array();
|
96 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
97 |
/**
|
98 |
* @var array
|
99 |
*/
|
@@ -122,7 +141,7 @@ abstract class Provider {
|
|
122 |
/**
|
123 |
* @var string
|
124 |
*/
|
125 |
-
protected $
|
126 |
|
127 |
/**
|
128 |
* Provider constructor.
|
@@ -182,6 +201,15 @@ abstract class Provider {
|
|
182 |
return static::$provider_service_quick_start_slug;
|
183 |
}
|
184 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
185 |
/**
|
186 |
* Whether or not access keys are needed.
|
187 |
*
|
@@ -194,6 +222,10 @@ abstract class Provider {
|
|
194 |
return false;
|
195 |
}
|
196 |
|
|
|
|
|
|
|
|
|
197 |
return ! $this->are_access_keys_set();
|
198 |
}
|
199 |
|
@@ -249,9 +281,50 @@ abstract class Provider {
|
|
249 |
return static::access_key_id_constant() || static::secret_access_key_constant();
|
250 |
}
|
251 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
252 |
/**
|
253 |
* Allows the provider's client factory to use server roles instead of key/secret for credentials.
|
254 |
-
*
|
|
|
255 |
*
|
256 |
* @return bool
|
257 |
*/
|
@@ -266,39 +339,95 @@ abstract class Provider {
|
|
266 |
}
|
267 |
|
268 |
/**
|
269 |
-
* Get the constant used to
|
270 |
*
|
271 |
* @return string|false Constant name if defined, otherwise false
|
272 |
*/
|
273 |
-
public static function
|
274 |
-
return AS3CF_Utils::get_first_defined_constant( static::$
|
275 |
}
|
276 |
|
277 |
/**
|
278 |
-
*
|
279 |
*
|
280 |
-
* @return
|
281 |
*/
|
282 |
-
public static function
|
283 |
-
return
|
284 |
}
|
285 |
|
286 |
/**
|
287 |
-
*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
288 |
*
|
289 |
* @return bool
|
290 |
*/
|
291 |
-
public
|
292 |
-
|
|
|
|
|
|
|
|
|
293 |
}
|
294 |
|
295 |
/**
|
296 |
-
* Get the
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
297 |
*
|
298 |
* @return string|false Constant name if defined, otherwise false
|
299 |
*/
|
300 |
-
public static function
|
301 |
-
return AS3CF_Utils::get_first_defined_constant( static::$
|
302 |
}
|
303 |
|
304 |
/**
|
@@ -365,6 +494,17 @@ abstract class Provider {
|
|
365 |
return $region_name;
|
366 |
}
|
367 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
368 |
/**
|
369 |
* Instantiate a new service client for the provider.
|
370 |
*
|
@@ -378,13 +518,29 @@ abstract class Provider {
|
|
378 |
}
|
379 |
|
380 |
if ( is_null( $this->client ) ) {
|
|
|
381 |
if ( ! static::use_server_roles() ) {
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
388 |
}
|
389 |
|
390 |
// Add credentials and given args to default client args and then let user override.
|
@@ -534,10 +690,12 @@ abstract class Provider {
|
|
534 |
*/
|
535 |
public function get_console_url( $bucket = '', $prefix = '' ) {
|
536 |
if ( '' !== $prefix ) {
|
537 |
-
$prefix = $this->
|
538 |
}
|
539 |
|
540 |
-
|
|
|
|
|
541 |
}
|
542 |
|
543 |
/**
|
@@ -545,8 +703,8 @@ abstract class Provider {
|
|
545 |
*
|
546 |
* @return string
|
547 |
*/
|
548 |
-
public function
|
549 |
-
return apply_filters( 'as3cf_' . static::$provider_key_name . '_' . static::$service_key_name . '_console_url_prefix_param', $this->
|
550 |
}
|
551 |
|
552 |
/**
|
@@ -610,7 +768,7 @@ abstract class Provider {
|
|
610 |
/**
|
611 |
* Check whether bucket exists.
|
612 |
*
|
613 |
-
* @param $bucket
|
614 |
*
|
615 |
* @return bool
|
616 |
*/
|
@@ -637,9 +795,9 @@ abstract class Provider {
|
|
637 |
/**
|
638 |
* Check whether key exists in bucket.
|
639 |
*
|
640 |
-
* @param
|
641 |
-
* @param
|
642 |
-
* @param array
|
643 |
*
|
644 |
* @return bool
|
645 |
*/
|
@@ -671,10 +829,10 @@ abstract class Provider {
|
|
671 |
/**
|
672 |
* Get object's URL.
|
673 |
*
|
674 |
-
* @param
|
675 |
-
* @param
|
676 |
-
* @param
|
677 |
-
* @param array
|
678 |
*
|
679 |
* @return string
|
680 |
*/
|
@@ -787,4 +945,14 @@ abstract class Provider {
|
|
787 |
* @return string
|
788 |
*/
|
789 |
abstract protected function url_domain( $domain, $bucket, $region = '', $expires = null, $args = array(), $preview = false );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
790 |
}
|
78 |
protected static $secret_access_key_setting_name = 'secret-access-key';
|
79 |
|
80 |
/**
|
81 |
+
* @var string
|
82 |
+
*/
|
83 |
+
protected static $key_file_setting_name = 'key-file';
|
84 |
+
|
85 |
+
/**
|
86 |
+
* @var string
|
87 |
+
*/
|
88 |
+
protected static $key_file_path_setting_name = 'key-file-path';
|
89 |
+
|
90 |
+
/**
|
91 |
+
* If left empty, access keys not allowed.
|
92 |
+
*
|
93 |
* @var array
|
94 |
*/
|
95 |
protected static $access_key_id_constants = array();
|
106 |
*/
|
107 |
protected static $use_server_roles_constants = array();
|
108 |
|
109 |
+
/**
|
110 |
+
* If left empty, key file not allowed.
|
111 |
+
*
|
112 |
+
* @var array
|
113 |
+
*/
|
114 |
+
protected static $key_file_path_constants = array();
|
115 |
+
|
116 |
/**
|
117 |
* @var array
|
118 |
*/
|
141 |
/**
|
142 |
* @var string
|
143 |
*/
|
144 |
+
protected $console_url_prefix_param = '';
|
145 |
|
146 |
/**
|
147 |
* Provider constructor.
|
201 |
return static::$provider_service_quick_start_slug;
|
202 |
}
|
203 |
|
204 |
+
/**
|
205 |
+
* Is the provider able to use access keys?
|
206 |
+
*
|
207 |
+
* @return bool
|
208 |
+
*/
|
209 |
+
public static function use_access_keys_allowed() {
|
210 |
+
return ! empty( static::$access_key_id_constants );
|
211 |
+
}
|
212 |
+
|
213 |
/**
|
214 |
* Whether or not access keys are needed.
|
215 |
*
|
222 |
return false;
|
223 |
}
|
224 |
|
225 |
+
if ( static::use_key_file() ) {
|
226 |
+
return false;
|
227 |
+
}
|
228 |
+
|
229 |
return ! $this->are_access_keys_set();
|
230 |
}
|
231 |
|
281 |
return static::access_key_id_constant() || static::secret_access_key_constant();
|
282 |
}
|
283 |
|
284 |
+
/**
|
285 |
+
* Get the constant used to define the access key id.
|
286 |
+
*
|
287 |
+
* @return string|false Constant name if defined, otherwise false
|
288 |
+
*/
|
289 |
+
public static function access_key_id_constant() {
|
290 |
+
return AS3CF_Utils::get_first_defined_constant( static::$access_key_id_constants );
|
291 |
+
}
|
292 |
+
|
293 |
+
/**
|
294 |
+
* Get the constant used to define the secret access key.
|
295 |
+
*
|
296 |
+
* @return string|false Constant name if defined, otherwise false
|
297 |
+
*/
|
298 |
+
public static function secret_access_key_constant() {
|
299 |
+
return AS3CF_Utils::get_first_defined_constant( static::$secret_access_key_constants );
|
300 |
+
}
|
301 |
+
|
302 |
+
/**
|
303 |
+
* Is the provider able to use server roles?
|
304 |
+
*
|
305 |
+
* @return bool
|
306 |
+
*/
|
307 |
+
public static function use_server_roles_allowed() {
|
308 |
+
return ! empty( static::$use_server_roles_constants );
|
309 |
+
}
|
310 |
+
|
311 |
+
/**
|
312 |
+
* If server roles allowed, returns first (preferred) constant that should be defined, otherwise blank.
|
313 |
+
*
|
314 |
+
* @return string
|
315 |
+
*/
|
316 |
+
public static function preferred_use_server_role_constant() {
|
317 |
+
if ( static::use_server_roles_allowed() ) {
|
318 |
+
return static::$use_server_roles_constants[0];
|
319 |
+
} else {
|
320 |
+
return '';
|
321 |
+
}
|
322 |
+
}
|
323 |
+
|
324 |
/**
|
325 |
* Allows the provider's client factory to use server roles instead of key/secret for credentials.
|
326 |
+
*
|
327 |
+
* @see http://docs.aws.amazon.com/aws-sdk-php/guide/latest/credentials.html#instance-profile-credentials
|
328 |
*
|
329 |
* @return bool
|
330 |
*/
|
339 |
}
|
340 |
|
341 |
/**
|
342 |
+
* Get the constant used to enable the use of EC2 IAM roles.
|
343 |
*
|
344 |
* @return string|false Constant name if defined, otherwise false
|
345 |
*/
|
346 |
+
public static function use_server_role_constant() {
|
347 |
+
return AS3CF_Utils::get_first_defined_constant( static::$use_server_roles_constants );
|
348 |
}
|
349 |
|
350 |
/**
|
351 |
+
* Is the provider able to use a key file?
|
352 |
*
|
353 |
+
* @return bool
|
354 |
*/
|
355 |
+
public static function use_key_file_allowed() {
|
356 |
+
return ! empty( static::$key_file_path_constants );
|
357 |
}
|
358 |
|
359 |
/**
|
360 |
+
* If key file allowed, returns first (preferred) constant that should be defined, otherwise blank.
|
361 |
+
*
|
362 |
+
* @return string
|
363 |
+
*/
|
364 |
+
public static function preferred_key_file_path_constant() {
|
365 |
+
if ( static::use_key_file_allowed() ) {
|
366 |
+
return static::$key_file_path_constants[0];
|
367 |
+
} else {
|
368 |
+
return '';
|
369 |
+
}
|
370 |
+
}
|
371 |
+
|
372 |
+
/**
|
373 |
+
* Check if either key file path or key file set.
|
374 |
*
|
375 |
* @return bool
|
376 |
*/
|
377 |
+
public function use_key_file() {
|
378 |
+
if ( ! static::use_key_file_allowed() ) {
|
379 |
+
return false;
|
380 |
+
}
|
381 |
+
|
382 |
+
return $this->get_key_file_path() || $this->get_key_file();
|
383 |
}
|
384 |
|
385 |
/**
|
386 |
+
* Get the key file contents from settings.
|
387 |
+
*
|
388 |
+
* @return array|bool
|
389 |
+
*/
|
390 |
+
public function get_key_file() {
|
391 |
+
$key_file = $this->as3cf->get_core_setting( static::$key_file_setting_name, false );
|
392 |
+
|
393 |
+
return $key_file;
|
394 |
+
}
|
395 |
+
|
396 |
+
/**
|
397 |
+
* Get the key file path from a constant or the settings.
|
398 |
+
*
|
399 |
+
* Falls back to settings if constant is not defined.
|
400 |
+
*
|
401 |
+
* @return string|bool
|
402 |
+
*/
|
403 |
+
public function get_key_file_path() {
|
404 |
+
if ( static::is_key_file_path_constant_defined() ) {
|
405 |
+
$constant = static::key_file_path_constant();
|
406 |
+
|
407 |
+
return $constant ? constant( $constant ) : false;
|
408 |
+
}
|
409 |
+
|
410 |
+
return $this->as3cf->get_core_setting( static::$key_file_path_setting_name, false );
|
411 |
+
}
|
412 |
+
|
413 |
+
/**
|
414 |
+
* Check if key file path constant is defined, for speed, does not check validity of file path.
|
415 |
+
*
|
416 |
+
* @return bool
|
417 |
+
*/
|
418 |
+
public static function is_key_file_path_constant_defined() {
|
419 |
+
$constant = static::key_file_path_constant();
|
420 |
+
|
421 |
+
return $constant && constant( $constant );
|
422 |
+
}
|
423 |
+
|
424 |
+
/**
|
425 |
+
* Get the constant used to define the key file path.
|
426 |
*
|
427 |
* @return string|false Constant name if defined, otherwise false
|
428 |
*/
|
429 |
+
public static function key_file_path_constant() {
|
430 |
+
return AS3CF_Utils::get_first_defined_constant( static::$key_file_path_constants );
|
431 |
}
|
432 |
|
433 |
/**
|
494 |
return $region_name;
|
495 |
}
|
496 |
|
497 |
+
/**
|
498 |
+
* Is given region key valid for provider?
|
499 |
+
*
|
500 |
+
* @param string $region
|
501 |
+
*
|
502 |
+
* @return bool
|
503 |
+
*/
|
504 |
+
public function is_region_valid( $region ) {
|
505 |
+
return in_array( trim( $region ), array_keys( $this->get_regions() ) );
|
506 |
+
}
|
507 |
+
|
508 |
/**
|
509 |
* Instantiate a new service client for the provider.
|
510 |
*
|
518 |
}
|
519 |
|
520 |
if ( is_null( $this->client ) ) {
|
521 |
+
// There's no extra client authentication config required when using server roles.
|
522 |
if ( ! static::use_server_roles() ) {
|
523 |
+
// Some providers can supply Key File contents or Key File Path.
|
524 |
+
if ( static::use_key_file() ) {
|
525 |
+
// Key File contents take precedence over Key File Path.
|
526 |
+
if ( static::get_key_file() ) {
|
527 |
+
$args = array_merge( array(
|
528 |
+
'keyFile' => static::get_key_file(),
|
529 |
+
), $args );
|
530 |
+
} else {
|
531 |
+
$args = array_merge( array(
|
532 |
+
'keyFilePath' => static::get_key_file_path(),
|
533 |
+
), $args );
|
534 |
+
}
|
535 |
+
} else {
|
536 |
+
// Fall back is Access Keys.
|
537 |
+
$args = array_merge( array(
|
538 |
+
'credentials' => array(
|
539 |
+
'key' => $this->get_access_key_id(),
|
540 |
+
'secret' => $this->get_secret_access_key(),
|
541 |
+
),
|
542 |
+
), $args );
|
543 |
+
}
|
544 |
}
|
545 |
|
546 |
// Add credentials and given args to default client args and then let user override.
|
690 |
*/
|
691 |
public function get_console_url( $bucket = '', $prefix = '' ) {
|
692 |
if ( '' !== $prefix ) {
|
693 |
+
$prefix = $this->get_console_url_prefix_param() . apply_filters( 'as3cf_' . static::$provider_key_name . '_' . static::$service_key_name . '_console_url_prefix_value', $prefix );
|
694 |
}
|
695 |
|
696 |
+
$suffix = apply_filters( 'as3cf_' . static::$provider_key_name . '_' . static::$service_key_name . '_console_url_suffix_param', $this->get_console_url_suffix_param( $bucket, $prefix ) );
|
697 |
+
|
698 |
+
return apply_filters( 'as3cf_' . static::$provider_key_name . '_' . static::$service_key_name . '_console_url', $this->console_url ) . $bucket . $prefix . $suffix;
|
699 |
}
|
700 |
|
701 |
/**
|
703 |
*
|
704 |
* @return string
|
705 |
*/
|
706 |
+
public function get_console_url_prefix_param() {
|
707 |
+
return apply_filters( 'as3cf_' . static::$provider_key_name . '_' . static::$service_key_name . '_console_url_prefix_param', $this->console_url_prefix_param );
|
708 |
}
|
709 |
|
710 |
/**
|
768 |
/**
|
769 |
* Check whether bucket exists.
|
770 |
*
|
771 |
+
* @param string $bucket
|
772 |
*
|
773 |
* @return bool
|
774 |
*/
|
795 |
/**
|
796 |
* Check whether key exists in bucket.
|
797 |
*
|
798 |
+
* @param string $bucket
|
799 |
+
* @param string $key
|
800 |
+
* @param array $options
|
801 |
*
|
802 |
* @return bool
|
803 |
*/
|
829 |
/**
|
830 |
* Get object's URL.
|
831 |
*
|
832 |
+
* @param string $bucket
|
833 |
+
* @param string $key
|
834 |
+
* @param int $expires
|
835 |
+
* @param array $args
|
836 |
*
|
837 |
* @return string
|
838 |
*/
|
945 |
* @return string
|
946 |
*/
|
947 |
abstract protected function url_domain( $domain, $bucket, $region = '', $expires = null, $args = array(), $preview = false );
|
948 |
+
|
949 |
+
/**
|
950 |
+
* Get the suffix param to append to the link to the bucket on the provider's console.
|
951 |
+
*
|
952 |
+
* @param string $bucket
|
953 |
+
* @param string $prefix
|
954 |
+
*
|
955 |
+
* @return string
|
956 |
+
*/
|
957 |
+
abstract protected function get_console_url_suffix_param( $bucket = '', $prefix = '' );
|
958 |
}
|
classes/providers/streams/gcp-gcs-stream-wrapper.php
ADDED
@@ -0,0 +1,70 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace DeliciousBrains\WP_Offload_Media\Providers\Streams;
|
4 |
+
|
5 |
+
use DeliciousBrains\WP_Offload_Media\Gcp\Google\Cloud\Storage\StorageClient;
|
6 |
+
use DeliciousBrains\WP_Offload_Media\Gcp\Google\Cloud\Storage\StreamWrapper;
|
7 |
+
use DeliciousBrains\WP_Offload_Media\Providers\GCP_Provider;
|
8 |
+
|
9 |
+
class GCP_GCS_Stream_Wrapper extends StreamWrapper {
|
10 |
+
|
11 |
+
public static $wrapper;
|
12 |
+
|
13 |
+
/**
|
14 |
+
* Register the 'gs://' stream wrapper
|
15 |
+
*
|
16 |
+
* @param StorageClient $client Client to use with the stream wrapper
|
17 |
+
* @param string $protocol Protocol to register as.
|
18 |
+
*/
|
19 |
+
public static function register( StorageClient $client, $protocol = 'gs' ) {
|
20 |
+
// Keep a shadow copy of the protocol for use with context options.
|
21 |
+
static::$wrapper = $protocol;
|
22 |
+
|
23 |
+
parent::register( $client, $protocol );
|
24 |
+
}
|
25 |
+
|
26 |
+
/**
|
27 |
+
* Overrides so we don't check for stat on directories
|
28 |
+
*
|
29 |
+
* @param string $path
|
30 |
+
* @param int $flags
|
31 |
+
*
|
32 |
+
* @return array
|
33 |
+
*/
|
34 |
+
public function url_stat( $path, $flags ) {
|
35 |
+
$extension = pathinfo( $path, PATHINFO_EXTENSION );
|
36 |
+
// If the path is a directory then return it as always existing.
|
37 |
+
if ( ! $extension ) {
|
38 |
+
return array(
|
39 |
+
0 => 0,
|
40 |
+
'dev' => 0,
|
41 |
+
1 => 0,
|
42 |
+
'ino' => 0,
|
43 |
+
2 => 16895,
|
44 |
+
'mode' => 16895,
|
45 |
+
3 => 0,
|
46 |
+
'nlink' => 0,
|
47 |
+
4 => 0,
|
48 |
+
'uid' => 0,
|
49 |
+
5 => 0,
|
50 |
+
'gid' => 0,
|
51 |
+
6 => -1,
|
52 |
+
'rdev' => -1,
|
53 |
+
7 => 0,
|
54 |
+
'size' => 0,
|
55 |
+
8 => 0,
|
56 |
+
'atime' => 0,
|
57 |
+
9 => 0,
|
58 |
+
'mtime' => 0,
|
59 |
+
10 => 0,
|
60 |
+
'ctime' => 0,
|
61 |
+
11 => -1,
|
62 |
+
'blksize' => -1,
|
63 |
+
12 => -1,
|
64 |
+
'blocks' => -1,
|
65 |
+
);
|
66 |
+
}
|
67 |
+
|
68 |
+
return parent::url_stat( $path, $flags );
|
69 |
+
}
|
70 |
+
}
|
languages/amazon-s3-and-cloudfront-en.pot
CHANGED
@@ -8,7 +8,7 @@ msgid ""
|
|
8 |
msgstr ""
|
9 |
"Project-Id-Version: amazon-s3-and-cloudfront\n"
|
10 |
"Report-Msgid-Bugs-To: nom@deliciousbrains.com\n"
|
11 |
-
"POT-Creation-Date:
|
12 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
13 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
14 |
"Language-Team: LANGUAGE <LL@li.org>\n"
|
@@ -17,173 +17,177 @@ msgstr ""
|
|
17 |
"Content-Type: text/plain; charset=UTF-8\n"
|
18 |
"Content-Transfer-Encoding: 8bit\n"
|
19 |
|
20 |
-
#: classes/amazon-s3-and-cloudfront.php:135
|
21 |
#: classes/amazon-s3-and-cloudfront.php:136
|
|
|
22 |
msgid "Offload Media"
|
23 |
msgstr ""
|
24 |
|
25 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
26 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
27 |
msgid "Unknown"
|
28 |
msgstr ""
|
29 |
|
30 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
31 |
#: view/bucket-setting.php:17
|
32 |
-
#: view/provider-select.php:
|
33 |
msgid "defined in wp-config.php"
|
34 |
msgstr ""
|
35 |
|
36 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
37 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
38 |
#, php-format
|
39 |
msgid "File %s does not exist"
|
40 |
msgstr ""
|
41 |
|
42 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
43 |
#, php-format
|
44 |
msgid "Mime type %s is not allowed"
|
45 |
msgstr ""
|
46 |
|
47 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
48 |
msgid "Already offloaded to a different provider"
|
49 |
msgstr ""
|
50 |
|
51 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
52 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
53 |
#, php-format
|
54 |
msgid "Error offloading %s to provider: %s"
|
55 |
msgstr ""
|
56 |
|
57 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
58 |
msgid "This action can only be performed through an admin screen."
|
59 |
msgstr ""
|
60 |
|
61 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
62 |
msgid "Cheatin’ eh?"
|
63 |
msgstr ""
|
64 |
|
65 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
66 |
msgid "You do not have sufficient permissions to access this page."
|
67 |
msgstr ""
|
68 |
|
69 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
70 |
msgid "Error Getting Bucket Region"
|
71 |
msgstr ""
|
72 |
|
73 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
74 |
#, php-format
|
75 |
msgid "There was an error attempting to get the region of the bucket %s: %s"
|
76 |
msgstr ""
|
77 |
|
78 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
79 |
msgid ""
|
80 |
-
"This is a test file to check if the user has write permission to
|
81 |
-
"me if found."
|
82 |
msgstr ""
|
83 |
|
84 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
85 |
#, php-format
|
86 |
msgid ""
|
87 |
"There was an error attempting to check the permissions of the bucket %s: %s"
|
88 |
msgstr ""
|
89 |
|
90 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
91 |
msgid "Error creating bucket"
|
92 |
msgstr ""
|
93 |
|
94 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
95 |
msgid "Bucket name too short."
|
96 |
msgstr ""
|
97 |
|
98 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
99 |
msgid "Bucket name too long."
|
100 |
msgstr ""
|
101 |
|
102 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
103 |
msgid ""
|
104 |
"Invalid character. Bucket names can contain lowercase letters, numbers, "
|
105 |
"periods and hyphens."
|
106 |
msgstr ""
|
107 |
|
108 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
109 |
msgid "Error saving bucket"
|
110 |
msgstr ""
|
111 |
|
112 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
113 |
msgid "Error fetching buckets"
|
114 |
msgstr ""
|
115 |
|
116 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
117 |
msgid "Error getting URL preview: "
|
118 |
msgstr ""
|
119 |
|
120 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
121 |
msgid "The changes you made will be lost if you navigate away from this page"
|
122 |
msgstr ""
|
123 |
|
124 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
125 |
msgid "Getting diagnostic info..."
|
126 |
msgstr ""
|
127 |
|
128 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
129 |
msgid "Error getting diagnostic info: "
|
130 |
msgstr ""
|
131 |
|
132 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
133 |
msgctxt "placeholder for hidden access key, 39 char max"
|
134 |
msgid "-- not shown --"
|
135 |
msgstr ""
|
136 |
|
137 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
138 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
139 |
msgid "Settings saved."
|
140 |
msgstr ""
|
141 |
|
142 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
143 |
msgid "Cheatin' eh?"
|
144 |
msgstr ""
|
145 |
|
146 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
147 |
msgid "No bucket name provided."
|
148 |
msgstr ""
|
149 |
|
150 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
151 |
-
msgid "
|
152 |
msgstr ""
|
153 |
|
154 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
155 |
msgid "No region provided."
|
156 |
msgstr ""
|
157 |
|
158 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
159 |
-
#: view/provider-select.php:
|
160 |
msgctxt "placeholder for hidden secret access key, 39 char max"
|
161 |
msgid "-- not shown --"
|
162 |
msgstr ""
|
163 |
|
164 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
|
|
|
|
|
|
|
|
165 |
msgctxt "Show the media library tab"
|
166 |
msgid "Media Library"
|
167 |
msgstr ""
|
168 |
|
169 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
170 |
msgctxt "Show the addons tab"
|
171 |
msgid "Addons"
|
172 |
msgstr ""
|
173 |
|
174 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
175 |
msgctxt "Show the support tab"
|
176 |
msgid "Support"
|
177 |
msgstr ""
|
178 |
|
179 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
180 |
#, php-format
|
181 |
msgid ""
|
182 |
"<strong>WP Offload Media</strong> — The file %s has been given %s "
|
183 |
"permissions in the bucket."
|
184 |
msgstr ""
|
185 |
|
186 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
187 |
msgid ""
|
188 |
"<strong>WP Offload Media Requirement Missing</strong> — Looks like you "
|
189 |
"don't have an image manipulation library installed on this server and "
|
@@ -191,67 +195,67 @@ msgid ""
|
|
191 |
"Please setup GD or ImageMagick."
|
192 |
msgstr ""
|
193 |
|
194 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
195 |
#, php-format
|
196 |
msgid ""
|
197 |
"<a href=\"%s\">Define your access keys</a> to enable write access to the "
|
198 |
"bucket"
|
199 |
msgstr ""
|
200 |
|
201 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
202 |
msgid "Quick Start Guide"
|
203 |
msgstr ""
|
204 |
|
205 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
206 |
#, php-format
|
207 |
msgid ""
|
208 |
"Looks like we don't have write access to this bucket. It's likely that the "
|
209 |
-
"user you've provided
|
210 |
"permissions. Please see our %s for instructions on setting up permissions "
|
211 |
"correctly."
|
212 |
msgstr ""
|
213 |
|
214 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
215 |
#, php-format
|
216 |
msgid ""
|
217 |
"Looks like we don't have access to the buckets. It's likely that the user "
|
218 |
-
"you've provided
|
219 |
"Please see our %s for instructions on setting up permissions correctly."
|
220 |
msgstr ""
|
221 |
|
222 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
223 |
msgid "WP Offload Media Activation"
|
224 |
msgstr ""
|
225 |
|
226 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
227 |
msgid ""
|
228 |
"WP Offload Media Lite and WP Offload Media cannot both be active. We've "
|
229 |
"automatically deactivated WP Offload Media Lite."
|
230 |
msgstr ""
|
231 |
|
232 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
233 |
msgid "WP Offload Media Lite Activation"
|
234 |
msgstr ""
|
235 |
|
236 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
237 |
msgid ""
|
238 |
"WP Offload Media Lite and WP Offload Media cannot both be active. We've "
|
239 |
"automatically deactivated WP Offload Media."
|
240 |
msgstr ""
|
241 |
|
242 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
243 |
msgid "More info »"
|
244 |
msgstr ""
|
245 |
|
246 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
247 |
msgid "this doc"
|
248 |
msgstr ""
|
249 |
|
250 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
251 |
msgid "WP Offload Media Feature Removed"
|
252 |
msgstr ""
|
253 |
|
254 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
255 |
#, php-format
|
256 |
msgid ""
|
257 |
"You had the \"Always non-SSL\" option selected in your settings, but we've "
|
@@ -262,59 +266,59 @@ msgid ""
|
|
262 |
"to the old behavior."
|
263 |
msgstr ""
|
264 |
|
265 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
266 |
msgid "Offload"
|
267 |
msgstr ""
|
268 |
|
269 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
270 |
msgctxt "Storage provider key name"
|
271 |
msgid "Storage Provider"
|
272 |
msgstr ""
|
273 |
|
274 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
275 |
msgctxt "Storage provider name"
|
276 |
msgid "Storage Provider"
|
277 |
msgstr ""
|
278 |
|
279 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
280 |
msgctxt "Bucket name"
|
281 |
msgid "Bucket"
|
282 |
msgstr ""
|
283 |
|
284 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
285 |
msgctxt "Path to file in bucket"
|
286 |
msgid "Path"
|
287 |
msgstr ""
|
288 |
|
289 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
290 |
msgctxt "Location of bucket"
|
291 |
msgid "Region"
|
292 |
msgstr ""
|
293 |
|
294 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
295 |
msgctxt "Access control list of the file in bucket"
|
296 |
msgid "Access"
|
297 |
msgstr ""
|
298 |
|
299 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
300 |
msgid "URL"
|
301 |
msgstr ""
|
302 |
|
303 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
304 |
msgid "Assets Pull"
|
305 |
msgstr ""
|
306 |
|
307 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
308 |
msgid ""
|
309 |
"An addon for WP Offload Media to serve your site's JS, CSS, and other "
|
310 |
"enqueued assets from Amazon CloudFront or another CDN."
|
311 |
msgstr ""
|
312 |
|
313 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
314 |
msgid "Feature"
|
315 |
msgstr ""
|
316 |
|
317 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
318 |
#, php-format
|
319 |
msgid ""
|
320 |
"<strong>Amazon Web Services Plugin No Longer Required</strong> — As of "
|
@@ -325,7 +329,7 @@ msgid ""
|
|
325 |
"plugin, it should be safe to deactivate and delete it. %2$s"
|
326 |
msgstr ""
|
327 |
|
328 |
-
#: classes/amazon-s3-and-cloudfront.php:
|
329 |
#, php-format
|
330 |
msgid ""
|
331 |
"<strong>WP Offload Media Settings Moved</strong> — You now define your "
|
@@ -416,25 +420,34 @@ msgid "a PHP version less than 5.5"
|
|
416 |
msgstr ""
|
417 |
|
418 |
#: classes/as3cf-compatibility-check.php:624
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
419 |
msgid "no PHP cURL library activated"
|
420 |
msgstr ""
|
421 |
|
422 |
-
#: classes/as3cf-compatibility-check.php:
|
423 |
msgid "a cURL version less than 7.16.2"
|
424 |
msgstr ""
|
425 |
|
426 |
-
#: classes/as3cf-compatibility-check.php:
|
427 |
msgid "cURL compiled without"
|
428 |
msgstr ""
|
429 |
|
430 |
-
#: classes/as3cf-compatibility-check.php:
|
431 |
msgid "the function curl_multi_exec disabled"
|
432 |
msgstr ""
|
433 |
|
434 |
-
#: classes/as3cf-compatibility-check.php:
|
435 |
msgid ""
|
436 |
-
"The official Amazon Web Services SDK requires PHP 5.5+
|
437 |
-
"7.16.2+ compiled with OpenSSL and
|
|
|
438 |
msgstr ""
|
439 |
|
440 |
#: classes/as3cf-notices.php:431
|
@@ -445,7 +458,7 @@ msgstr ""
|
|
445 |
msgid "Invalid notice ID."
|
446 |
msgstr ""
|
447 |
|
448 |
-
#: classes/as3cf-plugin-base.php:
|
449 |
msgid "Settings"
|
450 |
msgstr ""
|
451 |
|
@@ -469,7 +482,7 @@ msgid ""
|
|
469 |
"Offload Media will require PHP %2$s or later. %3$s"
|
470 |
msgstr ""
|
471 |
|
472 |
-
#: classes/providers/provider.php:
|
473 |
#, php-format
|
474 |
msgid "You must first <a href=\"%s\">set your access keys</a>."
|
475 |
msgstr ""
|
@@ -614,94 +627,98 @@ msgctxt "Install plugin now"
|
|
614 |
msgid "Install Now"
|
615 |
msgstr ""
|
616 |
|
617 |
-
#: view/attachment-metabox.php:
|
618 |
msgid "This item has not been offloaded yet."
|
619 |
msgstr ""
|
620 |
|
621 |
-
#: view/attachment-metabox.php:
|
622 |
msgid "File does not exist on server"
|
623 |
msgstr ""
|
624 |
|
625 |
-
#: view/
|
626 |
-
|
|
|
|
|
|
|
|
|
627 |
msgid "« Back"
|
628 |
msgstr ""
|
629 |
|
630 |
-
#: view/bucket-select.php:
|
631 |
msgid "What bucket would you like to use?"
|
632 |
msgstr ""
|
633 |
|
634 |
-
#: view/bucket-select.php:
|
635 |
-
#: view/bucket-select.php:
|
636 |
-
#: view/bucket-select.php:
|
637 |
msgid "Region:"
|
638 |
msgstr ""
|
639 |
|
640 |
-
#: view/bucket-select.php:
|
641 |
-
#: view/bucket-select.php:
|
642 |
-
#: view/bucket-select.php:
|
643 |
#, php-format
|
644 |
msgid "%s (defined in wp-config.php)"
|
645 |
msgstr ""
|
646 |
|
647 |
-
#: view/bucket-select.php:
|
648 |
-
#: view/bucket-select.php:
|
649 |
-
#: view/bucket-select.php:
|
650 |
#: view/bucket-setting.php:8
|
651 |
msgid "Bucket:"
|
652 |
msgstr ""
|
653 |
|
654 |
-
#: view/bucket-select.php:
|
655 |
msgid "Existing bucket name"
|
656 |
msgstr ""
|
657 |
|
658 |
-
#: view/bucket-select.php:
|
659 |
msgid "Save Bucket Setting"
|
660 |
msgstr ""
|
661 |
|
662 |
-
#: view/bucket-select.php:
|
663 |
-
#: view/bucket-select.php:
|
664 |
msgid "Browse existing buckets"
|
665 |
msgstr ""
|
666 |
|
667 |
-
#: view/bucket-select.php:
|
668 |
-
#: view/bucket-select.php:
|
669 |
-
#: view/bucket-select.php:
|
670 |
msgid "Create new bucket"
|
671 |
msgstr ""
|
672 |
|
673 |
-
#: view/bucket-select.php:
|
674 |
msgid "Select bucket"
|
675 |
msgstr ""
|
676 |
|
677 |
-
#: view/bucket-select.php:
|
678 |
-
#: view/bucket-select.php:
|
679 |
msgid "Loading..."
|
680 |
msgstr ""
|
681 |
|
682 |
-
#: view/bucket-select.php:
|
683 |
-
#: view/bucket-select.php:
|
684 |
msgid "Nothing found"
|
685 |
msgstr ""
|
686 |
|
687 |
-
#: view/bucket-select.php:
|
688 |
msgid "Save Selected Bucket"
|
689 |
msgstr ""
|
690 |
|
691 |
-
#: view/bucket-select.php:
|
692 |
-
#: view/bucket-select.php:
|
693 |
msgid "Enter bucket name"
|
694 |
msgstr ""
|
695 |
|
696 |
-
#: view/bucket-select.php:
|
697 |
msgid "Refresh"
|
698 |
msgstr ""
|
699 |
|
700 |
-
#: view/bucket-select.php:
|
701 |
msgid "New bucket name"
|
702 |
msgstr ""
|
703 |
|
704 |
-
#: view/bucket-select.php:
|
705 |
msgid "Create New Bucket"
|
706 |
msgstr ""
|
707 |
|
@@ -710,7 +727,7 @@ msgid "View in provider's console"
|
|
710 |
msgstr ""
|
711 |
|
712 |
#: view/bucket-setting.php:19
|
713 |
-
#: view/provider-setting.php:
|
714 |
msgid "Change"
|
715 |
msgstr ""
|
716 |
|
@@ -790,15 +807,15 @@ msgstr ""
|
|
790 |
msgid "Show"
|
791 |
msgstr ""
|
792 |
|
793 |
-
#: view/provider-select.php:
|
794 |
msgid "Storage Provider"
|
795 |
msgstr ""
|
796 |
|
797 |
-
#: view/provider-select.php:
|
798 |
msgid "Define access keys in wp-config.php"
|
799 |
msgstr ""
|
800 |
|
801 |
-
#: view/provider-select.php:
|
802 |
#, php-format
|
803 |
msgctxt "Access Keys defined in multiple defines."
|
804 |
msgid ""
|
@@ -807,7 +824,7 @@ msgid ""
|
|
807 |
"config.php."
|
808 |
msgstr ""
|
809 |
|
810 |
-
#: view/provider-select.php:
|
811 |
#, php-format
|
812 |
msgctxt "Access Keys defined in single define."
|
813 |
msgid ""
|
@@ -816,28 +833,49 @@ msgid ""
|
|
816 |
"config.php."
|
817 |
msgstr ""
|
818 |
|
819 |
-
#: view/provider-select.php:
|
|
|
820 |
msgctxt "joins multiple define keys in notice"
|
821 |
msgid " & "
|
822 |
msgstr ""
|
823 |
|
824 |
-
#: view/provider-select.php:
|
825 |
msgid ""
|
826 |
"Please check your wp-config.php file as it looks like one of your access key "
|
827 |
"defines is missing or incorrect."
|
828 |
msgstr ""
|
829 |
|
830 |
-
#: view/provider-select.php:
|
831 |
msgid ""
|
832 |
"Copy the following snippet <strong>near the top</strong> of your wp-config."
|
833 |
"php and replace the stars with the keys."
|
834 |
msgstr ""
|
835 |
|
836 |
-
#: view/provider-select.php:
|
837 |
-
msgid "
|
838 |
msgstr ""
|
839 |
|
840 |
-
#: view/provider-select.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
841 |
#, php-format
|
842 |
msgid ""
|
843 |
"You've defined the '%1$s' constant in your wp-config.php. To select a "
|
@@ -845,44 +883,58 @@ msgid ""
|
|
845 |
"config.php."
|
846 |
msgstr ""
|
847 |
|
848 |
-
#: view/provider-select.php:
|
|
|
849 |
msgid ""
|
850 |
-
"If you host your WordPress site on
|
851 |
-
"
|
852 |
-
"
|
853 |
msgstr ""
|
854 |
|
855 |
-
#: view/provider-select.php:
|
856 |
msgid ""
|
857 |
"I understand the risks but I'd like to store access keys in the database "
|
858 |
"anyway (not recommended)"
|
859 |
msgstr ""
|
860 |
|
861 |
-
#: view/provider-select.php:
|
862 |
msgid ""
|
863 |
"Storing your access keys in the database is less secure than the options "
|
864 |
"above, but if you're ok with that, go ahead and enter your keys in the form "
|
865 |
"below."
|
866 |
msgstr ""
|
867 |
|
868 |
-
#: view/provider-select.php:
|
869 |
msgid "Access Key ID"
|
870 |
msgstr ""
|
871 |
|
872 |
-
#: view/provider-select.php:
|
873 |
msgid "Secret Access Key"
|
874 |
msgstr ""
|
875 |
|
876 |
-
#: view/provider-select.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
877 |
msgid "Next"
|
878 |
msgstr ""
|
879 |
|
880 |
-
#: view/provider-select.php:
|
881 |
#: view/settings/media.php:261
|
882 |
msgid "Save Changes"
|
883 |
msgstr ""
|
884 |
|
885 |
-
#: view/provider-setting.php:
|
886 |
msgid "Provider:"
|
887 |
msgstr ""
|
888 |
|
8 |
msgstr ""
|
9 |
"Project-Id-Version: amazon-s3-and-cloudfront\n"
|
10 |
"Report-Msgid-Bugs-To: nom@deliciousbrains.com\n"
|
11 |
+
"POT-Creation-Date: 2019-03-05 11:14+0000\n"
|
12 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
13 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
14 |
"Language-Team: LANGUAGE <LL@li.org>\n"
|
17 |
"Content-Type: text/plain; charset=UTF-8\n"
|
18 |
"Content-Transfer-Encoding: 8bit\n"
|
19 |
|
|
|
20 |
#: classes/amazon-s3-and-cloudfront.php:136
|
21 |
+
#: classes/amazon-s3-and-cloudfront.php:137
|
22 |
msgid "Offload Media"
|
23 |
msgstr ""
|
24 |
|
25 |
+
#: classes/amazon-s3-and-cloudfront.php:278
|
26 |
+
#: classes/amazon-s3-and-cloudfront.php:292
|
27 |
msgid "Unknown"
|
28 |
msgstr ""
|
29 |
|
30 |
+
#: classes/amazon-s3-and-cloudfront.php:346
|
31 |
#: view/bucket-setting.php:17
|
32 |
+
#: view/provider-select.php:106
|
33 |
msgid "defined in wp-config.php"
|
34 |
msgstr ""
|
35 |
|
36 |
+
#: classes/amazon-s3-and-cloudfront.php:1092
|
37 |
+
#: classes/amazon-s3-and-cloudfront.php:1226
|
38 |
#, php-format
|
39 |
msgid "File %s does not exist"
|
40 |
msgstr ""
|
41 |
|
42 |
+
#: classes/amazon-s3-and-cloudfront.php:1105
|
43 |
#, php-format
|
44 |
msgid "Mime type %s is not allowed"
|
45 |
msgstr ""
|
46 |
|
47 |
+
#: classes/amazon-s3-and-cloudfront.php:1116
|
48 |
msgid "Already offloaded to a different provider"
|
49 |
msgstr ""
|
50 |
|
51 |
+
#: classes/amazon-s3-and-cloudfront.php:1190
|
52 |
+
#: classes/amazon-s3-and-cloudfront.php:1234
|
53 |
#, php-format
|
54 |
msgid "Error offloading %s to provider: %s"
|
55 |
msgstr ""
|
56 |
|
57 |
+
#: classes/amazon-s3-and-cloudfront.php:2374
|
58 |
msgid "This action can only be performed through an admin screen."
|
59 |
msgstr ""
|
60 |
|
61 |
+
#: classes/amazon-s3-and-cloudfront.php:2376
|
62 |
msgid "Cheatin’ eh?"
|
63 |
msgstr ""
|
64 |
|
65 |
+
#: classes/amazon-s3-and-cloudfront.php:2378
|
66 |
msgid "You do not have sufficient permissions to access this page."
|
67 |
msgstr ""
|
68 |
|
69 |
+
#: classes/amazon-s3-and-cloudfront.php:2658
|
70 |
msgid "Error Getting Bucket Region"
|
71 |
msgstr ""
|
72 |
|
73 |
+
#: classes/amazon-s3-and-cloudfront.php:2659
|
74 |
#, php-format
|
75 |
msgid "There was an error attempting to get the region of the bucket %s: %s"
|
76 |
msgstr ""
|
77 |
|
78 |
+
#: classes/amazon-s3-and-cloudfront.php:2790
|
79 |
msgid ""
|
80 |
+
"This is a test file to check if the user has write permission to the bucket. "
|
81 |
+
"Delete me if found."
|
82 |
msgstr ""
|
83 |
|
84 |
+
#: classes/amazon-s3-and-cloudfront.php:2796
|
85 |
#, php-format
|
86 |
msgid ""
|
87 |
"There was an error attempting to check the permissions of the bucket %s: %s"
|
88 |
msgstr ""
|
89 |
|
90 |
+
#: classes/amazon-s3-and-cloudfront.php:2878
|
91 |
msgid "Error creating bucket"
|
92 |
msgstr ""
|
93 |
|
94 |
+
#: classes/amazon-s3-and-cloudfront.php:2879
|
95 |
msgid "Bucket name too short."
|
96 |
msgstr ""
|
97 |
|
98 |
+
#: classes/amazon-s3-and-cloudfront.php:2880
|
99 |
msgid "Bucket name too long."
|
100 |
msgstr ""
|
101 |
|
102 |
+
#: classes/amazon-s3-and-cloudfront.php:2881
|
103 |
msgid ""
|
104 |
"Invalid character. Bucket names can contain lowercase letters, numbers, "
|
105 |
"periods and hyphens."
|
106 |
msgstr ""
|
107 |
|
108 |
+
#: classes/amazon-s3-and-cloudfront.php:2882
|
109 |
msgid "Error saving bucket"
|
110 |
msgstr ""
|
111 |
|
112 |
+
#: classes/amazon-s3-and-cloudfront.php:2883
|
113 |
msgid "Error fetching buckets"
|
114 |
msgstr ""
|
115 |
|
116 |
+
#: classes/amazon-s3-and-cloudfront.php:2884
|
117 |
msgid "Error getting URL preview: "
|
118 |
msgstr ""
|
119 |
|
120 |
+
#: classes/amazon-s3-and-cloudfront.php:2885
|
121 |
msgid "The changes you made will be lost if you navigate away from this page"
|
122 |
msgstr ""
|
123 |
|
124 |
+
#: classes/amazon-s3-and-cloudfront.php:2886
|
125 |
msgid "Getting diagnostic info..."
|
126 |
msgstr ""
|
127 |
|
128 |
+
#: classes/amazon-s3-and-cloudfront.php:2887
|
129 |
msgid "Error getting diagnostic info: "
|
130 |
msgstr ""
|
131 |
|
132 |
+
#: classes/amazon-s3-and-cloudfront.php:2888
|
133 |
msgctxt "placeholder for hidden access key, 39 char max"
|
134 |
msgid "-- not shown --"
|
135 |
msgstr ""
|
136 |
|
137 |
+
#: classes/amazon-s3-and-cloudfront.php:2890
|
138 |
+
#: classes/amazon-s3-and-cloudfront.php:4901
|
139 |
msgid "Settings saved."
|
140 |
msgstr ""
|
141 |
|
142 |
+
#: classes/amazon-s3-and-cloudfront.php:2979
|
143 |
msgid "Cheatin' eh?"
|
144 |
msgstr ""
|
145 |
|
146 |
+
#: classes/amazon-s3-and-cloudfront.php:3063
|
147 |
msgid "No bucket name provided."
|
148 |
msgstr ""
|
149 |
|
150 |
+
#: classes/amazon-s3-and-cloudfront.php:3072
|
151 |
+
msgid "Bucket name not valid."
|
152 |
msgstr ""
|
153 |
|
154 |
+
#: classes/amazon-s3-and-cloudfront.php:3085
|
155 |
msgid "No region provided."
|
156 |
msgstr ""
|
157 |
|
158 |
+
#: classes/amazon-s3-and-cloudfront.php:3162
|
159 |
+
#: view/provider-select.php:295
|
160 |
msgctxt "placeholder for hidden secret access key, 39 char max"
|
161 |
msgid "-- not shown --"
|
162 |
msgstr ""
|
163 |
|
164 |
+
#: classes/amazon-s3-and-cloudfront.php:3185
|
165 |
+
msgid "Key File not valid JSON."
|
166 |
+
msgstr ""
|
167 |
+
|
168 |
+
#: classes/amazon-s3-and-cloudfront.php:3227
|
169 |
msgctxt "Show the media library tab"
|
170 |
msgid "Media Library"
|
171 |
msgstr ""
|
172 |
|
173 |
+
#: classes/amazon-s3-and-cloudfront.php:3228
|
174 |
msgctxt "Show the addons tab"
|
175 |
msgid "Addons"
|
176 |
msgstr ""
|
177 |
|
178 |
+
#: classes/amazon-s3-and-cloudfront.php:3229
|
179 |
msgctxt "Show the support tab"
|
180 |
msgid "Support"
|
181 |
msgstr ""
|
182 |
|
183 |
+
#: classes/amazon-s3-and-cloudfront.php:3449
|
184 |
#, php-format
|
185 |
msgid ""
|
186 |
"<strong>WP Offload Media</strong> — The file %s has been given %s "
|
187 |
"permissions in the bucket."
|
188 |
msgstr ""
|
189 |
|
190 |
+
#: classes/amazon-s3-and-cloudfront.php:3468
|
191 |
msgid ""
|
192 |
"<strong>WP Offload Media Requirement Missing</strong> — Looks like you "
|
193 |
"don't have an image manipulation library installed on this server and "
|
195 |
"Please setup GD or ImageMagick."
|
196 |
msgstr ""
|
197 |
|
198 |
+
#: classes/amazon-s3-and-cloudfront.php:4181
|
199 |
#, php-format
|
200 |
msgid ""
|
201 |
"<a href=\"%s\">Define your access keys</a> to enable write access to the "
|
202 |
"bucket"
|
203 |
msgstr ""
|
204 |
|
205 |
+
#: classes/amazon-s3-and-cloudfront.php:4188
|
206 |
msgid "Quick Start Guide"
|
207 |
msgstr ""
|
208 |
|
209 |
+
#: classes/amazon-s3-and-cloudfront.php:4190
|
210 |
#, php-format
|
211 |
msgid ""
|
212 |
"Looks like we don't have write access to this bucket. It's likely that the "
|
213 |
+
"user you've provided credentials for hasn't been granted the correct "
|
214 |
"permissions. Please see our %s for instructions on setting up permissions "
|
215 |
"correctly."
|
216 |
msgstr ""
|
217 |
|
218 |
+
#: classes/amazon-s3-and-cloudfront.php:4192
|
219 |
#, php-format
|
220 |
msgid ""
|
221 |
"Looks like we don't have access to the buckets. It's likely that the user "
|
222 |
+
"you've provided credentials for hasn't been granted the correct permissions. "
|
223 |
"Please see our %s for instructions on setting up permissions correctly."
|
224 |
msgstr ""
|
225 |
|
226 |
+
#: classes/amazon-s3-and-cloudfront.php:4342
|
227 |
msgid "WP Offload Media Activation"
|
228 |
msgstr ""
|
229 |
|
230 |
+
#: classes/amazon-s3-and-cloudfront.php:4343
|
231 |
msgid ""
|
232 |
"WP Offload Media Lite and WP Offload Media cannot both be active. We've "
|
233 |
"automatically deactivated WP Offload Media Lite."
|
234 |
msgstr ""
|
235 |
|
236 |
+
#: classes/amazon-s3-and-cloudfront.php:4345
|
237 |
msgid "WP Offload Media Lite Activation"
|
238 |
msgstr ""
|
239 |
|
240 |
+
#: classes/amazon-s3-and-cloudfront.php:4346
|
241 |
msgid ""
|
242 |
"WP Offload Media Lite and WP Offload Media cannot both be active. We've "
|
243 |
"automatically deactivated WP Offload Media."
|
244 |
msgstr ""
|
245 |
|
246 |
+
#: classes/amazon-s3-and-cloudfront.php:4398
|
247 |
msgid "More info »"
|
248 |
msgstr ""
|
249 |
|
250 |
+
#: classes/amazon-s3-and-cloudfront.php:4493
|
251 |
msgid "this doc"
|
252 |
msgstr ""
|
253 |
|
254 |
+
#: classes/amazon-s3-and-cloudfront.php:4495
|
255 |
msgid "WP Offload Media Feature Removed"
|
256 |
msgstr ""
|
257 |
|
258 |
+
#: classes/amazon-s3-and-cloudfront.php:4496
|
259 |
#, php-format
|
260 |
msgid ""
|
261 |
"You had the \"Always non-SSL\" option selected in your settings, but we've "
|
266 |
"to the old behavior."
|
267 |
msgstr ""
|
268 |
|
269 |
+
#: classes/amazon-s3-and-cloudfront.php:4526
|
270 |
msgid "Offload"
|
271 |
msgstr ""
|
272 |
|
273 |
+
#: classes/amazon-s3-and-cloudfront.php:4634
|
274 |
msgctxt "Storage provider key name"
|
275 |
msgid "Storage Provider"
|
276 |
msgstr ""
|
277 |
|
278 |
+
#: classes/amazon-s3-and-cloudfront.php:4635
|
279 |
msgctxt "Storage provider name"
|
280 |
msgid "Storage Provider"
|
281 |
msgstr ""
|
282 |
|
283 |
+
#: classes/amazon-s3-and-cloudfront.php:4636
|
284 |
msgctxt "Bucket name"
|
285 |
msgid "Bucket"
|
286 |
msgstr ""
|
287 |
|
288 |
+
#: classes/amazon-s3-and-cloudfront.php:4637
|
289 |
msgctxt "Path to file in bucket"
|
290 |
msgid "Path"
|
291 |
msgstr ""
|
292 |
|
293 |
+
#: classes/amazon-s3-and-cloudfront.php:4638
|
294 |
msgctxt "Location of bucket"
|
295 |
msgid "Region"
|
296 |
msgstr ""
|
297 |
|
298 |
+
#: classes/amazon-s3-and-cloudfront.php:4639
|
299 |
msgctxt "Access control list of the file in bucket"
|
300 |
msgid "Access"
|
301 |
msgstr ""
|
302 |
|
303 |
+
#: classes/amazon-s3-and-cloudfront.php:4640
|
304 |
msgid "URL"
|
305 |
msgstr ""
|
306 |
|
307 |
+
#: classes/amazon-s3-and-cloudfront.php:4864
|
308 |
msgid "Assets Pull"
|
309 |
msgstr ""
|
310 |
|
311 |
+
#: classes/amazon-s3-and-cloudfront.php:4865
|
312 |
msgid ""
|
313 |
"An addon for WP Offload Media to serve your site's JS, CSS, and other "
|
314 |
"enqueued assets from Amazon CloudFront or another CDN."
|
315 |
msgstr ""
|
316 |
|
317 |
+
#: classes/amazon-s3-and-cloudfront.php:4869
|
318 |
msgid "Feature"
|
319 |
msgstr ""
|
320 |
|
321 |
+
#: classes/amazon-s3-and-cloudfront.php:4915
|
322 |
#, php-format
|
323 |
msgid ""
|
324 |
"<strong>Amazon Web Services Plugin No Longer Required</strong> — As of "
|
329 |
"plugin, it should be safe to deactivate and delete it. %2$s"
|
330 |
msgstr ""
|
331 |
|
332 |
+
#: classes/amazon-s3-and-cloudfront.php:4947
|
333 |
#, php-format
|
334 |
msgid ""
|
335 |
"<strong>WP Offload Media Settings Moved</strong> — You now define your "
|
420 |
msgstr ""
|
421 |
|
422 |
#: classes/as3cf-compatibility-check.php:624
|
423 |
+
msgid "no SimpleXML PHP module"
|
424 |
+
msgstr ""
|
425 |
+
|
426 |
+
#: classes/as3cf-compatibility-check.php:628
|
427 |
+
msgid "no XMLWriter PHP module"
|
428 |
+
msgstr ""
|
429 |
+
|
430 |
+
#: classes/as3cf-compatibility-check.php:632
|
431 |
msgid "no PHP cURL library activated"
|
432 |
msgstr ""
|
433 |
|
434 |
+
#: classes/as3cf-compatibility-check.php:638
|
435 |
msgid "a cURL version less than 7.16.2"
|
436 |
msgstr ""
|
437 |
|
438 |
+
#: classes/as3cf-compatibility-check.php:653
|
439 |
msgid "cURL compiled without"
|
440 |
msgstr ""
|
441 |
|
442 |
+
#: classes/as3cf-compatibility-check.php:658
|
443 |
msgid "the function curl_multi_exec disabled"
|
444 |
msgstr ""
|
445 |
|
446 |
+
#: classes/as3cf-compatibility-check.php:676
|
447 |
msgid ""
|
448 |
+
"The official Amazon Web Services SDK requires PHP 5.5+ with "
|
449 |
+
"SimpleXML and XMLWriter modules, and cURL 7.16.2+ compiled with OpenSSL and "
|
450 |
+
"zlib. Your server currently has"
|
451 |
msgstr ""
|
452 |
|
453 |
#: classes/as3cf-notices.php:431
|
458 |
msgid "Invalid notice ID."
|
459 |
msgstr ""
|
460 |
|
461 |
+
#: classes/as3cf-plugin-base.php:537
|
462 |
msgid "Settings"
|
463 |
msgstr ""
|
464 |
|
482 |
"Offload Media will require PHP %2$s or later. %3$s"
|
483 |
msgstr ""
|
484 |
|
485 |
+
#: classes/providers/provider.php:517
|
486 |
#, php-format
|
487 |
msgid "You must first <a href=\"%s\">set your access keys</a>."
|
488 |
msgstr ""
|
627 |
msgid "Install Now"
|
628 |
msgstr ""
|
629 |
|
630 |
+
#: view/attachment-metabox.php:20
|
631 |
msgid "This item has not been offloaded yet."
|
632 |
msgstr ""
|
633 |
|
634 |
+
#: view/attachment-metabox.php:49
|
635 |
msgid "File does not exist on server"
|
636 |
msgstr ""
|
637 |
|
638 |
+
#: view/attachment-metabox.php:57
|
639 |
+
msgid "File exists on server"
|
640 |
+
msgstr ""
|
641 |
+
|
642 |
+
#: view/bucket-select.php:38
|
643 |
+
#: view/provider-select.php:17
|
644 |
msgid "« Back"
|
645 |
msgstr ""
|
646 |
|
647 |
+
#: view/bucket-select.php:44
|
648 |
msgid "What bucket would you like to use?"
|
649 |
msgstr ""
|
650 |
|
651 |
+
#: view/bucket-select.php:57
|
652 |
+
#: view/bucket-select.php:110
|
653 |
+
#: view/bucket-select.php:163
|
654 |
msgid "Region:"
|
655 |
msgstr ""
|
656 |
|
657 |
+
#: view/bucket-select.php:72
|
658 |
+
#: view/bucket-select.php:125
|
659 |
+
#: view/bucket-select.php:180
|
660 |
#, php-format
|
661 |
msgid "%s (defined in wp-config.php)"
|
662 |
msgstr ""
|
663 |
|
664 |
+
#: view/bucket-select.php:79
|
665 |
+
#: view/bucket-select.php:131
|
666 |
+
#: view/bucket-select.php:186
|
667 |
#: view/bucket-setting.php:8
|
668 |
msgid "Bucket:"
|
669 |
msgstr ""
|
670 |
|
671 |
+
#: view/bucket-select.php:82
|
672 |
msgid "Existing bucket name"
|
673 |
msgstr ""
|
674 |
|
675 |
+
#: view/bucket-select.php:88
|
676 |
msgid "Save Bucket Setting"
|
677 |
msgstr ""
|
678 |
|
679 |
+
#: view/bucket-select.php:89
|
680 |
+
#: view/bucket-select.php:196
|
681 |
msgid "Browse existing buckets"
|
682 |
msgstr ""
|
683 |
|
684 |
+
#: view/bucket-select.php:90
|
685 |
+
#: view/bucket-select.php:145
|
686 |
+
#: view/bucket-select.php:151
|
687 |
msgid "Create new bucket"
|
688 |
msgstr ""
|
689 |
|
690 |
+
#: view/bucket-select.php:95
|
691 |
msgid "Select bucket"
|
692 |
msgstr ""
|
693 |
|
694 |
+
#: view/bucket-select.php:134
|
695 |
+
#: view/bucket-select.php:139
|
696 |
msgid "Loading..."
|
697 |
msgstr ""
|
698 |
|
699 |
+
#: view/bucket-select.php:134
|
700 |
+
#: view/bucket-select.php:139
|
701 |
msgid "Nothing found"
|
702 |
msgstr ""
|
703 |
|
704 |
+
#: view/bucket-select.php:143
|
705 |
msgid "Save Selected Bucket"
|
706 |
msgstr ""
|
707 |
|
708 |
+
#: view/bucket-select.php:144
|
709 |
+
#: view/bucket-select.php:197
|
710 |
msgid "Enter bucket name"
|
711 |
msgstr ""
|
712 |
|
713 |
+
#: view/bucket-select.php:146
|
714 |
msgid "Refresh"
|
715 |
msgstr ""
|
716 |
|
717 |
+
#: view/bucket-select.php:189
|
718 |
msgid "New bucket name"
|
719 |
msgstr ""
|
720 |
|
721 |
+
#: view/bucket-select.php:195
|
722 |
msgid "Create New Bucket"
|
723 |
msgstr ""
|
724 |
|
727 |
msgstr ""
|
728 |
|
729 |
#: view/bucket-setting.php:19
|
730 |
+
#: view/provider-setting.php:17
|
731 |
msgid "Change"
|
732 |
msgstr ""
|
733 |
|
807 |
msgid "Show"
|
808 |
msgstr ""
|
809 |
|
810 |
+
#: view/provider-select.php:20
|
811 |
msgid "Storage Provider"
|
812 |
msgstr ""
|
813 |
|
814 |
+
#: view/provider-select.php:129
|
815 |
msgid "Define access keys in wp-config.php"
|
816 |
msgstr ""
|
817 |
|
818 |
+
#: view/provider-select.php:138
|
819 |
#, php-format
|
820 |
msgctxt "Access Keys defined in multiple defines."
|
821 |
msgid ""
|
824 |
"config.php."
|
825 |
msgstr ""
|
826 |
|
827 |
+
#: view/provider-select.php:140
|
828 |
#, php-format
|
829 |
msgctxt "Access Keys defined in single define."
|
830 |
msgid ""
|
833 |
"config.php."
|
834 |
msgstr ""
|
835 |
|
836 |
+
#: view/provider-select.php:142
|
837 |
+
#: view/provider-select.php:192
|
838 |
msgctxt "joins multiple define keys in notice"
|
839 |
msgid " & "
|
840 |
msgstr ""
|
841 |
|
842 |
+
#: view/provider-select.php:151
|
843 |
msgid ""
|
844 |
"Please check your wp-config.php file as it looks like one of your access key "
|
845 |
"defines is missing or incorrect."
|
846 |
msgstr ""
|
847 |
|
848 |
+
#: view/provider-select.php:157
|
849 |
msgid ""
|
850 |
"Copy the following snippet <strong>near the top</strong> of your wp-config."
|
851 |
"php and replace the stars with the keys."
|
852 |
msgstr ""
|
853 |
|
854 |
+
#: view/provider-select.php:183
|
855 |
+
msgid "Define key file path in wp-config.php"
|
856 |
msgstr ""
|
857 |
|
858 |
+
#: view/provider-select.php:191
|
859 |
+
#, php-format
|
860 |
+
msgctxt "Key file path defined in single define."
|
861 |
+
msgid ""
|
862 |
+
"You've defined your key file path in your wp-config.php. To select a "
|
863 |
+
"different option here, simply comment out or remove the '%1$s' define in "
|
864 |
+
"your wp-config.php."
|
865 |
+
msgstr ""
|
866 |
+
|
867 |
+
#: view/provider-select.php:197
|
868 |
+
msgid ""
|
869 |
+
"Copy the following snippet <strong>near the top</strong> of your wp-config."
|
870 |
+
"php and replace \"<strong>/path/to/key/file.json</strong>\"."
|
871 |
+
msgstr ""
|
872 |
+
|
873 |
+
#: view/provider-select.php:226
|
874 |
+
#, php-format
|
875 |
+
msgid "My server is on %s and I'd like to use IAM Roles"
|
876 |
+
msgstr ""
|
877 |
+
|
878 |
+
#: view/provider-select.php:233
|
879 |
#, php-format
|
880 |
msgid ""
|
881 |
"You've defined the '%1$s' constant in your wp-config.php. To select a "
|
883 |
"config.php."
|
884 |
msgstr ""
|
885 |
|
886 |
+
#: view/provider-select.php:236
|
887 |
+
#, php-format
|
888 |
msgid ""
|
889 |
+
"If you host your WordPress site on %s you should make use of IAM Roles. To "
|
890 |
+
"tell WP Offload Media you're using IAM Roles, copy the following snippet "
|
891 |
+
"<strong>near the top</strong> of your wp-config.php."
|
892 |
msgstr ""
|
893 |
|
894 |
+
#: view/provider-select.php:262
|
895 |
msgid ""
|
896 |
"I understand the risks but I'd like to store access keys in the database "
|
897 |
"anyway (not recommended)"
|
898 |
msgstr ""
|
899 |
|
900 |
+
#: view/provider-select.php:269
|
901 |
msgid ""
|
902 |
"Storing your access keys in the database is less secure than the options "
|
903 |
"above, but if you're ok with that, go ahead and enter your keys in the form "
|
904 |
"below."
|
905 |
msgstr ""
|
906 |
|
907 |
+
#: view/provider-select.php:274
|
908 |
msgid "Access Key ID"
|
909 |
msgstr ""
|
910 |
|
911 |
+
#: view/provider-select.php:289
|
912 |
msgid "Secret Access Key"
|
913 |
msgstr ""
|
914 |
|
915 |
+
#: view/provider-select.php:316
|
916 |
+
msgid ""
|
917 |
+
"I understand the risks but I'd like to store the key file's contents in the "
|
918 |
+
"database anyway (not recommended)"
|
919 |
+
msgstr ""
|
920 |
+
|
921 |
+
#: view/provider-select.php:323
|
922 |
+
msgid ""
|
923 |
+
"Storing your key file's contents in the database is less secure than the "
|
924 |
+
"options above, but if you're ok with that, go ahead and enter your key "
|
925 |
+
"file's JSON data in the field below."
|
926 |
+
msgstr ""
|
927 |
+
|
928 |
+
#: view/provider-select.php:339
|
929 |
msgid "Next"
|
930 |
msgstr ""
|
931 |
|
932 |
+
#: view/provider-select.php:339
|
933 |
#: view/settings/media.php:261
|
934 |
msgid "Save Changes"
|
935 |
msgstr ""
|
936 |
|
937 |
+
#: view/provider-setting.php:12
|
938 |
msgid "Provider:"
|
939 |
msgstr ""
|
940 |
|
readme.txt
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
=== WP Offload Media Lite for Amazon S3 and DigitalOcean Spaces ===
|
2 |
Contributors: bradt, deliciousbrains, ianmjones
|
3 |
-
Tags: uploads, amazon, s3, amazon s3, digitalocean, digitalocean spaces, mirror, admin, media, cdn, cloudfront
|
4 |
Requires at least: 4.7
|
5 |
-
Tested up to: 5.
|
6 |
Requires PHP: 5.5
|
7 |
-
Stable tag: 2.
|
8 |
License: GPLv3
|
9 |
|
10 |
-
Copies files to Amazon S3
|
11 |
|
12 |
== Description ==
|
13 |
|
@@ -15,11 +15,11 @@ FORMERLY WP OFFLOAD S3 LITE
|
|
15 |
|
16 |
https://www.youtube.com/watch?v=_PVybEGaRXc
|
17 |
|
18 |
-
This plugin automatically copies images, videos, documents, and any other media added through WordPress' media uploader to [Amazon S3](http://aws.amazon.com/s3/)
|
19 |
|
20 |
-
Uploading files *directly* to your Amazon S3
|
21 |
|
22 |
-
If you're adding this plugin to a site that's been around for a while, your existing media files will not be copied to or served from Amazon S3 or
|
23 |
|
24 |
**Image Optimization**
|
25 |
|
@@ -27,7 +27,7 @@ Although WP Offload Media doesn't include image optimization features, we work c
|
|
27 |
|
28 |
**PRO Upgrade with Email Support and More Features**
|
29 |
|
30 |
-
* Upload existing Media Library to Amazon S3 or
|
31 |
* Control offloaded files from the Media Library
|
32 |
* [Assets Pull addon](https://deliciousbrains.com/wp-offload-media/?utm_campaign=WP%2BOffload%2BS3&utm_source=wordpress.org&utm_medium=free%2Bplugin%2Blisting&utm_content=assets%2Baddon#addons) - Serve your CSS, JS and fonts via CloudFront or another CDN
|
33 |
* [WooCommerce integration](https://deliciousbrains.com/wp-offload-media/?utm_campaign=WP%2BOffload%2BS3&utm_source=wordpress.org&utm_medium=free%2Bplugin%2Blisting&utm_content=woocommerce%2Baddon#integrations)
|
@@ -38,7 +38,7 @@ Although WP Offload Media doesn't include image optimization features, we work c
|
|
38 |
|
39 |
The video below runs through the pro upgrade features...
|
40 |
|
41 |
-
https://www.youtube.com/watch?v=
|
42 |
|
43 |
== Installation ==
|
44 |
|
@@ -78,6 +78,16 @@ This version requires PHP 5.3.3+ and the Amazon Web Services plugin
|
|
78 |
|
79 |
== Changelog ==
|
80 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
81 |
= WP Offload Media Lite 2.0.1 - 2018-12-17 =
|
82 |
* Improvement: Streamlined UI for setting Storage Provider and Bucket
|
83 |
* Bug fix: On/Off switches in settings look reversed
|
@@ -87,7 +97,7 @@ This version requires PHP 5.3.3+ and the Amazon Web Services plugin
|
|
87 |
* Tested: WordPress 5.0
|
88 |
|
89 |
= WP Offload Media Lite 2.0 - 2018-09-24 =
|
90 |
-
* [Release Summary Blog Post](https://deliciousbrains.com/wp-offload-s3-is-now-wp-offload-media-and-adds-support-for-digitalocean-spaces
|
91 |
* New: DigitalOcean Spaces is now supported
|
92 |
* New: Plugin name updated from WP Offload S3 Lite to WP Offload Media Lite
|
93 |
* Improvement: More logical UI layout and better description of each setting
|
1 |
=== WP Offload Media Lite for Amazon S3 and DigitalOcean Spaces ===
|
2 |
Contributors: bradt, deliciousbrains, ianmjones
|
3 |
+
Tags: uploads, amazon, s3, amazon s3, digitalocean, digitalocean spaces, google cloud storage, gcs, mirror, admin, media, cdn, cloudfront
|
4 |
Requires at least: 4.7
|
5 |
+
Tested up to: 5.1
|
6 |
Requires PHP: 5.5
|
7 |
+
Stable tag: 2.1
|
8 |
License: GPLv3
|
9 |
|
10 |
+
Copies files to Amazon S3, DigitalOcean Spaces or Google Cloud Storage as they are uploaded to the Media Library. Optionally configure Amazon CloudFront or another CDN for faster delivery.
|
11 |
|
12 |
== Description ==
|
13 |
|
15 |
|
16 |
https://www.youtube.com/watch?v=_PVybEGaRXc
|
17 |
|
18 |
+
This plugin automatically copies images, videos, documents, and any other media added through WordPress' media uploader to [Amazon S3](http://aws.amazon.com/s3/), [DigitalOcean Spaces](https://www.digitalocean.com/products/spaces/) or [Google Cloud Storage](https://cloud.google.com/storage/). It then automatically replaces the URL to each media file with their respective Amazon S3, DigitalOcean Spaces or Google Cloud Storage URL or, if you have configured [Amazon CloudFront](http://aws.amazon.com/cloudfront/) or another CDN with or without a custom domain, that URL instead. Image thumbnails are also copied to the bucket and delivered through the correct remote URL.
|
19 |
|
20 |
+
Uploading files *directly* to your Amazon S3, DigitalOcean Spaces or Google Cloud Storage account is not currently supported by this plugin. They are uploaded to your server first, then copied to the bucket. There is an option to automatically remove the files from your server once they are copied to the bucket however.
|
21 |
|
22 |
+
If you're adding this plugin to a site that's been around for a while, your existing media files will not be copied to or served from Amazon S3, DigitalOcean Spaces or Google Cloud Storage. Only newly uploaded files will be copied to and served from the bucket. [The pro upgrade](https://deliciousbrains.com/wp-offload-media/upgrade/?utm_campaign=WP%2BOffload%2BS3&utm_source=wordpress.org&utm_medium=free%2Bplugin%2Blisting) has an upload tool to handle existing media files.
|
23 |
|
24 |
**Image Optimization**
|
25 |
|
27 |
|
28 |
**PRO Upgrade with Email Support and More Features**
|
29 |
|
30 |
+
* Upload existing Media Library to Amazon S3, DigitalOcean Spaces or Google Cloud Storage
|
31 |
* Control offloaded files from the Media Library
|
32 |
* [Assets Pull addon](https://deliciousbrains.com/wp-offload-media/?utm_campaign=WP%2BOffload%2BS3&utm_source=wordpress.org&utm_medium=free%2Bplugin%2Blisting&utm_content=assets%2Baddon#addons) - Serve your CSS, JS and fonts via CloudFront or another CDN
|
33 |
* [WooCommerce integration](https://deliciousbrains.com/wp-offload-media/?utm_campaign=WP%2BOffload%2BS3&utm_source=wordpress.org&utm_medium=free%2Bplugin%2Blisting&utm_content=woocommerce%2Baddon#integrations)
|
38 |
|
39 |
The video below runs through the pro upgrade features...
|
40 |
|
41 |
+
https://www.youtube.com/watch?v=I-wTMXMeFu4
|
42 |
|
43 |
== Installation ==
|
44 |
|
78 |
|
79 |
== Changelog ==
|
80 |
|
81 |
+
= WP Offload Media Lite 2.1 - 2019-03-05 =
|
82 |
+
* [Release Summary Blog Post](https://deliciousbrains.com/wp-offload-media-2-1-released/?utm_campaign=changelogs&utm_source=wordpress.org&utm_medium=free%2Bplugin%2Blisting)
|
83 |
+
* New: Google Cloud Storage is now supported
|
84 |
+
* Improvement: AWS PHP SDK updated
|
85 |
+
* Improvement: Diagnostic Info shows more complete settings information
|
86 |
+
* Bug fix: Year/Month path prefix incorrectly set in bucket for non-image media files
|
87 |
+
* Bug fix: PHP Fatal error: Class 'XMLWriter' not found
|
88 |
+
* Bug fix: PHP Fatal error: Uncaught Error: Call to undefined method ...\Aws3\Aws\S3\Exception\S3Exception::search() in .../classes/providers/aws-provider.php:439
|
89 |
+
* Bug fix: PHP Warning: filesize(): stat failed for [file-path] in classes/amazon-s3-and-cloudfront.php on line 1309
|
90 |
+
|
91 |
= WP Offload Media Lite 2.0.1 - 2018-12-17 =
|
92 |
* Improvement: Streamlined UI for setting Storage Provider and Bucket
|
93 |
* Bug fix: On/Off switches in settings look reversed
|
97 |
* Tested: WordPress 5.0
|
98 |
|
99 |
= WP Offload Media Lite 2.0 - 2018-09-24 =
|
100 |
+
* [Release Summary Blog Post](https://deliciousbrains.com/wp-offload-s3-is-now-wp-offload-media-and-adds-support-for-digitalocean-spaces/?utm_campaign=changelogs&utm_source=wordpress.org&utm_medium=free%2Bplugin%2Blisting)
|
101 |
* New: DigitalOcean Spaces is now supported
|
102 |
* New: Plugin name updated from WP Offload S3 Lite to WP Offload Media Lite
|
103 |
* Improvement: More logical UI layout and better description of each setting
|
vendor/Aws3/Aws/Api/ErrorParser/JsonParserTrait.php
CHANGED
@@ -13,6 +13,6 @@ trait JsonParserTrait
|
|
13 |
private function genericHandler(\DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\ResponseInterface $response)
|
14 |
{
|
15 |
$code = (string) $response->getStatusCode();
|
16 |
-
return ['request_id' => (string) $response->getHeaderLine('x-amzn-requestid'), 'code' => null, 'message' => null, 'type' => $code[0] == '4' ? 'client' : 'server', 'parsed' => $this->parseJson($response->getBody())];
|
17 |
}
|
18 |
}
|
13 |
private function genericHandler(\DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\ResponseInterface $response)
|
14 |
{
|
15 |
$code = (string) $response->getStatusCode();
|
16 |
+
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)];
|
17 |
}
|
18 |
}
|
vendor/Aws3/Aws/Api/ErrorParser/XmlErrorParser.php
CHANGED
@@ -16,7 +16,7 @@ class XmlErrorParser
|
|
16 |
$data = ['type' => $code[0] == '4' ? 'client' : 'server', 'request_id' => null, 'code' => null, 'message' => null, 'parsed' => null];
|
17 |
$body = $response->getBody();
|
18 |
if ($body->getSize() > 0) {
|
19 |
-
$this->parseBody($this->parseXml($body), $data);
|
20 |
} else {
|
21 |
$this->parseHeaders($response, $data);
|
22 |
}
|
16 |
$data = ['type' => $code[0] == '4' ? 'client' : 'server', 'request_id' => null, 'code' => null, 'message' => null, 'parsed' => null];
|
17 |
$body = $response->getBody();
|
18 |
if ($body->getSize() > 0) {
|
19 |
+
$this->parseBody($this->parseXml($body, $response), $data);
|
20 |
} else {
|
21 |
$this->parseHeaders($response, $data);
|
22 |
}
|
vendor/Aws3/Aws/Api/Parser/AbstractParser.php
CHANGED
@@ -3,9 +3,11 @@
|
|
3 |
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser;
|
4 |
|
5 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Service;
|
|
|
6 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface;
|
7 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\ResultInterface;
|
8 |
use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\ResponseInterface;
|
|
|
9 |
/**
|
10 |
* @internal
|
11 |
*/
|
@@ -13,6 +15,8 @@ abstract class AbstractParser
|
|
13 |
{
|
14 |
/** @var \Aws\Api\Service Representation of the service API*/
|
15 |
protected $api;
|
|
|
|
|
16 |
/**
|
17 |
* @param Service $api Service description.
|
18 |
*/
|
@@ -27,4 +31,5 @@ abstract class AbstractParser
|
|
27 |
* @return ResultInterface
|
28 |
*/
|
29 |
public abstract function __invoke(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface $command, \DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\ResponseInterface $response);
|
|
|
30 |
}
|
3 |
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser;
|
4 |
|
5 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Service;
|
6 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\StructureShape;
|
7 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface;
|
8 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\ResultInterface;
|
9 |
use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\ResponseInterface;
|
10 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\StreamInterface;
|
11 |
/**
|
12 |
* @internal
|
13 |
*/
|
15 |
{
|
16 |
/** @var \Aws\Api\Service Representation of the service API*/
|
17 |
protected $api;
|
18 |
+
/** @var callable */
|
19 |
+
protected $parser;
|
20 |
/**
|
21 |
* @param Service $api Service description.
|
22 |
*/
|
31 |
* @return ResultInterface
|
32 |
*/
|
33 |
public abstract function __invoke(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface $command, \DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\ResponseInterface $response);
|
34 |
+
public abstract function parseMemberFromStream(\DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\StreamInterface $stream, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\StructureShape $member, $response);
|
35 |
}
|
vendor/Aws3/Aws/Api/Parser/AbstractRestParser.php
CHANGED
@@ -53,13 +53,17 @@ abstract class AbstractRestParser extends \DeliciousBrains\WP_Offload_Media\Aws3
|
|
53 |
private function extractPayload($payload, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\StructureShape $output, \DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\ResponseInterface $response, array &$result)
|
54 |
{
|
55 |
$member = $output->getMember($payload);
|
56 |
-
if ($member
|
57 |
-
|
58 |
-
$result[$payload] = [];
|
59 |
-
$this->payload($response, $member, $result[$payload]);
|
60 |
} else {
|
61 |
-
|
62 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
63 |
}
|
64 |
}
|
65 |
/**
|
@@ -84,6 +88,9 @@ abstract class AbstractRestParser extends \DeliciousBrains\WP_Offload_Media\Aws3
|
|
84 |
break;
|
85 |
case 'timestamp':
|
86 |
try {
|
|
|
|
|
|
|
87 |
$value = new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\DateTimeResult($value);
|
88 |
break;
|
89 |
} catch (\Exception $e) {
|
@@ -93,7 +100,7 @@ abstract class AbstractRestParser extends \DeliciousBrains\WP_Offload_Media\Aws3
|
|
93 |
}
|
94 |
case 'string':
|
95 |
if ($shape['jsonvalue']) {
|
96 |
-
$value = $this->parseJson(base64_decode($value));
|
97 |
}
|
98 |
break;
|
99 |
}
|
53 |
private function extractPayload($payload, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\StructureShape $output, \DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\ResponseInterface $response, array &$result)
|
54 |
{
|
55 |
$member = $output->getMember($payload);
|
56 |
+
if (!empty($member['eventstream'])) {
|
57 |
+
$result[$payload] = new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\EventParsingIterator($response->getBody(), $member, $this);
|
|
|
|
|
58 |
} else {
|
59 |
+
if ($member instanceof StructureShape) {
|
60 |
+
// Structure members parse top-level data into a specific key.
|
61 |
+
$result[$payload] = [];
|
62 |
+
$this->payload($response, $member, $result[$payload]);
|
63 |
+
} else {
|
64 |
+
// Streaming data is just the stream from the response body.
|
65 |
+
$result[$payload] = $response->getBody();
|
66 |
+
}
|
67 |
}
|
68 |
}
|
69 |
/**
|
88 |
break;
|
89 |
case 'timestamp':
|
90 |
try {
|
91 |
+
if (!empty($shape['timestampFormat']) && $shape['timestampFormat'] === 'unixTimestamp') {
|
92 |
+
$value = \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\DateTimeResult::fromEpoch($value);
|
93 |
+
}
|
94 |
$value = new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\DateTimeResult($value);
|
95 |
break;
|
96 |
} catch (\Exception $e) {
|
100 |
}
|
101 |
case 'string':
|
102 |
if ($shape['jsonvalue']) {
|
103 |
+
$value = $this->parseJson(base64_decode($value), $response);
|
104 |
}
|
105 |
break;
|
106 |
}
|
vendor/Aws3/Aws/Api/Parser/Crc32ValidatingParser.php
CHANGED
@@ -2,17 +2,17 @@
|
|
2 |
|
3 |
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser;
|
4 |
|
|
|
5 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface;
|
6 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\AwsException;
|
7 |
use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\ResponseInterface;
|
|
|
8 |
use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Psr7;
|
9 |
/**
|
10 |
* @internal Decorates a parser and validates the x-amz-crc32 header.
|
11 |
*/
|
12 |
class Crc32ValidatingParser extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\AbstractParser
|
13 |
{
|
14 |
-
/** @var callable */
|
15 |
-
private $parser;
|
16 |
/**
|
17 |
* @param callable $parser Parser to wrap.
|
18 |
*/
|
@@ -31,4 +31,8 @@ class Crc32ValidatingParser extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\A
|
|
31 |
$fn = $this->parser;
|
32 |
return $fn($command, $response);
|
33 |
}
|
|
|
|
|
|
|
|
|
34 |
}
|
2 |
|
3 |
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser;
|
4 |
|
5 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\StructureShape;
|
6 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface;
|
7 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\AwsException;
|
8 |
use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\ResponseInterface;
|
9 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\StreamInterface;
|
10 |
use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Psr7;
|
11 |
/**
|
12 |
* @internal Decorates a parser and validates the x-amz-crc32 header.
|
13 |
*/
|
14 |
class Crc32ValidatingParser extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\AbstractParser
|
15 |
{
|
|
|
|
|
16 |
/**
|
17 |
* @param callable $parser Parser to wrap.
|
18 |
*/
|
31 |
$fn = $this->parser;
|
32 |
return $fn($command, $response);
|
33 |
}
|
34 |
+
public function parseMemberFromStream(\DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\StreamInterface $stream, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\StructureShape $member, $response)
|
35 |
+
{
|
36 |
+
return $this->parser->parseMemberFromStream($stream, $member, $response);
|
37 |
+
}
|
38 |
}
|
vendor/Aws3/Aws/Api/Parser/DecodingEventStreamIterator.php
ADDED
@@ -0,0 +1,241 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser;
|
4 |
+
|
5 |
+
use Iterator;
|
6 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\DateTimeResult;
|
7 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Psr7;
|
8 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\StreamInterface;
|
9 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\Exception\ParserException;
|
10 |
+
/**
|
11 |
+
* @internal Implements a decoder for a binary encoded event stream that will
|
12 |
+
* decode, validate, and provide individual events from the stream.
|
13 |
+
*/
|
14 |
+
class DecodingEventStreamIterator implements \Iterator
|
15 |
+
{
|
16 |
+
const HEADERS = 'headers';
|
17 |
+
const PAYLOAD = 'payload';
|
18 |
+
const LENGTH_TOTAL = 'total_length';
|
19 |
+
const LENGTH_HEADERS = 'headers_length';
|
20 |
+
const CRC_PRELUDE = 'prelude_crc';
|
21 |
+
const BYTES_PRELUDE = 12;
|
22 |
+
const BYTES_TRAILING = 4;
|
23 |
+
private static $preludeFormat = [self::LENGTH_TOTAL => 'decodeUint32', self::LENGTH_HEADERS => 'decodeUint32', self::CRC_PRELUDE => 'decodeUint32'];
|
24 |
+
private static $lengthFormatMap = [1 => 'decodeUint8', 2 => 'decodeUint16', 4 => 'decodeUint32', 8 => 'decodeUint64'];
|
25 |
+
private static $headerTypeMap = [0 => 'decodeBooleanTrue', 1 => 'decodeBooleanFalse', 2 => 'decodeInt8', 3 => 'decodeInt16', 4 => 'decodeInt32', 5 => 'decodeInt64', 6 => 'decodeBytes', 7 => 'decodeString', 8 => 'decodeTimestamp', 9 => 'decodeUuid'];
|
26 |
+
/** @var StreamInterface Stream of eventstream shape to parse. */
|
27 |
+
private $stream;
|
28 |
+
/** @var array Currently parsed event. */
|
29 |
+
private $currentEvent;
|
30 |
+
/** @var int Current in-order event key. */
|
31 |
+
private $key;
|
32 |
+
/** @var resource|HashContext CRC32 hash context for event validation */
|
33 |
+
private $hashContext;
|
34 |
+
/** @var int $currentPosition */
|
35 |
+
private $currentPosition;
|
36 |
+
/**
|
37 |
+
* DecodingEventStreamIterator constructor.
|
38 |
+
*
|
39 |
+
* @param StreamInterface $stream
|
40 |
+
*/
|
41 |
+
public function __construct(\DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\StreamInterface $stream)
|
42 |
+
{
|
43 |
+
$this->stream = $stream;
|
44 |
+
$this->rewind();
|
45 |
+
}
|
46 |
+
private function parseHeaders($headerBytes)
|
47 |
+
{
|
48 |
+
$headers = [];
|
49 |
+
$bytesRead = 0;
|
50 |
+
while ($bytesRead < $headerBytes) {
|
51 |
+
list($key, $numBytes) = $this->decodeString(1);
|
52 |
+
$bytesRead += $numBytes;
|
53 |
+
list($type, $numBytes) = $this->decodeUint8();
|
54 |
+
$bytesRead += $numBytes;
|
55 |
+
$f = self::$headerTypeMap[$type];
|
56 |
+
list($value, $numBytes) = $this->{$f}();
|
57 |
+
$bytesRead += $numBytes;
|
58 |
+
if (isset($headers[$key])) {
|
59 |
+
throw new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\Exception\ParserException('Duplicate key in event headers.');
|
60 |
+
}
|
61 |
+
$headers[$key] = $value;
|
62 |
+
}
|
63 |
+
return [$headers, $bytesRead];
|
64 |
+
}
|
65 |
+
private function parsePrelude()
|
66 |
+
{
|
67 |
+
$prelude = [];
|
68 |
+
$bytesRead = 0;
|
69 |
+
$calculatedCrc = null;
|
70 |
+
foreach (self::$preludeFormat as $key => $decodeFunction) {
|
71 |
+
if ($key === self::CRC_PRELUDE) {
|
72 |
+
$hashCopy = hash_copy($this->hashContext);
|
73 |
+
$calculatedCrc = hash_final($this->hashContext, true);
|
74 |
+
$this->hashContext = $hashCopy;
|
75 |
+
}
|
76 |
+
list($value, $numBytes) = $this->{$decodeFunction}();
|
77 |
+
$bytesRead += $numBytes;
|
78 |
+
$prelude[$key] = $value;
|
79 |
+
}
|
80 |
+
if (unpack('N', $calculatedCrc)[1] !== $prelude[self::CRC_PRELUDE]) {
|
81 |
+
throw new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\Exception\ParserException('Prelude checksum mismatch.');
|
82 |
+
}
|
83 |
+
return [$prelude, $bytesRead];
|
84 |
+
}
|
85 |
+
private function parseEvent()
|
86 |
+
{
|
87 |
+
$event = [];
|
88 |
+
if ($this->stream->tell() < $this->stream->getSize()) {
|
89 |
+
$this->hashContext = hash_init('crc32b');
|
90 |
+
$bytesLeft = $this->stream->getSize() - $this->stream->tell();
|
91 |
+
list($prelude, $numBytes) = $this->parsePrelude();
|
92 |
+
if ($prelude[self::LENGTH_TOTAL] > $bytesLeft) {
|
93 |
+
throw new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\Exception\ParserException('Message length too long.');
|
94 |
+
}
|
95 |
+
$bytesLeft -= $numBytes;
|
96 |
+
if ($prelude[self::LENGTH_HEADERS] > $bytesLeft) {
|
97 |
+
throw new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\Exception\ParserException('Headers length too long.');
|
98 |
+
}
|
99 |
+
list($event[self::HEADERS], $numBytes) = $this->parseHeaders($prelude[self::LENGTH_HEADERS]);
|
100 |
+
$event[self::PAYLOAD] = \DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Psr7\stream_for($this->readAndHashBytes($prelude[self::LENGTH_TOTAL] - self::BYTES_PRELUDE - $numBytes - self::BYTES_TRAILING));
|
101 |
+
$calculatedCrc = hash_final($this->hashContext, true);
|
102 |
+
$messageCrc = $this->stream->read(4);
|
103 |
+
if ($calculatedCrc !== $messageCrc) {
|
104 |
+
throw new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\Exception\ParserException('Message checksum mismatch.');
|
105 |
+
}
|
106 |
+
}
|
107 |
+
return $event;
|
108 |
+
}
|
109 |
+
// Iterator Functionality
|
110 |
+
/**
|
111 |
+
* @return array
|
112 |
+
*/
|
113 |
+
public function current()
|
114 |
+
{
|
115 |
+
return $this->currentEvent;
|
116 |
+
}
|
117 |
+
/**
|
118 |
+
* @return int
|
119 |
+
*/
|
120 |
+
public function key()
|
121 |
+
{
|
122 |
+
return $this->key;
|
123 |
+
}
|
124 |
+
public function next()
|
125 |
+
{
|
126 |
+
$this->currentPosition = $this->stream->tell();
|
127 |
+
if ($this->valid()) {
|
128 |
+
$this->key++;
|
129 |
+
$this->currentEvent = $this->parseEvent();
|
130 |
+
}
|
131 |
+
}
|
132 |
+
public function rewind()
|
133 |
+
{
|
134 |
+
$this->stream->rewind();
|
135 |
+
$this->key = 0;
|
136 |
+
$this->currentPosition = 0;
|
137 |
+
$this->currentEvent = $this->parseEvent();
|
138 |
+
}
|
139 |
+
/**
|
140 |
+
* @return bool
|
141 |
+
*/
|
142 |
+
public function valid()
|
143 |
+
{
|
144 |
+
return $this->currentPosition < $this->stream->getSize();
|
145 |
+
}
|
146 |
+
// Decoding Utilities
|
147 |
+
private function readAndHashBytes($num)
|
148 |
+
{
|
149 |
+
$bytes = $this->stream->read($num);
|
150 |
+
hash_update($this->hashContext, $bytes);
|
151 |
+
return $bytes;
|
152 |
+
}
|
153 |
+
private function decodeBooleanTrue()
|
154 |
+
{
|
155 |
+
return [true, 0];
|
156 |
+
}
|
157 |
+
private function decodeBooleanFalse()
|
158 |
+
{
|
159 |
+
return [false, 0];
|
160 |
+
}
|
161 |
+
private function uintToInt($val, $size)
|
162 |
+
{
|
163 |
+
$signedCap = pow(2, $size - 1);
|
164 |
+
if ($val > $signedCap) {
|
165 |
+
$val -= 2 * $signedCap;
|
166 |
+
}
|
167 |
+
return $val;
|
168 |
+
}
|
169 |
+
private function decodeInt8()
|
170 |
+
{
|
171 |
+
$val = (int) unpack('C', $this->readAndHashBytes(1))[1];
|
172 |
+
return [$this->uintToInt($val, 8), 1];
|
173 |
+
}
|
174 |
+
private function decodeUint8()
|
175 |
+
{
|
176 |
+
return [unpack('C', $this->readAndHashBytes(1))[1], 1];
|
177 |
+
}
|
178 |
+
private function decodeInt16()
|
179 |
+
{
|
180 |
+
$val = (int) unpack('n', $this->readAndHashBytes(2))[1];
|
181 |
+
return [$this->uintToInt($val, 16), 2];
|
182 |
+
}
|
183 |
+
private function decodeUint16()
|
184 |
+
{
|
185 |
+
return [unpack('n', $this->readAndHashBytes(2))[1], 2];
|
186 |
+
}
|
187 |
+
private function decodeInt32()
|
188 |
+
{
|
189 |
+
$val = (int) unpack('N', $this->readAndHashBytes(4))[1];
|
190 |
+
return [$this->uintToInt($val, 32), 4];
|
191 |
+
}
|
192 |
+
private function decodeUint32()
|
193 |
+
{
|
194 |
+
return [unpack('N', $this->readAndHashBytes(4))[1], 4];
|
195 |
+
}
|
196 |
+
private function decodeInt64()
|
197 |
+
{
|
198 |
+
$val = $this->unpackInt64($this->readAndHashBytes(8))[1];
|
199 |
+
return [$this->uintToInt($val, 64), 8];
|
200 |
+
}
|
201 |
+
private function decodeUint64()
|
202 |
+
{
|
203 |
+
return [$this->unpackInt64($this->readAndHashBytes(8))[1], 8];
|
204 |
+
}
|
205 |
+
private function unpackInt64($bytes)
|
206 |
+
{
|
207 |
+
if (version_compare(PHP_VERSION, '5.6.3', '<')) {
|
208 |
+
$d = unpack('N2', $bytes);
|
209 |
+
return [1 => $d[1] << 32 | $d[2]];
|
210 |
+
}
|
211 |
+
return unpack('J', $bytes);
|
212 |
+
}
|
213 |
+
private function decodeBytes($lengthBytes = 2)
|
214 |
+
{
|
215 |
+
if (!isset(self::$lengthFormatMap[$lengthBytes])) {
|
216 |
+
throw new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\Exception\ParserException('Undefined variable length format.');
|
217 |
+
}
|
218 |
+
$f = self::$lengthFormatMap[$lengthBytes];
|
219 |
+
list($len, $bytes) = $this->{$f}();
|
220 |
+
return [$this->readAndHashBytes($len), $len + $bytes];
|
221 |
+
}
|
222 |
+
private function decodeString($lengthBytes = 2)
|
223 |
+
{
|
224 |
+
if (!isset(self::$lengthFormatMap[$lengthBytes])) {
|
225 |
+
throw new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\Exception\ParserException('Undefined variable length format.');
|
226 |
+
}
|
227 |
+
$f = self::$lengthFormatMap[$lengthBytes];
|
228 |
+
list($len, $bytes) = $this->{$f}();
|
229 |
+
return [$this->readAndHashBytes($len), $len + $bytes];
|
230 |
+
}
|
231 |
+
private function decodeTimestamp()
|
232 |
+
{
|
233 |
+
list($val, $bytes) = $this->decodeInt64();
|
234 |
+
return [\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\DateTimeResult::createFromFormat('U.u', $val / 1000), $bytes];
|
235 |
+
}
|
236 |
+
private function decodeUuid()
|
237 |
+
{
|
238 |
+
$val = unpack('H32', $this->readAndHashBytes(16))[1];
|
239 |
+
return [substr($val, 0, 8) . '-' . substr($val, 8, 4) . '-' . substr($val, 12, 4) . '-' . substr($val, 16, 4) . '-' . substr($val, 20, 12), 16];
|
240 |
+
}
|
241 |
+
}
|
vendor/Aws3/Aws/Api/Parser/EventParsingIterator.php
ADDED
@@ -0,0 +1,81 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser;
|
4 |
+
|
5 |
+
use Iterator;
|
6 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\EventStreamDataException;
|
7 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\Exception\ParserException;
|
8 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\StructureShape;
|
9 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\StreamInterface;
|
10 |
+
/**
|
11 |
+
* @internal Implements a decoder for a binary encoded event stream that will
|
12 |
+
* decode, validate, and provide individual events from the stream.
|
13 |
+
*/
|
14 |
+
class EventParsingIterator implements \Iterator
|
15 |
+
{
|
16 |
+
/** @var StreamInterface */
|
17 |
+
private $decodingIterator;
|
18 |
+
/** @var StructureShape */
|
19 |
+
private $shape;
|
20 |
+
/** @var AbstractParser */
|
21 |
+
private $parser;
|
22 |
+
public function __construct(\DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\StreamInterface $stream, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\StructureShape $shape, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\AbstractParser $parser)
|
23 |
+
{
|
24 |
+
$this->decodingIterator = new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\DecodingEventStreamIterator($stream);
|
25 |
+
$this->shape = $shape;
|
26 |
+
$this->parser = $parser;
|
27 |
+
}
|
28 |
+
public function current()
|
29 |
+
{
|
30 |
+
return $this->parseEvent($this->decodingIterator->current());
|
31 |
+
}
|
32 |
+
public function key()
|
33 |
+
{
|
34 |
+
return $this->decodingIterator->key();
|
35 |
+
}
|
36 |
+
public function next()
|
37 |
+
{
|
38 |
+
$this->decodingIterator->next();
|
39 |
+
}
|
40 |
+
public function rewind()
|
41 |
+
{
|
42 |
+
$this->decodingIterator->rewind();
|
43 |
+
}
|
44 |
+
public function valid()
|
45 |
+
{
|
46 |
+
return $this->decodingIterator->valid();
|
47 |
+
}
|
48 |
+
private function parseEvent(array $event)
|
49 |
+
{
|
50 |
+
if (!empty($event['headers'][':message-type'])) {
|
51 |
+
if ($event['headers'][':message-type'] === 'error') {
|
52 |
+
return $this->parseError($event);
|
53 |
+
}
|
54 |
+
if ($event['headers'][':message-type'] !== 'event') {
|
55 |
+
throw new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\Exception\ParserException('Failed to parse unknown message type.');
|
56 |
+
}
|
57 |
+
}
|
58 |
+
if (empty($event['headers'][':event-type'])) {
|
59 |
+
throw new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\Exception\ParserException('Failed to parse without event type.');
|
60 |
+
}
|
61 |
+
$eventShape = $this->shape->getMember($event['headers'][':event-type']);
|
62 |
+
$parsedEvent = [];
|
63 |
+
foreach ($eventShape['members'] as $shape => $details) {
|
64 |
+
if (!empty($details['eventpayload'])) {
|
65 |
+
$payloadShape = $eventShape->getMember($shape);
|
66 |
+
if ($payloadShape['type'] === 'blob') {
|
67 |
+
$parsedEvent[$shape] = $event['payload'];
|
68 |
+
} else {
|
69 |
+
$parsedEvent[$shape] = $this->parser->parseMemberFromStream($event['payload'], $payloadShape, null);
|
70 |
+
}
|
71 |
+
} else {
|
72 |
+
$parsedEvent[$shape] = $event['headers'][$shape];
|
73 |
+
}
|
74 |
+
}
|
75 |
+
return [$event['headers'][':event-type'] => $parsedEvent];
|
76 |
+
}
|
77 |
+
private function parseError(array $event)
|
78 |
+
{
|
79 |
+
throw new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\EventStreamDataException($event['headers'][':error-code'], $event['headers'][':error-message']);
|
80 |
+
}
|
81 |
+
}
|
vendor/Aws3/Aws/Api/Parser/Exception/ParserException.php
CHANGED
@@ -2,6 +2,25 @@
|
|
2 |
|
3 |
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\Exception;
|
4 |
|
5 |
-
|
|
|
|
|
|
|
6 |
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
}
|
2 |
|
3 |
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\Exception;
|
4 |
|
5 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\HasMonitoringEventsTrait;
|
6 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\MonitoringEventsInterface;
|
7 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\ResponseContainerInterface;
|
8 |
+
class ParserException extends \RuntimeException implements \DeliciousBrains\WP_Offload_Media\Aws3\Aws\MonitoringEventsInterface, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\ResponseContainerInterface
|
9 |
{
|
10 |
+
use HasMonitoringEventsTrait;
|
11 |
+
private $response;
|
12 |
+
public function __construct($message = '', $code = 0, $previous = null, array $context = [])
|
13 |
+
{
|
14 |
+
$this->response = isset($context['response']) ? $context['response'] : null;
|
15 |
+
parent::__construct($message, $code, $previous);
|
16 |
+
}
|
17 |
+
/**
|
18 |
+
* Get the received HTTP response if any.
|
19 |
+
*
|
20 |
+
* @return ResponseInterface|null
|
21 |
+
*/
|
22 |
+
public function getResponse()
|
23 |
+
{
|
24 |
+
return $this->response;
|
25 |
+
}
|
26 |
}
|
vendor/Aws3/Aws/Api/Parser/JsonParser.php
CHANGED
@@ -39,6 +39,9 @@ class JsonParser
|
|
39 |
}
|
40 |
return $target;
|
41 |
case 'timestamp':
|
|
|
|
|
|
|
42 |
// The Unix epoch (or Unix time or POSIX time or Unix
|
43 |
// timestamp) is the number of seconds that have elapsed since
|
44 |
// January 1, 1970 (midnight UTC/GMT).
|
39 |
}
|
40 |
return $target;
|
41 |
case 'timestamp':
|
42 |
+
if (!empty($shape['timestampFormat']) && $shape['timestampFormat'] !== 'unixTimestamp') {
|
43 |
+
return new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\DateTimeResult($value);
|
44 |
+
}
|
45 |
// The Unix epoch (or Unix time or POSIX time or Unix
|
46 |
// timestamp) is the number of seconds that have elapsed since
|
47 |
// January 1, 1970 (midnight UTC/GMT).
|
vendor/Aws3/Aws/Api/Parser/JsonRpcParser.php
CHANGED
@@ -2,17 +2,18 @@
|
|
2 |
|
3 |
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser;
|
4 |
|
|
|
5 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Service;
|
6 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Result;
|
7 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface;
|
8 |
use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\ResponseInterface;
|
|
|
9 |
/**
|
10 |
* @internal Implements JSON-RPC parsing (e.g., DynamoDB)
|
11 |
*/
|
12 |
class JsonRpcParser extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\AbstractParser
|
13 |
{
|
14 |
use PayloadParserTrait;
|
15 |
-
private $parser;
|
16 |
/**
|
17 |
* @param Service $api Service description
|
18 |
* @param JsonParser $parser JSON body builder
|
@@ -25,7 +26,11 @@ class JsonRpcParser extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parse
|
|
25 |
public function __invoke(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface $command, \DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\ResponseInterface $response)
|
26 |
{
|
27 |
$operation = $this->api->getOperation($command->getName());
|
28 |
-
$result = null === $operation['output'] ? null : $this->
|
29 |
return new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Result($result ?: []);
|
30 |
}
|
|
|
|
|
|
|
|
|
31 |
}
|
2 |
|
3 |
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser;
|
4 |
|
5 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\StructureShape;
|
6 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Service;
|
7 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Result;
|
8 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface;
|
9 |
use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\ResponseInterface;
|
10 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\StreamInterface;
|
11 |
/**
|
12 |
* @internal Implements JSON-RPC parsing (e.g., DynamoDB)
|
13 |
*/
|
14 |
class JsonRpcParser extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\AbstractParser
|
15 |
{
|
16 |
use PayloadParserTrait;
|
|
|
17 |
/**
|
18 |
* @param Service $api Service description
|
19 |
* @param JsonParser $parser JSON body builder
|
26 |
public function __invoke(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface $command, \DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\ResponseInterface $response)
|
27 |
{
|
28 |
$operation = $this->api->getOperation($command->getName());
|
29 |
+
$result = null === $operation['output'] ? null : $this->parseMemberFromStream($response->getBody(), $operation->getOutput(), $response);
|
30 |
return new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Result($result ?: []);
|
31 |
}
|
32 |
+
public function parseMemberFromStream(\DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\StreamInterface $stream, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\StructureShape $member, $response)
|
33 |
+
{
|
34 |
+
return $this->parser->parse($member, $this->parseJson($stream, $response));
|
35 |
+
}
|
36 |
}
|
vendor/Aws3/Aws/Api/Parser/PayloadParserTrait.php
CHANGED
@@ -3,6 +3,7 @@
|
|
3 |
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser;
|
4 |
|
5 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\Exception\ParserException;
|
|
|
6 |
trait PayloadParserTrait
|
7 |
{
|
8 |
/**
|
@@ -12,11 +13,11 @@ trait PayloadParserTrait
|
|
12 |
*
|
13 |
* @return array
|
14 |
*/
|
15 |
-
private function parseJson($json)
|
16 |
{
|
17 |
$jsonPayload = json_decode($json, true);
|
18 |
if (JSON_ERROR_NONE !== json_last_error()) {
|
19 |
-
throw new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\Exception\ParserException('Error parsing JSON: ' . json_last_error_msg());
|
20 |
}
|
21 |
return $jsonPayload;
|
22 |
}
|
@@ -27,7 +28,7 @@ trait PayloadParserTrait
|
|
27 |
*
|
28 |
* @return \SimpleXMLElement
|
29 |
*/
|
30 |
-
private function parseXml($xml)
|
31 |
{
|
32 |
$priorSetting = libxml_use_internal_errors(true);
|
33 |
try {
|
@@ -37,7 +38,7 @@ trait PayloadParserTrait
|
|
37 |
throw new \RuntimeException($error->message);
|
38 |
}
|
39 |
} catch (\Exception $e) {
|
40 |
-
throw new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\Exception\ParserException("Error parsing XML: {$e->getMessage()}", 0, $e);
|
41 |
} finally {
|
42 |
libxml_use_internal_errors($priorSetting);
|
43 |
}
|
3 |
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser;
|
4 |
|
5 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\Exception\ParserException;
|
6 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\ResponseInterface;
|
7 |
trait PayloadParserTrait
|
8 |
{
|
9 |
/**
|
13 |
*
|
14 |
* @return array
|
15 |
*/
|
16 |
+
private function parseJson($json, $response)
|
17 |
{
|
18 |
$jsonPayload = json_decode($json, true);
|
19 |
if (JSON_ERROR_NONE !== json_last_error()) {
|
20 |
+
throw new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\Exception\ParserException('Error parsing JSON: ' . json_last_error_msg(), 0, null, ['response' => $response]);
|
21 |
}
|
22 |
return $jsonPayload;
|
23 |
}
|
28 |
*
|
29 |
* @return \SimpleXMLElement
|
30 |
*/
|
31 |
+
private function parseXml($xml, $response)
|
32 |
{
|
33 |
$priorSetting = libxml_use_internal_errors(true);
|
34 |
try {
|
38 |
throw new \RuntimeException($error->message);
|
39 |
}
|
40 |
} catch (\Exception $e) {
|
41 |
+
throw new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\Exception\ParserException("Error parsing XML: {$e->getMessage()}", 0, $e, ['response' => $response]);
|
42 |
} finally {
|
43 |
libxml_use_internal_errors($priorSetting);
|
44 |
}
|
vendor/Aws3/Aws/Api/Parser/QueryParser.php
CHANGED
@@ -3,17 +3,17 @@
|
|
3 |
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser;
|
4 |
|
5 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Service;
|
|
|
6 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Result;
|
7 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface;
|
8 |
use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\ResponseInterface;
|
|
|
9 |
/**
|
10 |
* @internal Parses query (XML) responses (e.g., EC2, SQS, and many others)
|
11 |
*/
|
12 |
class QueryParser extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\AbstractParser
|
13 |
{
|
14 |
use PayloadParserTrait;
|
15 |
-
/** @var XmlParser */
|
16 |
-
private $xmlParser;
|
17 |
/** @var bool */
|
18 |
private $honorResultWrapper;
|
19 |
/**
|
@@ -26,16 +26,21 @@ class QueryParser extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\
|
|
26 |
public function __construct(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Service $api, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\XmlParser $xmlParser = null, $honorResultWrapper = true)
|
27 |
{
|
28 |
parent::__construct($api);
|
29 |
-
$this->
|
30 |
$this->honorResultWrapper = $honorResultWrapper;
|
31 |
}
|
32 |
public function __invoke(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface $command, \DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\ResponseInterface $response)
|
33 |
{
|
34 |
$output = $this->api->getOperation($command->getName())->getOutput();
|
35 |
-
$xml = $this->parseXml($response->getBody());
|
36 |
if ($this->honorResultWrapper && $output['resultWrapper']) {
|
37 |
$xml = $xml->{$output['resultWrapper']};
|
38 |
}
|
39 |
-
return new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Result($this->
|
|
|
|
|
|
|
|
|
|
|
40 |
}
|
41 |
}
|
3 |
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser;
|
4 |
|
5 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Service;
|
6 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\StructureShape;
|
7 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Result;
|
8 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface;
|
9 |
use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\ResponseInterface;
|
10 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\StreamInterface;
|
11 |
/**
|
12 |
* @internal Parses query (XML) responses (e.g., EC2, SQS, and many others)
|
13 |
*/
|
14 |
class QueryParser extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\AbstractParser
|
15 |
{
|
16 |
use PayloadParserTrait;
|
|
|
|
|
17 |
/** @var bool */
|
18 |
private $honorResultWrapper;
|
19 |
/**
|
26 |
public function __construct(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Service $api, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\XmlParser $xmlParser = null, $honorResultWrapper = true)
|
27 |
{
|
28 |
parent::__construct($api);
|
29 |
+
$this->parser = $xmlParser ?: new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\XmlParser();
|
30 |
$this->honorResultWrapper = $honorResultWrapper;
|
31 |
}
|
32 |
public function __invoke(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface $command, \DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\ResponseInterface $response)
|
33 |
{
|
34 |
$output = $this->api->getOperation($command->getName())->getOutput();
|
35 |
+
$xml = $this->parseXml($response->getBody(), $response);
|
36 |
if ($this->honorResultWrapper && $output['resultWrapper']) {
|
37 |
$xml = $xml->{$output['resultWrapper']};
|
38 |
}
|
39 |
+
return new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Result($this->parser->parse($output, $xml));
|
40 |
+
}
|
41 |
+
public function parseMemberFromStream(\DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\StreamInterface $stream, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\StructureShape $member, $response)
|
42 |
+
{
|
43 |
+
$xml = $this->parseXml($stream, $response);
|
44 |
+
return $this->parser->parse($member, $xml);
|
45 |
}
|
46 |
}
|
vendor/Aws3/Aws/Api/Parser/RestJsonParser.php
CHANGED
@@ -5,14 +5,13 @@ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser;
|
|
5 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Service;
|
6 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\StructureShape;
|
7 |
use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\ResponseInterface;
|
|
|
8 |
/**
|
9 |
* @internal Implements REST-JSON parsing (e.g., Glacier, Elastic Transcoder)
|
10 |
*/
|
11 |
class RestJsonParser extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\AbstractRestParser
|
12 |
{
|
13 |
use PayloadParserTrait;
|
14 |
-
/** @var JsonParser */
|
15 |
-
private $parser;
|
16 |
/**
|
17 |
* @param Service $api Service description
|
18 |
* @param JsonParser $parser JSON body builder
|
@@ -24,9 +23,17 @@ class RestJsonParser extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Pars
|
|
24 |
}
|
25 |
protected function payload(\DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\ResponseInterface $response, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\StructureShape $member, array &$result)
|
26 |
{
|
27 |
-
$jsonBody = $this->parseJson($response->getBody());
|
28 |
if ($jsonBody) {
|
29 |
$result += $this->parser->parse($member, $jsonBody);
|
30 |
}
|
31 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32 |
}
|
5 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Service;
|
6 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\StructureShape;
|
7 |
use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\ResponseInterface;
|
8 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\StreamInterface;
|
9 |
/**
|
10 |
* @internal Implements REST-JSON parsing (e.g., Glacier, Elastic Transcoder)
|
11 |
*/
|
12 |
class RestJsonParser extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\AbstractRestParser
|
13 |
{
|
14 |
use PayloadParserTrait;
|
|
|
|
|
15 |
/**
|
16 |
* @param Service $api Service description
|
17 |
* @param JsonParser $parser JSON body builder
|
23 |
}
|
24 |
protected function payload(\DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\ResponseInterface $response, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\StructureShape $member, array &$result)
|
25 |
{
|
26 |
+
$jsonBody = $this->parseJson($response->getBody(), $response);
|
27 |
if ($jsonBody) {
|
28 |
$result += $this->parser->parse($member, $jsonBody);
|
29 |
}
|
30 |
}
|
31 |
+
public function parseMemberFromStream(\DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\StreamInterface $stream, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\StructureShape $member, $response)
|
32 |
+
{
|
33 |
+
$jsonBody = $this->parseJson($stream, $response);
|
34 |
+
if ($jsonBody) {
|
35 |
+
return $this->parser->parse($member, $jsonBody);
|
36 |
+
}
|
37 |
+
return [];
|
38 |
+
}
|
39 |
}
|
vendor/Aws3/Aws/Api/Parser/RestXmlParser.php
CHANGED
@@ -5,14 +5,13 @@ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser;
|
|
5 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\StructureShape;
|
6 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Service;
|
7 |
use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\ResponseInterface;
|
|
|
8 |
/**
|
9 |
* @internal Implements REST-XML parsing (e.g., S3, CloudFront, etc...)
|
10 |
*/
|
11 |
class RestXmlParser extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\AbstractRestParser
|
12 |
{
|
13 |
use PayloadParserTrait;
|
14 |
-
/** @var XmlParser */
|
15 |
-
private $parser;
|
16 |
/**
|
17 |
* @param Service $api Service description
|
18 |
* @param XmlParser $parser XML body parser
|
@@ -24,7 +23,11 @@ class RestXmlParser extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parse
|
|
24 |
}
|
25 |
protected function payload(\DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\ResponseInterface $response, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\StructureShape $member, array &$result)
|
26 |
{
|
27 |
-
$
|
28 |
-
|
|
|
|
|
|
|
|
|
29 |
}
|
30 |
}
|
5 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\StructureShape;
|
6 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Service;
|
7 |
use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\ResponseInterface;
|
8 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\StreamInterface;
|
9 |
/**
|
10 |
* @internal Implements REST-XML parsing (e.g., S3, CloudFront, etc...)
|
11 |
*/
|
12 |
class RestXmlParser extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\AbstractRestParser
|
13 |
{
|
14 |
use PayloadParserTrait;
|
|
|
|
|
15 |
/**
|
16 |
* @param Service $api Service description
|
17 |
* @param XmlParser $parser XML body parser
|
23 |
}
|
24 |
protected function payload(\DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\ResponseInterface $response, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\StructureShape $member, array &$result)
|
25 |
{
|
26 |
+
$result += $this->parseMemberFromStream($response->getBody(), $member, $response);
|
27 |
+
}
|
28 |
+
public function parseMemberFromStream(\DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\StreamInterface $stream, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\StructureShape $member, $response)
|
29 |
+
{
|
30 |
+
$xml = $this->parseXml($stream, $response);
|
31 |
+
return $this->parser->parse($member, $xml);
|
32 |
}
|
33 |
}
|
vendor/Aws3/Aws/Api/Parser/XmlParser.php
CHANGED
@@ -94,6 +94,9 @@ class XmlParser
|
|
94 |
}
|
95 |
private function parse_timestamp(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Shape $shape, $value)
|
96 |
{
|
|
|
|
|
|
|
97 |
return new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\DateTimeResult($value);
|
98 |
}
|
99 |
}
|
94 |
}
|
95 |
private function parse_timestamp(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Shape $shape, $value)
|
96 |
{
|
97 |
+
if (!empty($shape['timestampFormat']) && $shape['timestampFormat'] === 'unixTimestamp') {
|
98 |
+
return \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\DateTimeResult::fromEpoch((string) $value);
|
99 |
+
}
|
100 |
return new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\DateTimeResult($value);
|
101 |
}
|
102 |
}
|
vendor/Aws3/Aws/Api/Serializer/JsonBody.php
CHANGED
@@ -51,6 +51,9 @@ class JsonBody
|
|
51 |
$data[$valueShape['locationName'] ?: $k] = $this->format($valueShape, $v);
|
52 |
}
|
53 |
}
|
|
|
|
|
|
|
54 |
return $data;
|
55 |
case 'list':
|
56 |
$items = $shape->getMember();
|
@@ -70,7 +73,8 @@ class JsonBody
|
|
70 |
case 'blob':
|
71 |
return base64_encode($value);
|
72 |
case 'timestamp':
|
73 |
-
|
|
|
74 |
default:
|
75 |
return $value;
|
76 |
}
|
51 |
$data[$valueShape['locationName'] ?: $k] = $this->format($valueShape, $v);
|
52 |
}
|
53 |
}
|
54 |
+
if (empty($data)) {
|
55 |
+
return new \stdClass();
|
56 |
+
}
|
57 |
return $data;
|
58 |
case 'list':
|
59 |
$items = $shape->getMember();
|
73 |
case 'blob':
|
74 |
return base64_encode($value);
|
75 |
case 'timestamp':
|
76 |
+
$timestampFormat = !empty($shape['timestampFormat']) ? $shape['timestampFormat'] : 'unixTimestamp';
|
77 |
+
return \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\TimestampShape::format($value, $timestampFormat);
|
78 |
default:
|
79 |
return $value;
|
80 |
}
|
vendor/Aws3/Aws/Api/Serializer/QueryParamBuilder.php
CHANGED
@@ -102,7 +102,8 @@ class QueryParamBuilder
|
|
102 |
}
|
103 |
protected function format_timestamp(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\TimestampShape $shape, $value, $prefix, array &$query)
|
104 |
{
|
105 |
-
$
|
|
|
106 |
}
|
107 |
protected function format_boolean(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Shape $shape, $value, $prefix, array &$query)
|
108 |
{
|
102 |
}
|
103 |
protected function format_timestamp(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\TimestampShape $shape, $value, $prefix, array &$query)
|
104 |
{
|
105 |
+
$timestampFormat = !empty($shape['timestampFormat']) ? $shape['timestampFormat'] : 'iso8601';
|
106 |
+
$query[$prefix] = \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\TimestampShape::format($value, $timestampFormat);
|
107 |
}
|
108 |
protected function format_boolean(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Shape $shape, $value, $prefix, array &$query)
|
109 |
{
|
vendor/Aws3/Aws/Api/Serializer/RestSerializer.php
CHANGED
@@ -97,8 +97,9 @@ abstract class RestSerializer
|
|
97 |
}
|
98 |
private function applyHeader($name, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Shape $member, $value, array &$opts)
|
99 |
{
|
100 |
-
if ($member->getType()
|
101 |
-
$
|
|
|
102 |
}
|
103 |
if ($member['jsonvalue']) {
|
104 |
$value = json_encode($value);
|
@@ -124,8 +125,12 @@ abstract class RestSerializer
|
|
124 |
if ($member instanceof MapShape) {
|
125 |
$opts['query'] = isset($opts['query']) && is_array($opts['query']) ? $opts['query'] + $value : $value;
|
126 |
} elseif ($value !== null) {
|
127 |
-
|
|
|
128 |
$value = $value ? 'true' : 'false';
|
|
|
|
|
|
|
129 |
}
|
130 |
$opts['query'][$member['locationName'] ?: $name] = $value;
|
131 |
}
|
97 |
}
|
98 |
private function applyHeader($name, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Shape $member, $value, array &$opts)
|
99 |
{
|
100 |
+
if ($member->getType() === 'timestamp') {
|
101 |
+
$timestampFormat = !empty($member['timestampFormat']) ? $member['timestampFormat'] : 'rfc822';
|
102 |
+
$value = \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\TimestampShape::format($value, $timestampFormat);
|
103 |
}
|
104 |
if ($member['jsonvalue']) {
|
105 |
$value = json_encode($value);
|
125 |
if ($member instanceof MapShape) {
|
126 |
$opts['query'] = isset($opts['query']) && is_array($opts['query']) ? $opts['query'] + $value : $value;
|
127 |
} elseif ($value !== null) {
|
128 |
+
$type = $member->getType();
|
129 |
+
if ($type === 'boolean') {
|
130 |
$value = $value ? 'true' : 'false';
|
131 |
+
} elseif ($type === 'timestamp') {
|
132 |
+
$timestampFormat = !empty($member['timestampFormat']) ? $member['timestampFormat'] : 'iso8601';
|
133 |
+
$value = \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\TimestampShape::format($value, $timestampFormat);
|
134 |
}
|
135 |
$opts['query'][$member['locationName'] ?: $name] = $value;
|
136 |
}
|
vendor/Aws3/Aws/Api/Serializer/XmlBody.php
CHANGED
@@ -127,7 +127,8 @@ class XmlBody
|
|
127 |
private function add_timestamp(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\TimestampShape $shape, $name, $value, \XMLWriter $xml)
|
128 |
{
|
129 |
$this->startElement($shape, $name, $xml);
|
130 |
-
$
|
|
|
131 |
$xml->endElement();
|
132 |
}
|
133 |
private function add_boolean(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Shape $shape, $name, $value, \XMLWriter $xml)
|
127 |
private function add_timestamp(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\TimestampShape $shape, $name, $value, \XMLWriter $xml)
|
128 |
{
|
129 |
$this->startElement($shape, $name, $xml);
|
130 |
+
$timestampFormat = !empty($shape['timestampFormat']) ? $shape['timestampFormat'] : 'iso8601';
|
131 |
+
$xml->writeRaw(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\TimestampShape::format($value, $timestampFormat));
|
132 |
$xml->endElement();
|
133 |
}
|
134 |
private function add_boolean(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Shape $shape, $name, $value, \XMLWriter $xml)
|
vendor/Aws3/Aws/AwsClient.php
CHANGED
@@ -5,6 +5,9 @@ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws;
|
|
5 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\ApiProvider;
|
6 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\DocModel;
|
7 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Service;
|
|
|
|
|
|
|
8 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Signature\SignatureProvider;
|
9 |
use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Psr7\Uri;
|
10 |
/**
|
@@ -72,6 +75,11 @@ class AwsClient implements \DeliciousBrains\WP_Offload_Media\Aws3\Aws\AwsClientI
|
|
72 |
* `http_stats_receiver` option for this to have an effect; timer: (bool)
|
73 |
* Set to true to enable a command timer that reports the total wall clock
|
74 |
* time spent on an operation in seconds.
|
|
|
|
|
|
|
|
|
|
|
75 |
* - endpoint: (string) The full URI of the webservice. This is only
|
76 |
* required when connecting to a custom endpoint (e.g., a local version
|
77 |
* of S3).
|
@@ -154,6 +162,8 @@ class AwsClient implements \DeliciousBrains\WP_Offload_Media\Aws3\Aws\AwsClientI
|
|
154 |
$this->defaultRequestOptions = $config['http'];
|
155 |
$this->addSignatureMiddleware();
|
156 |
$this->addInvocationId();
|
|
|
|
|
157 |
if (isset($args['with_resolved'])) {
|
158 |
$args['with_resolved']($config);
|
159 |
}
|
@@ -227,6 +237,13 @@ class AwsClient implements \DeliciousBrains\WP_Offload_Media\Aws3\Aws\AwsClientI
|
|
227 |
$service = substr($klass, strrpos($klass, '\\') + 1, -6);
|
228 |
return [strtolower($service), "DeliciousBrains\\WP_Offload_Media\\Aws3\\Aws\\{$service}\\Exception\\{$service}Exception"];
|
229 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
230 |
private function addSignatureMiddleware()
|
231 |
{
|
232 |
$api = $this->getApi();
|
@@ -253,6 +270,13 @@ class AwsClient implements \DeliciousBrains\WP_Offload_Media\Aws3\Aws\AwsClientI
|
|
253 |
// Add invocation id to each request
|
254 |
$this->handlerList->prependSign(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Middleware::invocationId(), 'invocation-id');
|
255 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
256 |
/**
|
257 |
* Returns a service model and doc model with any necessary changes
|
258 |
* applied.
|
5 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\ApiProvider;
|
6 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\DocModel;
|
7 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Service;
|
8 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\ClientSideMonitoring\ApiCallAttemptMonitoringMiddleware;
|
9 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\ClientSideMonitoring\ApiCallMonitoringMiddleware;
|
10 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\ClientSideMonitoring\ConfigurationProvider;
|
11 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Signature\SignatureProvider;
|
12 |
use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Psr7\Uri;
|
13 |
/**
|
75 |
* `http_stats_receiver` option for this to have an effect; timer: (bool)
|
76 |
* Set to true to enable a command timer that reports the total wall clock
|
77 |
* time spent on an operation in seconds.
|
78 |
+
* - disable_host_prefix_injection: (bool) Set to true to disable host prefix
|
79 |
+
* injection logic for services that use it. This disables the entire
|
80 |
+
* prefix injection, including the portions supplied by user-defined
|
81 |
+
* parameters. Setting this flag will have no effect on services that do
|
82 |
+
* not use host prefix injection.
|
83 |
* - endpoint: (string) The full URI of the webservice. This is only
|
84 |
* required when connecting to a custom endpoint (e.g., a local version
|
85 |
* of S3).
|
162 |
$this->defaultRequestOptions = $config['http'];
|
163 |
$this->addSignatureMiddleware();
|
164 |
$this->addInvocationId();
|
165 |
+
$this->addClientSideMonitoring($args);
|
166 |
+
$this->addEndpointParameterMiddleware($args);
|
167 |
if (isset($args['with_resolved'])) {
|
168 |
$args['with_resolved']($config);
|
169 |
}
|
237 |
$service = substr($klass, strrpos($klass, '\\') + 1, -6);
|
238 |
return [strtolower($service), "DeliciousBrains\\WP_Offload_Media\\Aws3\\Aws\\{$service}\\Exception\\{$service}Exception"];
|
239 |
}
|
240 |
+
private function addEndpointParameterMiddleware($args)
|
241 |
+
{
|
242 |
+
if (empty($args['disable_host_prefix_injection'])) {
|
243 |
+
$list = $this->getHandlerList();
|
244 |
+
$list->appendBuild(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\EndpointParameterMiddleware::wrap($this->api), 'endpoint_parameter');
|
245 |
+
}
|
246 |
+
}
|
247 |
private function addSignatureMiddleware()
|
248 |
{
|
249 |
$api = $this->getApi();
|
270 |
// Add invocation id to each request
|
271 |
$this->handlerList->prependSign(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Middleware::invocationId(), 'invocation-id');
|
272 |
}
|
273 |
+
private function addClientSideMonitoring($args)
|
274 |
+
{
|
275 |
+
$options = \DeliciousBrains\WP_Offload_Media\Aws3\Aws\ClientSideMonitoring\ConfigurationProvider::defaultProvider($args);
|
276 |
+
$this->handlerList->appendBuild(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\ClientSideMonitoring\ApiCallMonitoringMiddleware::wrap($this->credentialProvider, $options, $this->region, $this->getApi()->getServiceId()), 'ApiCallMonitoringMiddleware');
|
277 |
+
$callAttemptMiddleware = \DeliciousBrains\WP_Offload_Media\Aws3\Aws\ClientSideMonitoring\ApiCallAttemptMonitoringMiddleware::wrap($this->credentialProvider, $options, $this->region, $this->getApi()->getServiceId());
|
278 |
+
$this->handlerList->appendAttempt($callAttemptMiddleware, 'ApiCallAttemptMonitoringMiddleware');
|
279 |
+
}
|
280 |
/**
|
281 |
* Returns a service model and doc model with any necessary changes
|
282 |
* applied.
|
vendor/Aws3/Aws/ClientResolver.php
CHANGED
@@ -22,7 +22,7 @@ class ClientResolver
|
|
22 |
private $argDefinitions;
|
23 |
/** @var array Map of types to a corresponding function */
|
24 |
private static $typeMap = ['resource' => 'is_resource', 'callable' => 'is_callable', 'int' => 'is_int', 'bool' => 'is_bool', 'string' => 'is_string', 'object' => 'is_object', 'array' => 'is_array'];
|
25 |
-
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' => 'DeliciousBrains\\WP_Offload_Media\\Aws3\\Aws\\Exception\\AwsException', 'internal' => true], 'scheme' => ['type' => 'value', 'valid' => ['string'], 'default' => 'https', 'doc' => 'URI scheme to use when connecting connect. The SDK will utilize "https" endpoints (i.e., utilize SSL/TLS connections) by default. You can attempt to connect to a service over an unencrypted "http" endpoint by setting ``scheme`` to "http".'], 'endpoint' => ['type' => 'value', 'valid' => ['string'], 'doc' => 'The full URI of the webservice. This is only required when connecting to a custom endpoint (e.g., a local version of S3).', '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' => [\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\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' => [\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Credentials\CredentialsInterface::class, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\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' => [\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Credentials\CredentialProvider::class, 'defaultProvider']], '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']]];
|
26 |
/**
|
27 |
* Gets an array of default client arguments, each argument containing a
|
28 |
* hash of the following:
|
22 |
private $argDefinitions;
|
23 |
/** @var array Map of types to a corresponding function */
|
24 |
private static $typeMap = ['resource' => 'is_resource', 'callable' => 'is_callable', 'int' => 'is_int', 'bool' => 'is_bool', 'string' => 'is_string', 'object' => 'is_object', 'array' => 'is_array'];
|
25 |
+
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' => 'DeliciousBrains\\WP_Offload_Media\\Aws3\\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' => [\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\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' => [\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Credentials\CredentialsInterface::class, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\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' => [\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Credentials\CredentialProvider::class, 'defaultProvider']], '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']]];
|
26 |
/**
|
27 |
* Gets an array of default client arguments, each argument containing a
|
28 |
* hash of the following:
|
vendor/Aws3/Aws/ClientSideMonitoring/AbstractMonitoringMiddleware.php
ADDED
@@ -0,0 +1,217 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\ClientSideMonitoring;
|
4 |
+
|
5 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface;
|
6 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\AwsException;
|
7 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\MonitoringEventsInterface;
|
8 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\ResponseContainerInterface;
|
9 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\ResultInterface;
|
10 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Promise;
|
11 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\RequestInterface;
|
12 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\ResponseInterface;
|
13 |
+
/**
|
14 |
+
* @internal
|
15 |
+
*/
|
16 |
+
abstract class AbstractMonitoringMiddleware implements \DeliciousBrains\WP_Offload_Media\Aws3\Aws\ClientSideMonitoring\MonitoringMiddlewareInterface
|
17 |
+
{
|
18 |
+
private static $socket;
|
19 |
+
private $nextHandler;
|
20 |
+
private $options;
|
21 |
+
protected $credentialProvider;
|
22 |
+
protected $region;
|
23 |
+
protected $service;
|
24 |
+
protected static function getAwsExceptionHeader(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\AwsException $e, $headerName)
|
25 |
+
{
|
26 |
+
$response = $e->getResponse();
|
27 |
+
if ($response !== null) {
|
28 |
+
$header = $response->getHeader($headerName);
|
29 |
+
if (!empty($header[0])) {
|
30 |
+
return $header[0];
|
31 |
+
}
|
32 |
+
}
|
33 |
+
return null;
|
34 |
+
}
|
35 |
+
protected static function getResultHeader(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\ResultInterface $result, $headerName)
|
36 |
+
{
|
37 |
+
if (isset($result['@metadata']['headers'][$headerName])) {
|
38 |
+
return $result['@metadata']['headers'][$headerName];
|
39 |
+
}
|
40 |
+
return null;
|
41 |
+
}
|
42 |
+
protected static function getExceptionHeader(\Exception $e, $headerName)
|
43 |
+
{
|
44 |
+
if ($e instanceof ResponseContainerInterface) {
|
45 |
+
$response = $e->getResponse();
|
46 |
+
if ($response instanceof ResponseInterface) {
|
47 |
+
$header = $response->getHeader($headerName);
|
48 |
+
if (!empty($header[0])) {
|
49 |
+
return $header[0];
|
50 |
+
}
|
51 |
+
}
|
52 |
+
}
|
53 |
+
return null;
|
54 |
+
}
|
55 |
+
/**
|
56 |
+
* Constructor stores the passed in handler and options.
|
57 |
+
*
|
58 |
+
* @param callable $handler
|
59 |
+
* @param callable $credentialProvider
|
60 |
+
* @param array $options
|
61 |
+
* @param $region
|
62 |
+
* @param $service
|
63 |
+
*/
|
64 |
+
public function __construct(callable $handler, callable $credentialProvider, $options, $region, $service)
|
65 |
+
{
|
66 |
+
$this->nextHandler = $handler;
|
67 |
+
$this->credentialProvider = $credentialProvider;
|
68 |
+
$this->options = $options;
|
69 |
+
$this->region = $region;
|
70 |
+
$this->service = $service;
|
71 |
+
}
|
72 |
+
/**
|
73 |
+
* Standard invoke pattern for middleware execution to be implemented by
|
74 |
+
* child classes.
|
75 |
+
*
|
76 |
+
* @param CommandInterface $cmd
|
77 |
+
* @param RequestInterface $request
|
78 |
+
* @return Promise\PromiseInterface
|
79 |
+
*/
|
80 |
+
public function __invoke(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface $cmd, \DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\RequestInterface $request)
|
81 |
+
{
|
82 |
+
$handler = $this->nextHandler;
|
83 |
+
$eventData = null;
|
84 |
+
$enabled = $this->isEnabled();
|
85 |
+
if ($enabled) {
|
86 |
+
$cmd['@http']['collect_stats'] = true;
|
87 |
+
$eventData = $this->populateRequestEventData($cmd, $request, $this->getNewEvent($cmd, $request));
|
88 |
+
}
|
89 |
+
$g = function ($value) use($eventData, $enabled) {
|
90 |
+
if ($enabled) {
|
91 |
+
$eventData = $this->populateResultEventData($value, $eventData);
|
92 |
+
$this->sendEventData($eventData);
|
93 |
+
if ($value instanceof MonitoringEventsInterface) {
|
94 |
+
$value->appendMonitoringEvent($eventData);
|
95 |
+
}
|
96 |
+
}
|
97 |
+
if ($value instanceof \Exception || $value instanceof \Throwable) {
|
98 |
+
return \DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Promise\rejection_for($value);
|
99 |
+
}
|
100 |
+
return $value;
|
101 |
+
};
|
102 |
+
return \DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Promise\promise_for($handler($cmd, $request))->then($g, $g);
|
103 |
+
}
|
104 |
+
private function getClientId()
|
105 |
+
{
|
106 |
+
return $this->unwrappedOptions()->getClientId();
|
107 |
+
}
|
108 |
+
private function getNewEvent(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface $cmd, \DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\RequestInterface $request)
|
109 |
+
{
|
110 |
+
$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') . ' ' . \DeliciousBrains\WP_Offload_Media\Aws3\Aws\default_user_agent(), 0, 256), 'Version' => 1];
|
111 |
+
return $event;
|
112 |
+
}
|
113 |
+
private function getPort()
|
114 |
+
{
|
115 |
+
return $this->unwrappedOptions()->getPort();
|
116 |
+
}
|
117 |
+
private function getRegion()
|
118 |
+
{
|
119 |
+
return $this->region;
|
120 |
+
}
|
121 |
+
private function getService()
|
122 |
+
{
|
123 |
+
return $this->service;
|
124 |
+
}
|
125 |
+
/**
|
126 |
+
* Returns enabled flag from options, unwrapping options if necessary.
|
127 |
+
*
|
128 |
+
* @return bool
|
129 |
+
*/
|
130 |
+
private function isEnabled()
|
131 |
+
{
|
132 |
+
return $this->unwrappedOptions()->isEnabled();
|
133 |
+
}
|
134 |
+
/**
|
135 |
+
* Returns $eventData array with information from the request and command.
|
136 |
+
*
|
137 |
+
* @param CommandInterface $cmd
|
138 |
+
* @param RequestInterface $request
|
139 |
+
* @param array $event
|
140 |
+
* @return array
|
141 |
+
*/
|
142 |
+
protected function populateRequestEventData(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface $cmd, \DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\RequestInterface $request, array $event)
|
143 |
+
{
|
144 |
+
$dataFormat = static::getRequestData($request);
|
145 |
+
foreach ($dataFormat as $eventKey => $value) {
|
146 |
+
if ($value !== null) {
|
147 |
+
$event[$eventKey] = $value;
|
148 |
+
}
|
149 |
+
}
|
150 |
+
return $event;
|
151 |
+
}
|
152 |
+
/**
|
153 |
+
* Returns $eventData array with information from the response, including
|
154 |
+
* the calculation for attempt latency.
|
155 |
+
*
|
156 |
+
* @param ResultInterface|\Exception $result
|
157 |
+
* @param array $event
|
158 |
+
* @return array
|
159 |
+
*/
|
160 |
+
protected function populateResultEventData($result, array $event)
|
161 |
+
{
|
162 |
+
$dataFormat = static::getResponseData($result);
|
163 |
+
foreach ($dataFormat as $eventKey => $value) {
|
164 |
+
if ($value !== null) {
|
165 |
+
$event[$eventKey] = $value;
|
166 |
+
}
|
167 |
+
}
|
168 |
+
return $event;
|
169 |
+
}
|
170 |
+
/**
|
171 |
+
* Creates a UDP socket resource and stores it with the class, or retrieves
|
172 |
+
* it if already instantiated and connected. Handles error-checking and
|
173 |
+
* re-connecting if necessary. If $forceNewConnection is set to true, a new
|
174 |
+
* socket will be created.
|
175 |
+
*
|
176 |
+
* @param bool $forceNewConnection
|
177 |
+
* @return Resource
|
178 |
+
*/
|
179 |
+
private function prepareSocket($forceNewConnection = false)
|
180 |
+
{
|
181 |
+
if (!is_resource(self::$socket) || $forceNewConnection || socket_last_error(self::$socket)) {
|
182 |
+
self::$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
|
183 |
+
socket_clear_error(self::$socket);
|
184 |
+
socket_connect(self::$socket, '127.0.0.1', $this->getPort());
|
185 |
+
}
|
186 |
+
return self::$socket;
|
187 |
+
}
|
188 |
+
/**
|
189 |
+
* Sends formatted monitoring event data via the UDP socket connection to
|
190 |
+
* the CSM agent endpoint.
|
191 |
+
*
|
192 |
+
* @param array $eventData
|
193 |
+
* @return int
|
194 |
+
*/
|
195 |
+
private function sendEventData(array $eventData)
|
196 |
+
{
|
197 |
+
$socket = $this->prepareSocket();
|
198 |
+
$datagram = json_encode($eventData);
|
199 |
+
$result = socket_write($socket, $datagram, strlen($datagram));
|
200 |
+
if ($result === false) {
|
201 |
+
$this->prepareSocket(true);
|
202 |
+
}
|
203 |
+
return $result;
|
204 |
+
}
|
205 |
+
/**
|
206 |
+
* Unwraps options, if needed, and returns them.
|
207 |
+
*
|
208 |
+
* @return ConfigurationInterface
|
209 |
+
*/
|
210 |
+
private function unwrappedOptions()
|
211 |
+
{
|
212 |
+
if (!$this->options instanceof ConfigurationInterface) {
|
213 |
+
$this->options = \DeliciousBrains\WP_Offload_Media\Aws3\Aws\ClientSideMonitoring\ConfigurationProvider::unwrap($this->options);
|
214 |
+
}
|
215 |
+
return $this->options;
|
216 |
+
}
|
217 |
+
}
|
vendor/Aws3/Aws/ClientSideMonitoring/ApiCallAttemptMonitoringMiddleware.php
ADDED
@@ -0,0 +1,181 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\ClientSideMonitoring;
|
4 |
+
|
5 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface;
|
6 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Credentials\CredentialsInterface;
|
7 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\AwsException;
|
8 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\ResponseContainerInterface;
|
9 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\ResultInterface;
|
10 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\RequestInterface;
|
11 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\ResponseInterface;
|
12 |
+
/**
|
13 |
+
* @internal
|
14 |
+
*/
|
15 |
+
class ApiCallAttemptMonitoringMiddleware extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\ClientSideMonitoring\AbstractMonitoringMiddleware
|
16 |
+
{
|
17 |
+
/**
|
18 |
+
* Standard middleware wrapper function with CSM options passed in.
|
19 |
+
*
|
20 |
+
* @param callable $credentialProvider
|
21 |
+
* @param mixed $options
|
22 |
+
* @param string $region
|
23 |
+
* @param string $service
|
24 |
+
* @return callable
|
25 |
+
*/
|
26 |
+
public static function wrap(callable $credentialProvider, $options, $region, $service)
|
27 |
+
{
|
28 |
+
return function (callable $handler) use($credentialProvider, $options, $region, $service) {
|
29 |
+
return new static($handler, $credentialProvider, $options, $region, $service);
|
30 |
+
};
|
31 |
+
}
|
32 |
+
/**
|
33 |
+
* {@inheritdoc}
|
34 |
+
*/
|
35 |
+
public static function getRequestData(\DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\RequestInterface $request)
|
36 |
+
{
|
37 |
+
return ['Fqdn' => $request->getUri()->getHost()];
|
38 |
+
}
|
39 |
+
/**
|
40 |
+
* {@inheritdoc}
|
41 |
+
*/
|
42 |
+
public static function getResponseData($klass)
|
43 |
+
{
|
44 |
+
if ($klass instanceof ResultInterface) {
|
45 |
+
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')];
|
46 |
+
}
|
47 |
+
if ($klass instanceof AwsException) {
|
48 |
+
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')];
|
49 |
+
}
|
50 |
+
if ($klass instanceof \Exception) {
|
51 |
+
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')];
|
52 |
+
}
|
53 |
+
throw new \InvalidArgumentException('Parameter must be an instance of ResultInterface, AwsException or Exception.');
|
54 |
+
}
|
55 |
+
private static function getResultAttemptLatency(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\ResultInterface $result)
|
56 |
+
{
|
57 |
+
if (isset($result['@metadata']['transferStats']['http'])) {
|
58 |
+
$attempt = end($result['@metadata']['transferStats']['http']);
|
59 |
+
if (isset($attempt['total_time'])) {
|
60 |
+
return (int) floor($attempt['total_time'] * 1000);
|
61 |
+
}
|
62 |
+
}
|
63 |
+
return null;
|
64 |
+
}
|
65 |
+
private static function getResultDestinationIp(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\ResultInterface $result)
|
66 |
+
{
|
67 |
+
if (isset($result['@metadata']['transferStats']['http'])) {
|
68 |
+
$attempt = end($result['@metadata']['transferStats']['http']);
|
69 |
+
if (isset($attempt['primary_ip'])) {
|
70 |
+
return $attempt['primary_ip'];
|
71 |
+
}
|
72 |
+
}
|
73 |
+
return null;
|
74 |
+
}
|
75 |
+
private static function getResultDnsLatency(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\ResultInterface $result)
|
76 |
+
{
|
77 |
+
if (isset($result['@metadata']['transferStats']['http'])) {
|
78 |
+
$attempt = end($result['@metadata']['transferStats']['http']);
|
79 |
+
if (isset($attempt['namelookup_time'])) {
|
80 |
+
return (int) floor($attempt['namelookup_time'] * 1000);
|
81 |
+
}
|
82 |
+
}
|
83 |
+
return null;
|
84 |
+
}
|
85 |
+
private static function getResultHttpStatusCode(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\ResultInterface $result)
|
86 |
+
{
|
87 |
+
return $result['@metadata']['statusCode'];
|
88 |
+
}
|
89 |
+
private static function getAwsExceptionAttemptLatency(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\AwsException $e)
|
90 |
+
{
|
91 |
+
$attempt = $e->getTransferInfo();
|
92 |
+
if (isset($attempt['total_time'])) {
|
93 |
+
return (int) floor($attempt['total_time'] * 1000);
|
94 |
+
}
|
95 |
+
return null;
|
96 |
+
}
|
97 |
+
private static function getAwsExceptionErrorCode(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\AwsException $e)
|
98 |
+
{
|
99 |
+
return $e->getAwsErrorCode();
|
100 |
+
}
|
101 |
+
private static function getAwsExceptionMessage(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\AwsException $e)
|
102 |
+
{
|
103 |
+
return $e->getAwsErrorMessage();
|
104 |
+
}
|
105 |
+
private static function getAwsExceptionDestinationIp(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\AwsException $e)
|
106 |
+
{
|
107 |
+
$attempt = $e->getTransferInfo();
|
108 |
+
if (isset($attempt['primary_ip'])) {
|
109 |
+
return $attempt['primary_ip'];
|
110 |
+
}
|
111 |
+
return null;
|
112 |
+
}
|
113 |
+
private static function getAwsExceptionDnsLatency(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\AwsException $e)
|
114 |
+
{
|
115 |
+
$attempt = $e->getTransferInfo();
|
116 |
+
if (isset($attempt['namelookup_time'])) {
|
117 |
+
return (int) floor($attempt['namelookup_time'] * 1000);
|
118 |
+
}
|
119 |
+
return null;
|
120 |
+
}
|
121 |
+
private static function getAwsExceptionHttpStatusCode(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\AwsException $e)
|
122 |
+
{
|
123 |
+
$response = $e->getResponse();
|
124 |
+
if ($response !== null) {
|
125 |
+
return $response->getStatusCode();
|
126 |
+
}
|
127 |
+
return null;
|
128 |
+
}
|
129 |
+
private static function getExceptionHttpStatusCode(\Exception $e)
|
130 |
+
{
|
131 |
+
if ($e instanceof ResponseContainerInterface) {
|
132 |
+
$response = $e->getResponse();
|
133 |
+
if ($response instanceof ResponseInterface) {
|
134 |
+
return $response->getStatusCode();
|
135 |
+
}
|
136 |
+
}
|
137 |
+
return null;
|
138 |
+
}
|
139 |
+
private static function getExceptionCode(\Exception $e)
|
140 |
+
{
|
141 |
+
if (!$e instanceof AwsException) {
|
142 |
+
return get_class($e);
|
143 |
+
}
|
144 |
+
return null;
|
145 |
+
}
|
146 |
+
private static function getExceptionMessage(\Exception $e)
|
147 |
+
{
|
148 |
+
if (!$e instanceof AwsException) {
|
149 |
+
return $e->getMessage();
|
150 |
+
}
|
151 |
+
return null;
|
152 |
+
}
|
153 |
+
/**
|
154 |
+
* {@inheritdoc}
|
155 |
+
*/
|
156 |
+
protected function populateRequestEventData(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface $cmd, \DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\RequestInterface $request, array $event)
|
157 |
+
{
|
158 |
+
$event = parent::populateRequestEventData($cmd, $request, $event);
|
159 |
+
$event['Type'] = 'ApiCallAttempt';
|
160 |
+
return $event;
|
161 |
+
}
|
162 |
+
/**
|
163 |
+
* {@inheritdoc}
|
164 |
+
*/
|
165 |
+
protected function populateResultEventData($result, array $event)
|
166 |
+
{
|
167 |
+
$event = parent::populateResultEventData($result, $event);
|
168 |
+
$provider = $this->credentialProvider;
|
169 |
+
/** @var CredentialsInterface $credentials */
|
170 |
+
$credentials = $provider()->wait();
|
171 |
+
$event['AccessKey'] = $credentials->getAccessKeyId();
|
172 |
+
$sessionToken = $credentials->getSecurityToken();
|
173 |
+
if ($sessionToken !== null) {
|
174 |
+
$event['SessionToken'] = $sessionToken;
|
175 |
+
}
|
176 |
+
if (empty($event['AttemptLatency'])) {
|
177 |
+
$event['AttemptLatency'] = (int) (floor(microtime(true) * 1000) - $event['Timestamp']);
|
178 |
+
}
|
179 |
+
return $event;
|
180 |
+
}
|
181 |
+
}
|
vendor/Aws3/Aws/ClientSideMonitoring/ApiCallMonitoringMiddleware.php
ADDED
@@ -0,0 +1,126 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\ClientSideMonitoring;
|
4 |
+
|
5 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface;
|
6 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\AwsException;
|
7 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\MonitoringEventsInterface;
|
8 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\ResultInterface;
|
9 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\RequestInterface;
|
10 |
+
/**
|
11 |
+
* @internal
|
12 |
+
*/
|
13 |
+
class ApiCallMonitoringMiddleware extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\ClientSideMonitoring\AbstractMonitoringMiddleware
|
14 |
+
{
|
15 |
+
/**
|
16 |
+
* Api Call Attempt event keys for each Api Call event key
|
17 |
+
*
|
18 |
+
* @var array
|
19 |
+
*/
|
20 |
+
private static $eventKeys = ['FinalAwsException' => 'AwsException', 'FinalAwsExceptionMessage' => 'AwsExceptionMessage', 'FinalSdkException' => 'SdkException', 'FinalSdkExceptionMessage' => 'SdkExceptionMessage', 'FinalHttpStatusCode' => 'HttpStatusCode'];
|
21 |
+
/**
|
22 |
+
* Standard middleware wrapper function with CSM options passed in.
|
23 |
+
*
|
24 |
+
* @param callable $credentialProvider
|
25 |
+
* @param mixed $options
|
26 |
+
* @param string $region
|
27 |
+
* @param string $service
|
28 |
+
* @return callable
|
29 |
+
*/
|
30 |
+
public static function wrap(callable $credentialProvider, $options, $region, $service)
|
31 |
+
{
|
32 |
+
return function (callable $handler) use($credentialProvider, $options, $region, $service) {
|
33 |
+
return new static($handler, $credentialProvider, $options, $region, $service);
|
34 |
+
};
|
35 |
+
}
|
36 |
+
/**
|
37 |
+
* {@inheritdoc}
|
38 |
+
*/
|
39 |
+
public static function getRequestData(\DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\RequestInterface $request)
|
40 |
+
{
|
41 |
+
return [];
|
42 |
+
}
|
43 |
+
/**
|
44 |
+
* {@inheritdoc}
|
45 |
+
*/
|
46 |
+
public static function getResponseData($klass)
|
47 |
+
{
|
48 |
+
if ($klass instanceof ResultInterface) {
|
49 |
+
$data = ['AttemptCount' => self::getResultAttemptCount($klass), 'MaxRetriesExceeded' => 0];
|
50 |
+
} elseif ($klass instanceof \Exception) {
|
51 |
+
$data = ['AttemptCount' => self::getExceptionAttemptCount($klass), 'MaxRetriesExceeded' => self::getMaxRetriesExceeded($klass)];
|
52 |
+
} else {
|
53 |
+
throw new \InvalidArgumentException('Parameter must be an instance of ResultInterface or Exception.');
|
54 |
+
}
|
55 |
+
return $data + self::getFinalAttemptData($klass);
|
56 |
+
}
|
57 |
+
private static function getResultAttemptCount(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\ResultInterface $result)
|
58 |
+
{
|
59 |
+
if (isset($result['@metadata']['transferStats']['http'])) {
|
60 |
+
return count($result['@metadata']['transferStats']['http']);
|
61 |
+
}
|
62 |
+
return 1;
|
63 |
+
}
|
64 |
+
private static function getExceptionAttemptCount(\Exception $e)
|
65 |
+
{
|
66 |
+
$attemptCount = 0;
|
67 |
+
if ($e instanceof MonitoringEventsInterface) {
|
68 |
+
foreach ($e->getMonitoringEvents() as $event) {
|
69 |
+
if (isset($event['Type']) && $event['Type'] === 'ApiCallAttempt') {
|
70 |
+
$attemptCount++;
|
71 |
+
}
|
72 |
+
}
|
73 |
+
}
|
74 |
+
return $attemptCount;
|
75 |
+
}
|
76 |
+
private static function getFinalAttemptData($klass)
|
77 |
+
{
|
78 |
+
$data = [];
|
79 |
+
if ($klass instanceof MonitoringEventsInterface) {
|
80 |
+
$finalAttempt = self::getFinalAttempt($klass->getMonitoringEvents());
|
81 |
+
if (!empty($finalAttempt)) {
|
82 |
+
foreach (self::$eventKeys as $callKey => $attemptKey) {
|
83 |
+
if (isset($finalAttempt[$attemptKey])) {
|
84 |
+
$data[$callKey] = $finalAttempt[$attemptKey];
|
85 |
+
}
|
86 |
+
}
|
87 |
+
}
|
88 |
+
}
|
89 |
+
return $data;
|
90 |
+
}
|
91 |
+
private static function getFinalAttempt(array $events)
|
92 |
+
{
|
93 |
+
for (end($events); key($events) !== null; prev($events)) {
|
94 |
+
$current = current($events);
|
95 |
+
if (isset($current['Type']) && $current['Type'] === 'ApiCallAttempt') {
|
96 |
+
return $current;
|
97 |
+
}
|
98 |
+
}
|
99 |
+
return null;
|
100 |
+
}
|
101 |
+
private static function getMaxRetriesExceeded($klass)
|
102 |
+
{
|
103 |
+
if ($klass instanceof AwsException && $klass->isMaxRetriesExceeded()) {
|
104 |
+
return 1;
|
105 |
+
}
|
106 |
+
return 0;
|
107 |
+
}
|
108 |
+
/**
|
109 |
+
* {@inheritdoc}
|
110 |
+
*/
|
111 |
+
protected function populateRequestEventData(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface $cmd, \DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\RequestInterface $request, array $event)
|
112 |
+
{
|
113 |
+
$event = parent::populateRequestEventData($cmd, $request, $event);
|
114 |
+
$event['Type'] = 'ApiCall';
|
115 |
+
return $event;
|
116 |
+
}
|
117 |
+
/**
|
118 |
+
* {@inheritdoc}
|
119 |
+
*/
|
120 |
+
protected function populateResultEventData($result, array $event)
|
121 |
+
{
|
122 |
+
$event = parent::populateResultEventData($result, $event);
|
123 |
+
$event['Latency'] = (int) (floor(microtime(true) * 1000) - $event['Timestamp']);
|
124 |
+
return $event;
|
125 |
+
}
|
126 |
+
}
|
vendor/Aws3/Aws/ClientSideMonitoring/Configuration.php
ADDED
@@ -0,0 +1,55 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\ClientSideMonitoring;
|
4 |
+
|
5 |
+
class Configuration implements \DeliciousBrains\WP_Offload_Media\Aws3\Aws\ClientSideMonitoring\ConfigurationInterface
|
6 |
+
{
|
7 |
+
private $clientId;
|
8 |
+
private $enabled;
|
9 |
+
private $port;
|
10 |
+
/**
|
11 |
+
* Constructs a new Configuration object with the specified CSM options set.
|
12 |
+
*
|
13 |
+
* @param mixed $enabled
|
14 |
+
* @param string|int $port
|
15 |
+
* @param string $clientId
|
16 |
+
*/
|
17 |
+
public function __construct($enabled, $port, $clientId = '')
|
18 |
+
{
|
19 |
+
$this->port = filter_var($port, FILTER_VALIDATE_INT);
|
20 |
+
if ($this->port === false) {
|
21 |
+
throw new \InvalidArgumentException("CSM 'port' value must be an integer!");
|
22 |
+
}
|
23 |
+
// Unparsable $enabled flag errors on the side of disabling CSM
|
24 |
+
$this->enabled = filter_var($enabled, FILTER_VALIDATE_BOOLEAN);
|
25 |
+
$this->clientId = trim($clientId);
|
26 |
+
}
|
27 |
+
/**
|
28 |
+
* {@inheritdoc}
|
29 |
+
*/
|
30 |
+
public function isEnabled()
|
31 |
+
{
|
32 |
+
return $this->enabled;
|
33 |
+
}
|
34 |
+
/**
|
35 |
+
* {@inheritdoc}
|
36 |
+
*/
|
37 |
+
public function getClientId()
|
38 |
+
{
|
39 |
+
return $this->clientId;
|
40 |
+
}
|
41 |
+
/**
|
42 |
+
* {@inheritdoc}
|
43 |
+
*/
|
44 |
+
public function getPort()
|
45 |
+
{
|
46 |
+
return $this->port;
|
47 |
+
}
|
48 |
+
/**
|
49 |
+
* {@inheritdoc}
|
50 |
+
*/
|
51 |
+
public function toArray()
|
52 |
+
{
|
53 |
+
return ['client_id' => $this->getClientId(), 'enabled' => $this->isEnabled(), 'port' => $this->getPort()];
|
54 |
+
}
|
55 |
+
}
|
vendor/Aws3/Aws/ClientSideMonitoring/ConfigurationInterface.php
ADDED
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\ClientSideMonitoring;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Provides access to client-side monitoring configuration options:
|
7 |
+
* 'client_id', 'enabled', 'port'
|
8 |
+
*/
|
9 |
+
interface ConfigurationInterface
|
10 |
+
{
|
11 |
+
/**
|
12 |
+
* Checks whether or not client-side monitoring is enabled.
|
13 |
+
*
|
14 |
+
* @return bool
|
15 |
+
*/
|
16 |
+
public function isEnabled();
|
17 |
+
/**
|
18 |
+
* Returns the Client ID, if available.
|
19 |
+
*
|
20 |
+
* @return string|null
|
21 |
+
*/
|
22 |
+
public function getClientId();
|
23 |
+
/**
|
24 |
+
* Returns the configured port.
|
25 |
+
*
|
26 |
+
* @return int|null
|
27 |
+
*/
|
28 |
+
public function getPort();
|
29 |
+
/**
|
30 |
+
* Returns the configuration as an associative array.
|
31 |
+
*
|
32 |
+
* @return array
|
33 |
+
*/
|
34 |
+
public function toArray();
|
35 |
+
}
|
vendor/Aws3/Aws/ClientSideMonitoring/ConfigurationProvider.php
ADDED
@@ -0,0 +1,272 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\ClientSideMonitoring;
|
4 |
+
|
5 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\CacheInterface;
|
6 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\ClientSideMonitoring\Exception\ConfigurationException;
|
7 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Promise;
|
8 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Promise\PromiseInterface;
|
9 |
+
/**
|
10 |
+
* A configuration provider is a function that accepts no arguments and returns
|
11 |
+
* a promise that is fulfilled with a {@see \Aws\ClientSideMonitoring\ConfigurationInterface}
|
12 |
+
* or rejected with an {@see \Aws\ClientSideMonitoring\Exception\ConfigurationException}.
|
13 |
+
*
|
14 |
+
* <code>
|
15 |
+
* use Aws\ClientSideMonitoring\ConfigurationProvider;
|
16 |
+
* $provider = ConfigurationProvider::defaultProvider();
|
17 |
+
* // Returns a ConfigurationInterface or throws.
|
18 |
+
* $config = $provider()->wait();
|
19 |
+
* </code>
|
20 |
+
*
|
21 |
+
* Configuration providers can be composed to create configuration using
|
22 |
+
* conditional logic that can create different configurations in different
|
23 |
+
* environments. You can compose multiple providers into a single provider using
|
24 |
+
* {@see Aws\ClientSideMonitoring\ConfigurationProvider::chain}. This function
|
25 |
+
* accepts providers as variadic arguments and returns a new function that will
|
26 |
+
* invoke each provider until a successful configuration is returned.
|
27 |
+
*
|
28 |
+
* <code>
|
29 |
+
* // First try an INI file at this location.
|
30 |
+
* $a = ConfigurationProvider::ini(null, '/path/to/file.ini');
|
31 |
+
* // Then try an INI file at this location.
|
32 |
+
* $b = ConfigurationProvider::ini(null, '/path/to/other-file.ini');
|
33 |
+
* // Then try loading from environment variables.
|
34 |
+
* $c = ConfigurationProvider::env();
|
35 |
+
* // Combine the three providers together.
|
36 |
+
* $composed = ConfigurationProvider::chain($a, $b, $c);
|
37 |
+
* // Returns a promise that is fulfilled with a configuration or throws.
|
38 |
+
* $promise = $composed();
|
39 |
+
* // Wait on the configuration to resolve.
|
40 |
+
* $config = $promise->wait();
|
41 |
+
* </code>
|
42 |
+
*/
|
43 |
+
class ConfigurationProvider
|
44 |
+
{
|
45 |
+
const CACHE_KEY = 'aws_cached_csm_config';
|
46 |
+
const DEFAULT_CLIENT_ID = '';
|
47 |
+
const DEFAULT_ENABLED = false;
|
48 |
+
const DEFAULT_PORT = 31000;
|
49 |
+
const ENV_CLIENT_ID = 'AWS_CSM_CLIENT_ID';
|
50 |
+
const ENV_ENABLED = 'AWS_CSM_ENABLED';
|
51 |
+
const ENV_PORT = 'AWS_CSM_PORT';
|
52 |
+
const ENV_PROFILE = 'AWS_PROFILE';
|
53 |
+
/**
|
54 |
+
* Wraps a credential provider and saves provided credentials in an
|
55 |
+
* instance of Aws\CacheInterface. Forwards calls when no credentials found
|
56 |
+
* in cache and updates cache with the results.
|
57 |
+
*
|
58 |
+
* @param callable $provider Credentials provider function to wrap
|
59 |
+
* @param CacheInterface $cache Cache to store credentials
|
60 |
+
* @param string|null $cacheKey (optional) Cache key to use
|
61 |
+
*
|
62 |
+
* @return callable
|
63 |
+
*/
|
64 |
+
public static function cache(callable $provider, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\CacheInterface $cache, $cacheKey = null)
|
65 |
+
{
|
66 |
+
$cacheKey = $cacheKey ?: self::CACHE_KEY;
|
67 |
+
return function () use($provider, $cache, $cacheKey) {
|
68 |
+
$found = $cache->get($cacheKey);
|
69 |
+
if ($found instanceof ConfigurationInterface) {
|
70 |
+
return \DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Promise\promise_for($found);
|
71 |
+
}
|
72 |
+
return $provider()->then(function (\DeliciousBrains\WP_Offload_Media\Aws3\Aws\ClientSideMonitoring\ConfigurationInterface $config) use($cache, $cacheKey) {
|
73 |
+
$cache->set($cacheKey, $config);
|
74 |
+
return $config;
|
75 |
+
});
|
76 |
+
};
|
77 |
+
}
|
78 |
+
/**
|
79 |
+
* Creates an aggregate credentials provider that invokes the provided
|
80 |
+
* variadic providers one after the other until a provider returns
|
81 |
+
* credentials.
|
82 |
+
*
|
83 |
+
* @return callable
|
84 |
+
*/
|
85 |
+
public static function chain()
|
86 |
+
{
|
87 |
+
$links = func_get_args();
|
88 |
+
if (empty($links)) {
|
89 |
+
throw new \InvalidArgumentException('No providers in chain');
|
90 |
+
}
|
91 |
+
return function () use($links) {
|
92 |
+
/** @var callable $parent */
|
93 |
+
$parent = array_shift($links);
|
94 |
+
$promise = $parent();
|
95 |
+
while ($next = array_shift($links)) {
|
96 |
+
$promise = $promise->otherwise($next);
|
97 |
+
}
|
98 |
+
return $promise;
|
99 |
+
};
|
100 |
+
}
|
101 |
+
/**
|
102 |
+
* Create a default CSM config provider that first checks for environment
|
103 |
+
* variables, then checks for a specified profile in ~/.aws/config, then
|
104 |
+
* checks for the "aws_csm" profile in ~/.aws/config, and failing those uses
|
105 |
+
* a default fallback set of configuration options.
|
106 |
+
*
|
107 |
+
* This provider is automatically wrapped in a memoize function that caches
|
108 |
+
* previously provided config options.
|
109 |
+
*
|
110 |
+
* @param array $config Optional array of ecs/instance profile credentials
|
111 |
+
* provider options.
|
112 |
+
*
|
113 |
+
* @return callable
|
114 |
+
*/
|
115 |
+
public static function defaultProvider(array $config = [])
|
116 |
+
{
|
117 |
+
$configProviders = [self::env(), self::ini(), self::fallback()];
|
118 |
+
$memo = self::memoize(call_user_func_array('self::chain', $configProviders));
|
119 |
+
if (isset($config['csm']) && $config['csm'] instanceof CacheInterface) {
|
120 |
+
return self::cache($memo, $config['csm'], self::CACHE_KEY);
|
121 |
+
}
|
122 |
+
return $memo;
|
123 |
+
}
|
124 |
+
/**
|
125 |
+
* Provider that creates CSM config from environment variables.
|
126 |
+
*
|
127 |
+
* @return callable
|
128 |
+
*/
|
129 |
+
public static function env()
|
130 |
+
{
|
131 |
+
return function () {
|
132 |
+
// Use credentials from environment variables, if available
|
133 |
+
$enabled = getenv(self::ENV_ENABLED);
|
134 |
+
if ($enabled !== false) {
|
135 |
+
return \DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Promise\promise_for(new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\ClientSideMonitoring\Configuration($enabled, getenv(self::ENV_PORT) ?: self::DEFAULT_PORT, getenv(self::ENV_CLIENT_ID) ?: self::DEFAULT_CLIENT_ID));
|
136 |
+
}
|
137 |
+
return self::reject('Could not find environment variable CSM config' . ' in ' . self::ENV_ENABLED . '/' . self::ENV_PORT . '/' . self::ENV_CLIENT_ID);
|
138 |
+
};
|
139 |
+
}
|
140 |
+
/**
|
141 |
+
* Fallback config options when other sources are not set.
|
142 |
+
*
|
143 |
+
* @return callable
|
144 |
+
*/
|
145 |
+
public static function fallback()
|
146 |
+
{
|
147 |
+
return function () {
|
148 |
+
return \DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Promise\promise_for(new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\ClientSideMonitoring\Configuration(self::DEFAULT_ENABLED, self::DEFAULT_PORT, self::DEFAULT_CLIENT_ID));
|
149 |
+
};
|
150 |
+
}
|
151 |
+
/**
|
152 |
+
* Gets the environment's HOME directory if available.
|
153 |
+
*
|
154 |
+
* @return null|string
|
155 |
+
*/
|
156 |
+
private static function getHomeDir()
|
157 |
+
{
|
158 |
+
// On Linux/Unix-like systems, use the HOME environment variable
|
159 |
+
if ($homeDir = getenv('HOME')) {
|
160 |
+
return $homeDir;
|
161 |
+
}
|
162 |
+
// Get the HOMEDRIVE and HOMEPATH values for Windows hosts
|
163 |
+
$homeDrive = getenv('HOMEDRIVE');
|
164 |
+
$homePath = getenv('HOMEPATH');
|
165 |
+
return $homeDrive && $homePath ? $homeDrive . $homePath : null;
|
166 |
+
}
|
167 |
+
/**
|
168 |
+
* CSM config provider that creates CSM config using an ini file stored
|
169 |
+
* in the current user's home directory.
|
170 |
+
*
|
171 |
+
* @param string|null $profile Profile to use. If not specified will use
|
172 |
+
* the "aws_csm" profile in "~/.aws/config".
|
173 |
+
* @param string|null $filename If provided, uses a custom filename rather
|
174 |
+
* than looking in the home directory.
|
175 |
+
*
|
176 |
+
* @return callable
|
177 |
+
*/
|
178 |
+
public static function ini($profile = null, $filename = null)
|
179 |
+
{
|
180 |
+
$filename = $filename ?: self::getHomeDir() . '/.aws/config';
|
181 |
+
$profile = $profile ?: (getenv(self::ENV_PROFILE) ?: 'aws_csm');
|
182 |
+
return function () use($profile, $filename) {
|
183 |
+
if (!is_readable($filename)) {
|
184 |
+
return self::reject("Cannot read CSM config from {$filename}");
|
185 |
+
}
|
186 |
+
$data = parse_ini_file($filename, true);
|
187 |
+
if ($data === false) {
|
188 |
+
return self::reject("Invalid config file: {$filename}");
|
189 |
+
}
|
190 |
+
if (!isset($data[$profile])) {
|
191 |
+
return self::reject("'{$profile}' not found in config file");
|
192 |
+
}
|
193 |
+
if (!isset($data[$profile]['csm_enabled'])) {
|
194 |
+
return self::reject("Required CSM config values not present in \n INI profile '{$profile}' ({$filename})");
|
195 |
+
}
|
196 |
+
// port is optional
|
197 |
+
if (empty($data[$profile]['csm_port'])) {
|
198 |
+
$data[$profile]['csm_port'] = self::DEFAULT_PORT;
|
199 |
+
}
|
200 |
+
// client_id is optional
|
201 |
+
if (empty($data[$profile]['csm_client_id'])) {
|
202 |
+
$data[$profile]['csm_client_id'] = self::DEFAULT_CLIENT_ID;
|
203 |
+
}
|
204 |
+
return \DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Promise\promise_for(new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\ClientSideMonitoring\Configuration($data[$profile]['csm_enabled'], $data[$profile]['csm_port'], $data[$profile]['csm_client_id']));
|
205 |
+
};
|
206 |
+
}
|
207 |
+
/**
|
208 |
+
* Wraps a CSM config provider and caches previously provided configuration.
|
209 |
+
*
|
210 |
+
* Ensures that cached configuration is refreshed when it expires.
|
211 |
+
*
|
212 |
+
* @param callable $provider CSM config provider function to wrap.
|
213 |
+
*
|
214 |
+
* @return callable
|
215 |
+
*/
|
216 |
+
public static function memoize(callable $provider)
|
217 |
+
{
|
218 |
+
return function () use($provider) {
|
219 |
+
static $result;
|
220 |
+
static $isConstant;
|
221 |
+
// Constant config will be returned constantly.
|
222 |
+
if ($isConstant) {
|
223 |
+
return $result;
|
224 |
+
}
|
225 |
+
// Create the initial promise that will be used as the cached value
|
226 |
+
// until it expires.
|
227 |
+
if (null === $result) {
|
228 |
+
$result = $provider();
|
229 |
+
}
|
230 |
+
// Return config and set flag that provider is already set
|
231 |
+
return $result->then(function (\DeliciousBrains\WP_Offload_Media\Aws3\Aws\ClientSideMonitoring\ConfigurationInterface $config) use(&$isConstant) {
|
232 |
+
$isConstant = true;
|
233 |
+
return $config;
|
234 |
+
});
|
235 |
+
};
|
236 |
+
}
|
237 |
+
/**
|
238 |
+
* Reject promise with standardized exception.
|
239 |
+
*
|
240 |
+
* @param $msg
|
241 |
+
* @return Promise\RejectedPromise
|
242 |
+
*/
|
243 |
+
private static function reject($msg)
|
244 |
+
{
|
245 |
+
return new \DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Promise\RejectedPromise(new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\ClientSideMonitoring\Exception\ConfigurationException($msg));
|
246 |
+
}
|
247 |
+
/**
|
248 |
+
* Unwraps a configuration object in whatever valid form it is in,
|
249 |
+
* always returning a ConfigurationInterface object.
|
250 |
+
*
|
251 |
+
* @param mixed $config
|
252 |
+
* @return ConfigurationInterface
|
253 |
+
* @throws \InvalidArgumentException
|
254 |
+
*/
|
255 |
+
public static function unwrap($config)
|
256 |
+
{
|
257 |
+
if (is_callable($config)) {
|
258 |
+
$config = $config();
|
259 |
+
}
|
260 |
+
if ($config instanceof PromiseInterface) {
|
261 |
+
$config = $config->wait();
|
262 |
+
}
|
263 |
+
if ($config instanceof ConfigurationInterface) {
|
264 |
+
return $config;
|
265 |
+
} elseif (is_array($config) && isset($config['enabled'])) {
|
266 |
+
$client_id = isset($config['client_id']) ? $config['client_id'] : self::DEFAULT_CLIENT_ID;
|
267 |
+
$port = isset($config['port']) ? $config['port'] : self::DEFAULT_PORT;
|
268 |
+
return new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\ClientSideMonitoring\Configuration($config['enabled'], $port, $client_id);
|
269 |
+
}
|
270 |
+
throw new \InvalidArgumentException('Not a valid CSM configuration ' . 'argument.');
|
271 |
+
}
|
272 |
+
}
|
vendor/Aws3/Aws/ClientSideMonitoring/Exception/ConfigurationException.php
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\ClientSideMonitoring\Exception;
|
4 |
+
|
5 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\HasMonitoringEventsTrait;
|
6 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\MonitoringEventsInterface;
|
7 |
+
/**
|
8 |
+
* Represents an error interacting with configuration for client-side monitoring.
|
9 |
+
*/
|
10 |
+
class ConfigurationException extends \RuntimeException implements \DeliciousBrains\WP_Offload_Media\Aws3\Aws\MonitoringEventsInterface
|
11 |
+
{
|
12 |
+
use HasMonitoringEventsTrait;
|
13 |
+
}
|
vendor/Aws3/Aws/ClientSideMonitoring/MonitoringMiddlewareInterface.php
ADDED
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\ClientSideMonitoring;
|
4 |
+
|
5 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface;
|
6 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\AwsException;
|
7 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\ResultInterface;
|
8 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Psr7\Request;
|
9 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\RequestInterface;
|
10 |
+
/**
|
11 |
+
* @internal
|
12 |
+
*/
|
13 |
+
interface MonitoringMiddlewareInterface
|
14 |
+
{
|
15 |
+
/**
|
16 |
+
* Data for event properties to be sent to the monitoring agent.
|
17 |
+
*
|
18 |
+
* @param RequestInterface $request
|
19 |
+
* @return array
|
20 |
+
*/
|
21 |
+
public static function getRequestData(\DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\RequestInterface $request);
|
22 |
+
/**
|
23 |
+
* Data for event properties to be sent to the monitoring agent.
|
24 |
+
*
|
25 |
+
* @param ResultInterface|AwsException|\Exception $klass
|
26 |
+
* @return array
|
27 |
+
*/
|
28 |
+
public static function getResponseData($klass);
|
29 |
+
public function __invoke(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface $cmd, \DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\RequestInterface $request);
|
30 |
+
}
|
vendor/Aws3/Aws/Credentials/CredentialProvider.php
CHANGED
@@ -141,6 +141,10 @@ class CredentialProvider
|
|
141 |
}
|
142 |
// Refresh the result and forward the promise.
|
143 |
return $result = $provider();
|
|
|
|
|
|
|
|
|
144 |
});
|
145 |
};
|
146 |
}
|
@@ -246,7 +250,7 @@ class CredentialProvider
|
|
246 |
if (!is_readable($filename)) {
|
247 |
return self::reject("Cannot read credentials from {$filename}");
|
248 |
}
|
249 |
-
$data = parse_ini_file($filename, true);
|
250 |
if ($data === false) {
|
251 |
return self::reject("Invalid credentials file: {$filename}");
|
252 |
}
|
141 |
}
|
142 |
// Refresh the result and forward the promise.
|
143 |
return $result = $provider();
|
144 |
+
})->otherwise(function ($reason) use(&$result) {
|
145 |
+
// Cleanup rejected promise.
|
146 |
+
$result = null;
|
147 |
+
return new \DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Promise\RejectedPromise($reason);
|
148 |
});
|
149 |
};
|
150 |
}
|
250 |
if (!is_readable($filename)) {
|
251 |
return self::reject("Cannot read credentials from {$filename}");
|
252 |
}
|
253 |
+
$data = parse_ini_file($filename, true, INI_SCANNER_RAW);
|
254 |
if ($data === false) {
|
255 |
return self::reject("Invalid credentials file: {$filename}");
|
256 |
}
|
vendor/Aws3/Aws/Endpoint/PartitionEndpointProvider.php
CHANGED
@@ -2,6 +2,7 @@
|
|
2 |
|
3 |
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Endpoint;
|
4 |
|
|
|
5 |
class PartitionEndpointProvider
|
6 |
{
|
7 |
/** @var Partition[] */
|
@@ -43,7 +44,7 @@ class PartitionEndpointProvider
|
|
43 |
* the provided name can be found.
|
44 |
*
|
45 |
* @param string $name
|
46 |
-
*
|
47 |
* @return Partition|null
|
48 |
*/
|
49 |
public function getPartitionByName($name)
|
@@ -62,6 +63,32 @@ class PartitionEndpointProvider
|
|
62 |
public static function defaultProvider()
|
63 |
{
|
64 |
$data = \DeliciousBrains\WP_Offload_Media\Aws3\Aws\load_compiled_json(__DIR__ . '/../data/endpoints.json');
|
65 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
66 |
}
|
67 |
}
|
2 |
|
3 |
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Endpoint;
|
4 |
|
5 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\JmesPath\Env;
|
6 |
class PartitionEndpointProvider
|
7 |
{
|
8 |
/** @var Partition[] */
|
44 |
* the provided name can be found.
|
45 |
*
|
46 |
* @param string $name
|
47 |
+
*
|
48 |
* @return Partition|null
|
49 |
*/
|
50 |
public function getPartitionByName($name)
|
63 |
public static function defaultProvider()
|
64 |
{
|
65 |
$data = \DeliciousBrains\WP_Offload_Media\Aws3\Aws\load_compiled_json(__DIR__ . '/../data/endpoints.json');
|
66 |
+
$prefixData = \DeliciousBrains\WP_Offload_Media\Aws3\Aws\load_compiled_json(__DIR__ . '/../data/endpoints_prefix_history.json');
|
67 |
+
$mergedData = self::mergePrefixData($data, $prefixData);
|
68 |
+
return new self($mergedData['partitions']);
|
69 |
+
}
|
70 |
+
/**
|
71 |
+
* Copy endpoint data for other prefixes used by a given service
|
72 |
+
*
|
73 |
+
* @param $data
|
74 |
+
* @param $prefixData
|
75 |
+
* @return array
|
76 |
+
*/
|
77 |
+
public static function mergePrefixData($data, $prefixData)
|
78 |
+
{
|
79 |
+
$prefixGroups = $prefixData['prefix-groups'];
|
80 |
+
foreach ($data["partitions"] as $index => $partition) {
|
81 |
+
foreach ($prefixGroups as $current => $old) {
|
82 |
+
$serviceData = \DeliciousBrains\WP_Offload_Media\Aws3\JmesPath\Env::search("services.{$current}", $partition);
|
83 |
+
if (!empty($serviceData)) {
|
84 |
+
foreach ($old as $prefix) {
|
85 |
+
if (empty(\DeliciousBrains\WP_Offload_Media\Aws3\JmesPath\Env::search("services.{$prefix}", $partition))) {
|
86 |
+
$data["partitions"][$index]["services"][$prefix] = $serviceData;
|
87 |
+
}
|
88 |
+
}
|
89 |
+
}
|
90 |
+
}
|
91 |
+
}
|
92 |
+
return $data;
|
93 |
}
|
94 |
}
|
vendor/Aws3/Aws/EndpointParameterMiddleware.php
ADDED
@@ -0,0 +1,65 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws;
|
4 |
+
|
5 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Service;
|
6 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\RequestInterface;
|
7 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Log\InvalidArgumentException;
|
8 |
+
/**
|
9 |
+
* Used to update the host based on a modeled endpoint trait
|
10 |
+
*
|
11 |
+
* IMPORTANT: this middleware must be added after the "build" step.
|
12 |
+
*
|
13 |
+
* @internal
|
14 |
+
*/
|
15 |
+
class EndpointParameterMiddleware
|
16 |
+
{
|
17 |
+
/**
|
18 |
+
* Create a middleware wrapper function
|
19 |
+
*
|
20 |
+
* @param Service $service
|
21 |
+
* @param array $args
|
22 |
+
* @return \Closure
|
23 |
+
*/
|
24 |
+
public static function wrap(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Service $service)
|
25 |
+
{
|
26 |
+
return function (callable $handler) use($service) {
|
27 |
+
return new self($handler, $service);
|
28 |
+
};
|
29 |
+
}
|
30 |
+
public function __construct(callable $nextHandler, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Service $service)
|
31 |
+
{
|
32 |
+
$this->nextHandler = $nextHandler;
|
33 |
+
$this->service = $service;
|
34 |
+
}
|
35 |
+
public function __invoke(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface $command, \DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\RequestInterface $request)
|
36 |
+
{
|
37 |
+
$nextHandler = $this->nextHandler;
|
38 |
+
$operation = $this->service->getOperation($command->getName());
|
39 |
+
if (!empty($operation['endpoint']['hostPrefix'])) {
|
40 |
+
$prefix = $operation['endpoint']['hostPrefix'];
|
41 |
+
// Captures endpoint parameters stored in the modeled host.
|
42 |
+
// These are denoted by enclosure in braces, i.e. '{param}'
|
43 |
+
preg_match_all("/\\{([a-zA-Z0-9]+)}/", $prefix, $parameters);
|
44 |
+
if (!empty($parameters[1])) {
|
45 |
+
// Captured parameters without braces stored in $parameters[1],
|
46 |
+
// which should correspond to members in the Command object
|
47 |
+
foreach ($parameters[1] as $index => $parameter) {
|
48 |
+
if (empty($command[$parameter])) {
|
49 |
+
throw new \InvalidArgumentException("The parameter '{$parameter}' must be set and not empty.");
|
50 |
+
}
|
51 |
+
// Captured parameters with braces stored in $parameters[0],
|
52 |
+
// which are replaced by their corresponding Command value
|
53 |
+
$prefix = str_replace($parameters[0][$index], $command[$parameter], $prefix);
|
54 |
+
}
|
55 |
+
}
|
56 |
+
$uri = $request->getUri();
|
57 |
+
$host = $prefix . $uri->getHost();
|
58 |
+
if (!\DeliciousBrains\WP_Offload_Media\Aws3\Aws\is_valid_hostname($host)) {
|
59 |
+
throw new \InvalidArgumentException("The supplied parameters result in an invalid hostname: '{$host}'.");
|
60 |
+
}
|
61 |
+
$request = $request->withUri($uri->withHost($host));
|
62 |
+
}
|
63 |
+
return $nextHandler($command, $request);
|
64 |
+
}
|
65 |
+
}
|
vendor/Aws3/Aws/Exception/AwsException.php
CHANGED
@@ -2,6 +2,9 @@
|
|
2 |
|
3 |
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception;
|
4 |
|
|
|
|
|
|
|
5 |
use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\ResponseInterface;
|
6 |
use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\RequestInterface;
|
7 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface;
|
@@ -9,8 +12,9 @@ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\ResultInterface;
|
|
9 |
/**
|
10 |
* Represents an AWS exception that is thrown when a command fails.
|
11 |
*/
|
12 |
-
class AwsException extends \RuntimeException
|
13 |
{
|
|
|
14 |
/** @var ResponseInterface */
|
15 |
private $response;
|
16 |
private $request;
|
@@ -22,6 +26,7 @@ class AwsException extends \RuntimeException
|
|
22 |
private $connectionError;
|
23 |
private $transferInfo;
|
24 |
private $errorMessage;
|
|
|
25 |
/**
|
26 |
* @param string $message Exception message
|
27 |
* @param CommandInterface $command
|
@@ -40,6 +45,8 @@ class AwsException extends \RuntimeException
|
|
40 |
$this->result = isset($context['result']) ? $context['result'] : null;
|
41 |
$this->transferInfo = isset($context['transfer_stats']) ? $context['transfer_stats'] : [];
|
42 |
$this->errorMessage = isset($context['message']) ? $context['message'] : null;
|
|
|
|
|
43 |
parent::__construct($message, 0, $previous);
|
44 |
}
|
45 |
public function __toString()
|
@@ -172,4 +179,20 @@ class AwsException extends \RuntimeException
|
|
172 |
{
|
173 |
$this->transferInfo = $info;
|
174 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
175 |
}
|
2 |
|
3 |
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception;
|
4 |
|
5 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\HasMonitoringEventsTrait;
|
6 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\MonitoringEventsInterface;
|
7 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\ResponseContainerInterface;
|
8 |
use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\ResponseInterface;
|
9 |
use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\RequestInterface;
|
10 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface;
|
12 |
/**
|
13 |
* Represents an AWS exception that is thrown when a command fails.
|
14 |
*/
|
15 |
+
class AwsException extends \RuntimeException implements \DeliciousBrains\WP_Offload_Media\Aws3\Aws\MonitoringEventsInterface, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\ResponseContainerInterface
|
16 |
{
|
17 |
+
use HasMonitoringEventsTrait;
|
18 |
/** @var ResponseInterface */
|
19 |
private $response;
|
20 |
private $request;
|
26 |
private $connectionError;
|
27 |
private $transferInfo;
|
28 |
private $errorMessage;
|
29 |
+
private $maxRetriesExceeded;
|
30 |
/**
|
31 |
* @param string $message Exception message
|
32 |
* @param CommandInterface $command
|
45 |
$this->result = isset($context['result']) ? $context['result'] : null;
|
46 |
$this->transferInfo = isset($context['transfer_stats']) ? $context['transfer_stats'] : [];
|
47 |
$this->errorMessage = isset($context['message']) ? $context['message'] : null;
|
48 |
+
$this->monitoringEvents = [];
|
49 |
+
$this->maxRetriesExceeded = false;
|
50 |
parent::__construct($message, 0, $previous);
|
51 |
}
|
52 |
public function __toString()
|
179 |
{
|
180 |
$this->transferInfo = $info;
|
181 |
}
|
182 |
+
/**
|
183 |
+
* Returns whether the max number of retries is exceeded.
|
184 |
+
*
|
185 |
+
* @return bool
|
186 |
+
*/
|
187 |
+
public function isMaxRetriesExceeded()
|
188 |
+
{
|
189 |
+
return $this->maxRetriesExceeded;
|
190 |
+
}
|
191 |
+
/**
|
192 |
+
* Sets the flag for max number of retries exceeded.
|
193 |
+
*/
|
194 |
+
public function setMaxRetriesExceeded()
|
195 |
+
{
|
196 |
+
$this->maxRetriesExceeded = true;
|
197 |
+
}
|
198 |
}
|
vendor/Aws3/Aws/Exception/CouldNotCreateChecksumException.php
CHANGED
@@ -2,8 +2,11 @@
|
|
2 |
|
3 |
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception;
|
4 |
|
5 |
-
|
|
|
|
|
6 |
{
|
|
|
7 |
public function __construct($algorithm, \Exception $previous = null)
|
8 |
{
|
9 |
$prefix = $algorithm === 'md5' ? "An" : "A";
|
2 |
|
3 |
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception;
|
4 |
|
5 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\HasMonitoringEventsTrait;
|
6 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\MonitoringEventsInterface;
|
7 |
+
class CouldNotCreateChecksumException extends \RuntimeException implements \DeliciousBrains\WP_Offload_Media\Aws3\Aws\MonitoringEventsInterface
|
8 |
{
|
9 |
+
use HasMonitoringEventsTrait;
|
10 |
public function __construct($algorithm, \Exception $previous = null)
|
11 |
{
|
12 |
$prefix = $algorithm === 'md5' ? "An" : "A";
|
vendor/Aws3/Aws/Exception/CredentialsException.php
CHANGED
@@ -2,6 +2,9 @@
|
|
2 |
|
3 |
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception;
|
4 |
|
5 |
-
|
|
|
|
|
6 |
{
|
|
|
7 |
}
|
2 |
|
3 |
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception;
|
4 |
|
5 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\HasMonitoringEventsTrait;
|
6 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\MonitoringEventsInterface;
|
7 |
+
class CredentialsException extends \RuntimeException implements \DeliciousBrains\WP_Offload_Media\Aws3\Aws\MonitoringEventsInterface
|
8 |
{
|
9 |
+
use HasMonitoringEventsTrait;
|
10 |
}
|
vendor/Aws3/Aws/Exception/EventStreamDataException.php
ADDED
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Represents an exception that was supplied via an EventStream.
|
7 |
+
*/
|
8 |
+
class EventStreamDataException extends \RuntimeException
|
9 |
+
{
|
10 |
+
private $errorCode;
|
11 |
+
private $errorMessage;
|
12 |
+
public function __construct($code, $message)
|
13 |
+
{
|
14 |
+
$this->errorCode = $code;
|
15 |
+
$this->errorMessage = $message;
|
16 |
+
parent::__construct($message);
|
17 |
+
}
|
18 |
+
/**
|
19 |
+
* Get the AWS error code.
|
20 |
+
*
|
21 |
+
* @return string|null Returns null if no response was received
|
22 |
+
*/
|
23 |
+
public function getAwsErrorCode()
|
24 |
+
{
|
25 |
+
return $this->errorCode;
|
26 |
+
}
|
27 |
+
/**
|
28 |
+
* Get the concise error message if any.
|
29 |
+
*
|
30 |
+
* @return string|null
|
31 |
+
*/
|
32 |
+
public function getAwsErrorMessage()
|
33 |
+
{
|
34 |
+
return $this->errorMessage;
|
35 |
+
}
|
36 |
+
}
|
vendor/Aws3/Aws/Exception/MultipartUploadException.php
CHANGED
@@ -2,9 +2,12 @@
|
|
2 |
|
3 |
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception;
|
4 |
|
|
|
|
|
5 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Multipart\UploadState;
|
6 |
-
class MultipartUploadException extends \RuntimeException
|
7 |
{
|
|
|
8 |
/** @var UploadState State of the erroneous transfer */
|
9 |
private $state;
|
10 |
/**
|
2 |
|
3 |
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception;
|
4 |
|
5 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\HasMonitoringEventsTrait;
|
6 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\MonitoringEventsInterface;
|
7 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Multipart\UploadState;
|
8 |
+
class MultipartUploadException extends \RuntimeException implements \DeliciousBrains\WP_Offload_Media\Aws3\Aws\MonitoringEventsInterface
|
9 |
{
|
10 |
+
use HasMonitoringEventsTrait;
|
11 |
/** @var UploadState State of the erroneous transfer */
|
12 |
private $state;
|
13 |
/**
|
vendor/Aws3/Aws/Exception/UnresolvedApiException.php
CHANGED
@@ -2,6 +2,9 @@
|
|
2 |
|
3 |
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception;
|
4 |
|
5 |
-
|
|
|
|
|
6 |
{
|
|
|
7 |
}
|
2 |
|
3 |
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception;
|
4 |
|
5 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\HasMonitoringEventsTrait;
|
6 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\MonitoringEventsInterface;
|
7 |
+
class UnresolvedApiException extends \RuntimeException implements \DeliciousBrains\WP_Offload_Media\Aws3\Aws\MonitoringEventsInterface
|
8 |
{
|
9 |
+
use HasMonitoringEventsTrait;
|
10 |
}
|
vendor/Aws3/Aws/Exception/UnresolvedEndpointException.php
CHANGED
@@ -2,6 +2,9 @@
|
|
2 |
|
3 |
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception;
|
4 |
|
5 |
-
|
|
|
|
|
6 |
{
|
|
|
7 |
}
|
2 |
|
3 |
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception;
|
4 |
|
5 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\HasMonitoringEventsTrait;
|
6 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\MonitoringEventsInterface;
|
7 |
+
class UnresolvedEndpointException extends \RuntimeException implements \DeliciousBrains\WP_Offload_Media\Aws3\Aws\MonitoringEventsInterface
|
8 |
{
|
9 |
+
use HasMonitoringEventsTrait;
|
10 |
}
|
vendor/Aws3/Aws/Exception/UnresolvedSignatureException.php
CHANGED
@@ -2,6 +2,9 @@
|
|
2 |
|
3 |
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception;
|
4 |
|
5 |
-
|
|
|
|
|
6 |
{
|
|
|
7 |
}
|
2 |
|
3 |
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception;
|
4 |
|
5 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\HasMonitoringEventsTrait;
|
6 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\MonitoringEventsInterface;
|
7 |
+
class UnresolvedSignatureException extends \RuntimeException implements \DeliciousBrains\WP_Offload_Media\Aws3\Aws\MonitoringEventsInterface
|
8 |
{
|
9 |
+
use HasMonitoringEventsTrait;
|
10 |
}
|
vendor/Aws3/Aws/HandlerList.php
CHANGED
@@ -36,6 +36,7 @@ class HandlerList implements \Countable
|
|
36 |
const VALIDATE = 'validate';
|
37 |
const BUILD = 'build';
|
38 |
const SIGN = 'sign';
|
|
|
39 |
/** @var callable */
|
40 |
private $handler;
|
41 |
/** @var array */
|
@@ -45,7 +46,7 @@ class HandlerList implements \Countable
|
|
45 |
/** @var callable|null */
|
46 |
private $interposeFn;
|
47 |
/** @var array Steps (in reverse order) */
|
48 |
-
private $steps = [self::SIGN => [], self::BUILD => [], self::VALIDATE => [], self::INIT => []];
|
49 |
/**
|
50 |
* @param callable $handler HTTP handler.
|
51 |
*/
|
@@ -176,6 +177,26 @@ class HandlerList implements \Countable
|
|
176 |
{
|
177 |
$this->add(self::SIGN, $name, $middleware, true);
|
178 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
179 |
/**
|
180 |
* Add a middleware before the given middleware by name.
|
181 |
*
|
@@ -250,7 +271,7 @@ class HandlerList implements \Countable
|
|
250 |
}
|
251 |
public function count()
|
252 |
{
|
253 |
-
return count($this->steps[self::INIT]) + count($this->steps[self::VALIDATE]) + count($this->steps[self::BUILD]) + count($this->steps[self::SIGN]);
|
254 |
}
|
255 |
/**
|
256 |
* Splices a function into the middleware list at a specific position.
|
36 |
const VALIDATE = 'validate';
|
37 |
const BUILD = 'build';
|
38 |
const SIGN = 'sign';
|
39 |
+
const ATTEMPT = 'attempt';
|
40 |
/** @var callable */
|
41 |
private $handler;
|
42 |
/** @var array */
|
46 |
/** @var callable|null */
|
47 |
private $interposeFn;
|
48 |
/** @var array Steps (in reverse order) */
|
49 |
+
private $steps = [self::ATTEMPT => [], self::SIGN => [], self::BUILD => [], self::VALIDATE => [], self::INIT => []];
|
50 |
/**
|
51 |
* @param callable $handler HTTP handler.
|
52 |
*/
|
177 |
{
|
178 |
$this->add(self::SIGN, $name, $middleware, true);
|
179 |
}
|
180 |
+
/**
|
181 |
+
* Append a middleware to the attempt step.
|
182 |
+
*
|
183 |
+
* @param callable $middleware Middleware function to add.
|
184 |
+
* @param string $name Name of the middleware.
|
185 |
+
*/
|
186 |
+
public function appendAttempt(callable $middleware, $name = null)
|
187 |
+
{
|
188 |
+
$this->add(self::ATTEMPT, $name, $middleware);
|
189 |
+
}
|
190 |
+
/**
|
191 |
+
* Prepend a middleware to the attempt step.
|
192 |
+
*
|
193 |
+
* @param callable $middleware Middleware function to add.
|
194 |
+
* @param string $name Name of the middleware.
|
195 |
+
*/
|
196 |
+
public function prependAttempt(callable $middleware, $name = null)
|
197 |
+
{
|
198 |
+
$this->add(self::ATTEMPT, $name, $middleware, true);
|
199 |
+
}
|
200 |
/**
|
201 |
* Add a middleware before the given middleware by name.
|
202 |
*
|
271 |
}
|
272 |
public function count()
|
273 |
{
|
274 |
+
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]);
|
275 |
}
|
276 |
/**
|
277 |
* Splices a function into the middleware list at a specific position.
|
vendor/Aws3/Aws/HasMonitoringEventsTrait.php
ADDED
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws;
|
4 |
+
|
5 |
+
trait HasMonitoringEventsTrait
|
6 |
+
{
|
7 |
+
private $monitoringEvents = [];
|
8 |
+
/**
|
9 |
+
* Get client-side monitoring events attached to this object. Each event is
|
10 |
+
* represented as an associative array within the returned array.
|
11 |
+
*
|
12 |
+
* @return array
|
13 |
+
*/
|
14 |
+
public function getMonitoringEvents()
|
15 |
+
{
|
16 |
+
return $this->monitoringEvents;
|
17 |
+
}
|
18 |
+
/**
|
19 |
+
* Prepend a client-side monitoring event to this object's event list
|
20 |
+
*
|
21 |
+
* @param array $event
|
22 |
+
*/
|
23 |
+
public function prependMonitoringEvent(array $event)
|
24 |
+
{
|
25 |
+
array_unshift($this->monitoringEvents, $event);
|
26 |
+
}
|
27 |
+
/**
|
28 |
+
* Append a client-side monitoring event to this object's event list
|
29 |
+
*
|
30 |
+
* @param array $event
|
31 |
+
*/
|
32 |
+
public function appendMonitoringEvent(array $event)
|
33 |
+
{
|
34 |
+
$this->monitoringEvents[] = $event;
|
35 |
+
}
|
36 |
+
}
|
vendor/Aws3/Aws/MockHandler.php
CHANGED
@@ -48,6 +48,19 @@ class MockHandler implements \Countable
|
|
48 |
}
|
49 |
}
|
50 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
51 |
public function __invoke(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface $command, \DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\RequestInterface $request)
|
52 |
{
|
53 |
if (!$this->queue) {
|
48 |
}
|
49 |
}
|
50 |
}
|
51 |
+
/**
|
52 |
+
* Adds one or more \Exception or \Throwable to the queue
|
53 |
+
*/
|
54 |
+
public function appendException()
|
55 |
+
{
|
56 |
+
foreach (func_get_args() as $value) {
|
57 |
+
if ($value instanceof \Exception || $value instanceof \Throwable) {
|
58 |
+
$this->queue[] = $value;
|
59 |
+
} else {
|
60 |
+
throw new \InvalidArgumentException('Expected an \\Exception or \\Throwable.');
|
61 |
+
}
|
62 |
+
}
|
63 |
+
}
|
64 |
public function __invoke(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface $command, \DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\RequestInterface $request)
|
65 |
{
|
66 |
if (!$this->queue) {
|
vendor/Aws3/Aws/MonitoringEventsInterface.php
ADDED
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Interface for adding and retrieving client-side monitoring events
|
7 |
+
*/
|
8 |
+
interface MonitoringEventsInterface
|
9 |
+
{
|
10 |
+
/**
|
11 |
+
* Get client-side monitoring events attached to this object. Each event is
|
12 |
+
* represented as an associative array within the returned array.
|
13 |
+
*
|
14 |
+
* @return array
|
15 |
+
*/
|
16 |
+
public function getMonitoringEvents();
|
17 |
+
/**
|
18 |
+
* Prepend a client-side monitoring event to this object's event list
|
19 |
+
*
|
20 |
+
* @param array $event
|
21 |
+
*/
|
22 |
+
public function prependMonitoringEvent(array $event);
|
23 |
+
/**
|
24 |
+
* Append a client-side monitoring event to this object's event list
|
25 |
+
*
|
26 |
+
* @param array $event
|
27 |
+
*/
|
28 |
+
public function appendMonitoringEvent(array $event);
|
29 |
+
}
|
vendor/Aws3/Aws/ResponseContainerInterface.php
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws;
|
4 |
+
|
5 |
+
interface ResponseContainerInterface
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* Get the received HTTP response if any.
|
9 |
+
*
|
10 |
+
* @return ResponseInterface|null
|
11 |
+
*/
|
12 |
+
public function getResponse();
|
13 |
+
}
|
vendor/Aws3/Aws/Result.php
CHANGED
@@ -6,9 +6,10 @@ use DeliciousBrains\WP_Offload_Media\Aws3\JmesPath\Env as JmesPath;
|
|
6 |
/**
|
7 |
* AWS result.
|
8 |
*/
|
9 |
-
class Result implements \DeliciousBrains\WP_Offload_Media\Aws3\Aws\ResultInterface
|
10 |
{
|
11 |
use HasDataTrait;
|
|
|
12 |
public function __construct(array $data = [])
|
13 |
{
|
14 |
$this->data = $data;
|
6 |
/**
|
7 |
* AWS result.
|
8 |
*/
|
9 |
+
class Result implements \DeliciousBrains\WP_Offload_Media\Aws3\Aws\ResultInterface, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\MonitoringEventsInterface
|
10 |
{
|
11 |
use HasDataTrait;
|
12 |
+
use HasMonitoringEventsTrait;
|
13 |
public function __construct(array $data = [])
|
14 |
{
|
15 |
$this->data = $data;
|
vendor/Aws3/Aws/RetryMiddleware.php
CHANGED
@@ -38,51 +38,87 @@ class RetryMiddleware
|
|
38 |
/**
|
39 |
* Creates a default AWS retry decider function.
|
40 |
*
|
41 |
-
*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
42 |
*
|
|
|
|
|
43 |
* @return callable
|
44 |
*/
|
45 |
-
public static function createDefaultDecider($maxRetries = 3)
|
46 |
{
|
47 |
$retryCurlErrors = [];
|
48 |
if (extension_loaded('curl')) {
|
49 |
$retryCurlErrors[CURLE_RECV_ERROR] = true;
|
50 |
}
|
51 |
-
return function ($retries, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface $command, \DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\RequestInterface $request, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\ResultInterface $result = null, $error = null) use($maxRetries, $retryCurlErrors) {
|
52 |
// Allow command-level options to override this value
|
53 |
$maxRetries = null !== $command['@retries'] ? $command['@retries'] : $maxRetries;
|
|
|
54 |
if ($retries >= $maxRetries) {
|
|
|
|
|
|
|
55 |
return false;
|
56 |
}
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
|
|
|
|
|
|
|
|
62 |
}
|
63 |
-
|
64 |
-
|
|
|
|
|
|
|
65 |
}
|
66 |
-
|
67 |
-
|
|
|
|
|
68 |
}
|
69 |
-
|
70 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
71 |
}
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
return
|
76 |
-
}
|
77 |
-
$message = $previous->getMessage();
|
78 |
-
foreach (array_keys($retryCurlErrors) as $curlError) {
|
79 |
-
if (strpos($message, 'cURL error ' . $curlError . ':') === 0) {
|
80 |
-
return true;
|
81 |
-
}
|
82 |
}
|
83 |
}
|
84 |
-
|
85 |
-
|
86 |
}
|
87 |
/**
|
88 |
* Delay function that calculates an exponential delay.
|
@@ -92,6 +128,8 @@ class RetryMiddleware
|
|
92 |
* @param $retries - The number of retries that have already been attempted
|
93 |
*
|
94 |
* @return int
|
|
|
|
|
95 |
*/
|
96 |
public static function exponentialDelay($retries)
|
97 |
{
|
@@ -107,12 +145,20 @@ class RetryMiddleware
|
|
107 |
{
|
108 |
$retries = 0;
|
109 |
$requestStats = [];
|
|
|
110 |
$handler = $this->nextHandler;
|
111 |
$decider = $this->decider;
|
112 |
$delay = $this->delay;
|
113 |
$request = $this->addRetryHeader($request, 0, 0);
|
114 |
-
$g = function ($value) use($handler, $decider, $delay, $command, $request, &$retries, &$requestStats, &$g) {
|
115 |
$this->updateHttpStats($value, $requestStats);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
116 |
if ($value instanceof \Exception || $value instanceof \Throwable) {
|
117 |
if (!$decider($retries, $command, $request, null, $value)) {
|
118 |
return \DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Promise\rejection_for($this->bindStatsToReturn($value, $requestStats));
|
38 |
/**
|
39 |
* Creates a default AWS retry decider function.
|
40 |
*
|
41 |
+
* The optional $additionalRetryConfig parameter is an associative array
|
42 |
+
* that specifies additional retry conditions on top of the ones specified
|
43 |
+
* by default by the Aws\RetryMiddleware class, with the following keys:
|
44 |
+
*
|
45 |
+
* - errorCodes: (string[]) An indexed array of AWS exception codes to retry.
|
46 |
+
* Optional.
|
47 |
+
* - statusCodes: (int[]) An indexed array of HTTP status codes to retry.
|
48 |
+
* Optional.
|
49 |
+
* - curlErrors: (int[]) An indexed array of Curl error codes to retry. Note
|
50 |
+
* these should be valid Curl constants. Optional.
|
51 |
*
|
52 |
+
* @param int $maxRetries
|
53 |
+
* @param array $additionalRetryConfig
|
54 |
* @return callable
|
55 |
*/
|
56 |
+
public static function createDefaultDecider($maxRetries = 3, $additionalRetryConfig = [])
|
57 |
{
|
58 |
$retryCurlErrors = [];
|
59 |
if (extension_loaded('curl')) {
|
60 |
$retryCurlErrors[CURLE_RECV_ERROR] = true;
|
61 |
}
|
62 |
+
return function ($retries, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface $command, \DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\RequestInterface $request, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\ResultInterface $result = null, $error = null) use($maxRetries, $retryCurlErrors, $additionalRetryConfig) {
|
63 |
// Allow command-level options to override this value
|
64 |
$maxRetries = null !== $command['@retries'] ? $command['@retries'] : $maxRetries;
|
65 |
+
$isRetryable = self::isRetryable($result, $error, $retryCurlErrors, $additionalRetryConfig);
|
66 |
if ($retries >= $maxRetries) {
|
67 |
+
if (!empty($error) && $error instanceof AwsException && $isRetryable) {
|
68 |
+
$error->setMaxRetriesExceeded();
|
69 |
+
}
|
70 |
return false;
|
71 |
}
|
72 |
+
return $isRetryable;
|
73 |
+
};
|
74 |
+
}
|
75 |
+
private static function isRetryable($result, $error, $retryCurlErrors, $additionalRetryConfig = [])
|
76 |
+
{
|
77 |
+
$errorCodes = self::$retryCodes;
|
78 |
+
if (!empty($additionalRetryConfig['errorCodes']) && is_array($additionalRetryConfig['errorCodes'])) {
|
79 |
+
foreach ($additionalRetryConfig['errorCodes'] as $code) {
|
80 |
+
$errorCodes[$code] = true;
|
81 |
}
|
82 |
+
}
|
83 |
+
$statusCodes = self::$retryStatusCodes;
|
84 |
+
if (!empty($additionalRetryConfig['statusCodes']) && is_array($additionalRetryConfig['statusCodes'])) {
|
85 |
+
foreach ($additionalRetryConfig['statusCodes'] as $code) {
|
86 |
+
$statusCodes[$code] = true;
|
87 |
}
|
88 |
+
}
|
89 |
+
if (!empty($additionalRetryConfig['curlErrors']) && is_array($additionalRetryConfig['curlErrors'])) {
|
90 |
+
foreach ($additionalRetryConfig['curlErrors'] as $code) {
|
91 |
+
$retryCurlErrors[$code] = true;
|
92 |
}
|
93 |
+
}
|
94 |
+
if (!$error) {
|
95 |
+
return isset($statusCodes[$result['@metadata']['statusCode']]);
|
96 |
+
}
|
97 |
+
if (!$error instanceof AwsException) {
|
98 |
+
return false;
|
99 |
+
}
|
100 |
+
if ($error->isConnectionError()) {
|
101 |
+
return true;
|
102 |
+
}
|
103 |
+
if (isset($errorCodes[$error->getAwsErrorCode()])) {
|
104 |
+
return true;
|
105 |
+
}
|
106 |
+
if (isset($statusCodes[$error->getStatusCode()])) {
|
107 |
+
return true;
|
108 |
+
}
|
109 |
+
if (count($retryCurlErrors) && ($previous = $error->getPrevious()) && $previous instanceof RequestException) {
|
110 |
+
if (method_exists($previous, 'getHandlerContext')) {
|
111 |
+
$context = $previous->getHandlerContext();
|
112 |
+
return !empty($context['errno']) && isset($retryCurlErrors[$context['errno']]);
|
113 |
}
|
114 |
+
$message = $previous->getMessage();
|
115 |
+
foreach (array_keys($retryCurlErrors) as $curlError) {
|
116 |
+
if (strpos($message, 'cURL error ' . $curlError . ':') === 0) {
|
117 |
+
return true;
|
|
|
|
|
|
|
|
|
|
|
|
|
118 |
}
|
119 |
}
|
120 |
+
}
|
121 |
+
return false;
|
122 |
}
|
123 |
/**
|
124 |
* Delay function that calculates an exponential delay.
|
128 |
* @param $retries - The number of retries that have already been attempted
|
129 |
*
|
130 |
* @return int
|
131 |
+
*
|
132 |
+
* @link https://aws.amazon.com/blogs/architecture/exponential-backoff-and-jitter/
|
133 |
*/
|
134 |
public static function exponentialDelay($retries)
|
135 |
{
|
145 |
{
|
146 |
$retries = 0;
|
147 |
$requestStats = [];
|
148 |
+
$monitoringEvents = [];
|
149 |
$handler = $this->nextHandler;
|
150 |
$decider = $this->decider;
|
151 |
$delay = $this->delay;
|
152 |
$request = $this->addRetryHeader($request, 0, 0);
|
153 |
+
$g = function ($value) use($handler, $decider, $delay, $command, $request, &$retries, &$requestStats, &$monitoringEvents, &$g) {
|
154 |
$this->updateHttpStats($value, $requestStats);
|
155 |
+
if ($value instanceof MonitoringEventsInterface) {
|
156 |
+
$reversedEvents = array_reverse($monitoringEvents);
|
157 |
+
$monitoringEvents = array_merge($monitoringEvents, $value->getMonitoringEvents());
|
158 |
+
foreach ($reversedEvents as $event) {
|
159 |
+
$value->prependMonitoringEvent($event);
|
160 |
+
}
|
161 |
+
}
|
162 |
if ($value instanceof \Exception || $value instanceof \Throwable) {
|
163 |
if (!$decider($retries, $command, $request, null, $value)) {
|
164 |
return \DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Promise\rejection_for($this->bindStatsToReturn($value, $requestStats));
|
vendor/Aws3/Aws/S3/AmbiguousSuccessParser.php
CHANGED
@@ -3,9 +3,11 @@
|
|
3 |
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3;
|
4 |
|
5 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\AbstractParser;
|
|
|
6 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface;
|
7 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\AwsException;
|
8 |
use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\ResponseInterface;
|
|
|
9 |
/**
|
10 |
* Converts errors returned with a status code of 200 to a retryable error type.
|
11 |
*
|
@@ -15,8 +17,6 @@ class AmbiguousSuccessParser extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\
|
|
15 |
{
|
16 |
private static $ambiguousSuccesses = ['UploadPartCopy' => true, 'CopyObject' => true, 'CompleteMultipartUpload' => true];
|
17 |
/** @var callable */
|
18 |
-
private $parser;
|
19 |
-
/** @var callable */
|
20 |
private $errorParser;
|
21 |
/** @var string */
|
22 |
private $exceptionClass;
|
@@ -38,4 +38,8 @@ class AmbiguousSuccessParser extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\
|
|
38 |
$fn = $this->parser;
|
39 |
return $fn($command, $response);
|
40 |
}
|
|
|
|
|
|
|
|
|
41 |
}
|
3 |
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3;
|
4 |
|
5 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\AbstractParser;
|
6 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\StructureShape;
|
7 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface;
|
8 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\AwsException;
|
9 |
use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\ResponseInterface;
|
10 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\StreamInterface;
|
11 |
/**
|
12 |
* Converts errors returned with a status code of 200 to a retryable error type.
|
13 |
*
|
17 |
{
|
18 |
private static $ambiguousSuccesses = ['UploadPartCopy' => true, 'CopyObject' => true, 'CompleteMultipartUpload' => true];
|
19 |
/** @var callable */
|
|
|
|
|
20 |
private $errorParser;
|
21 |
/** @var string */
|
22 |
private $exceptionClass;
|
38 |
$fn = $this->parser;
|
39 |
return $fn($command, $response);
|
40 |
}
|
41 |
+
public function parseMemberFromStream(\DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\StreamInterface $stream, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\StructureShape $member, $response)
|
42 |
+
{
|
43 |
+
return $this->parser->parseMemberFromStream($stream, $member, $response);
|
44 |
+
}
|
45 |
}
|
vendor/Aws3/Aws/S3/ApplyChecksumMiddleware.php
CHANGED
@@ -14,7 +14,7 @@ use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\RequestInterface;
|
|
14 |
*/
|
15 |
class ApplyChecksumMiddleware
|
16 |
{
|
17 |
-
private static $md5 = ['DeleteObjects', 'PutBucketCors', 'PutBucketLifecycle', 'PutBucketLifecycleConfiguration', 'PutBucketPolicy', 'PutBucketTagging', 'PutBucketReplication'];
|
18 |
private static $sha256 = ['PutObject', 'UploadPart'];
|
19 |
private $nextHandler;
|
20 |
/**
|
14 |
*/
|
15 |
class ApplyChecksumMiddleware
|
16 |
{
|
17 |
+
private static $md5 = ['DeleteObjects', 'PutBucketCors', 'PutBucketLifecycle', 'PutBucketLifecycleConfiguration', 'PutBucketPolicy', 'PutBucketTagging', 'PutBucketReplication', 'PutObjectLegalHold', 'PutObjectRetention', 'PutObjectLockConfiguration'];
|
18 |
private static $sha256 = ['PutObject', 'UploadPart'];
|
19 |
private $nextHandler;
|
20 |
/**
|
vendor/Aws3/Aws/S3/Exception/DeleteMultipleObjectsException.php
CHANGED
@@ -2,12 +2,15 @@
|
|
2 |
|
3 |
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3\Exception;
|
4 |
|
|
|
|
|
5 |
/**
|
6 |
* Exception thrown when errors occur while deleting objects using a
|
7 |
* {@see S3\BatchDelete} object.
|
8 |
*/
|
9 |
-
class DeleteMultipleObjectsException extends \Exception
|
10 |
{
|
|
|
11 |
private $deleted = [];
|
12 |
private $errors = [];
|
13 |
/**
|
2 |
|
3 |
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3\Exception;
|
4 |
|
5 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\HasMonitoringEventsTrait;
|
6 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\MonitoringEventsInterface;
|
7 |
/**
|
8 |
* Exception thrown when errors occur while deleting objects using a
|
9 |
* {@see S3\BatchDelete} object.
|
10 |
*/
|
11 |
+
class DeleteMultipleObjectsException extends \Exception implements \DeliciousBrains\WP_Offload_Media\Aws3\Aws\MonitoringEventsInterface
|
12 |
{
|
13 |
+
use HasMonitoringEventsTrait;
|
14 |
private $deleted = [];
|
15 |
private $errors = [];
|
16 |
/**
|
vendor/Aws3/Aws/S3/GetBucketLocationParser.php
CHANGED
@@ -3,16 +3,16 @@
|
|
3 |
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3;
|
4 |
|
5 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\AbstractParser;
|
|
|
6 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface;
|
7 |
use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\ResponseInterface;
|
|
|
8 |
/**
|
9 |
* @internal Decorates a parser for the S3 service to correctly handle the
|
10 |
* GetBucketLocation operation.
|
11 |
*/
|
12 |
class GetBucketLocationParser extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\AbstractParser
|
13 |
{
|
14 |
-
/** @var callable */
|
15 |
-
private $parser;
|
16 |
/**
|
17 |
* @param callable $parser Parser to wrap.
|
18 |
*/
|
@@ -33,4 +33,8 @@ class GetBucketLocationParser extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws
|
|
33 |
}
|
34 |
return $result;
|
35 |
}
|
|
|
|
|
|
|
|
|
36 |
}
|
3 |
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3;
|
4 |
|
5 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\AbstractParser;
|
6 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\StructureShape;
|
7 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface;
|
8 |
use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\ResponseInterface;
|
9 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\StreamInterface;
|
10 |
/**
|
11 |
* @internal Decorates a parser for the S3 service to correctly handle the
|
12 |
* GetBucketLocation operation.
|
13 |
*/
|
14 |
class GetBucketLocationParser extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\AbstractParser
|
15 |
{
|
|
|
|
|
16 |
/**
|
17 |
* @param callable $parser Parser to wrap.
|
18 |
*/
|
33 |
}
|
34 |
return $result;
|
35 |
}
|
36 |
+
public function parseMemberFromStream(\DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\StreamInterface $stream, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\StructureShape $member, $response)
|
37 |
+
{
|
38 |
+
return $this->parser->parseMemberFromStream($stream, $member, $response);
|
39 |
+
}
|
40 |
}
|
vendor/Aws3/Aws/S3/RetryableMalformedResponseParser.php
CHANGED
@@ -3,10 +3,12 @@
|
|
3 |
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3;
|
4 |
|
5 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\AbstractParser;
|
|
|
6 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\Exception\ParserException;
|
7 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface;
|
8 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\AwsException;
|
9 |
use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\ResponseInterface;
|
|
|
10 |
/**
|
11 |
* Converts malformed responses to a retryable error type.
|
12 |
*
|
@@ -14,8 +16,6 @@ use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\ResponseInterface;
|
|
14 |
*/
|
15 |
class RetryableMalformedResponseParser extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\AbstractParser
|
16 |
{
|
17 |
-
/** @var callable */
|
18 |
-
private $parser;
|
19 |
/** @var string */
|
20 |
private $exceptionClass;
|
21 |
public function __construct(callable $parser, $exceptionClass = \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\AwsException::class)
|
@@ -32,4 +32,8 @@ class RetryableMalformedResponseParser extends \DeliciousBrains\WP_Offload_Media
|
|
32 |
throw new $this->exceptionClass("Error parsing response for {$command->getName()}:" . " AWS parsing error: {$e->getMessage()}", $command, ['connection_error' => true, 'exception' => $e], $e);
|
33 |
}
|
34 |
}
|
|
|
|
|
|
|
|
|
35 |
}
|
3 |
namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3;
|
4 |
|
5 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\AbstractParser;
|
6 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\StructureShape;
|
7 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\Exception\ParserException;
|
8 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface;
|
9 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\AwsException;
|
10 |
use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\ResponseInterface;
|
11 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\StreamInterface;
|
12 |
/**
|
13 |
* Converts malformed responses to a retryable error type.
|
14 |
*
|
16 |
*/
|
17 |
class RetryableMalformedResponseParser extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\AbstractParser
|
18 |
{
|
|
|
|
|
19 |
/** @var string */
|
20 |
private $exceptionClass;
|
21 |
public function __construct(callable $parser, $exceptionClass = \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\AwsException::class)
|
32 |
throw new $this->exceptionClass("Error parsing response for {$command->getName()}:" . " AWS parsing error: {$e->getMessage()}", $command, ['connection_error' => true, 'exception' => $e], $e);
|
33 |
}
|
34 |
}
|
35 |
+
public function parseMemberFromStream(\DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\StreamInterface $stream, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\StructureShape $member, $response)
|
36 |
+
{
|
37 |
+
return $this->parser->parseMemberFromStream($stream, $member, $response);
|
38 |
+
}
|
39 |
}
|
vendor/Aws3/Aws/S3/S3Client.php
CHANGED
@@ -57,6 +57,8 @@ use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\RequestInterface;
|
|
57 |
* @method \GuzzleHttp\Promise\Promise deleteObjectTaggingAsync(array $args = [])
|
58 |
* @method \Aws\Result deleteObjects(array $args = [])
|
59 |
* @method \GuzzleHttp\Promise\Promise deleteObjectsAsync(array $args = [])
|
|
|
|
|
60 |
* @method \Aws\Result getBucketAccelerateConfiguration(array $args = [])
|
61 |
* @method \GuzzleHttp\Promise\Promise getBucketAccelerateConfigurationAsync(array $args = [])
|
62 |
* @method \Aws\Result getBucketAcl(array $args = [])
|
@@ -85,6 +87,8 @@ use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\RequestInterface;
|
|
85 |
* @method \GuzzleHttp\Promise\Promise getBucketNotificationConfigurationAsync(array $args = [])
|
86 |
* @method \Aws\Result getBucketPolicy(array $args = [])
|
87 |
* @method \GuzzleHttp\Promise\Promise getBucketPolicyAsync(array $args = [])
|
|
|
|
|
88 |
* @method \Aws\Result getBucketReplication(array $args = [])
|
89 |
* @method \GuzzleHttp\Promise\Promise getBucketReplicationAsync(array $args = [])
|
90 |
* @method \Aws\Result getBucketRequestPayment(array $args = [])
|
@@ -99,10 +103,18 @@ use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\RequestInterface;
|
|
99 |
* @method \GuzzleHttp\Promise\Promise getObjectAsync(array $args = [])
|
100 |
* @method \Aws\Result getObjectAcl(array $args = [])
|
101 |
* @method \GuzzleHttp\Promise\Promise getObjectAclAsync(array $args = [])
|
|
|
|
|
|
|
|
|
|
|
|
|
102 |
* @method \Aws\Result getObjectTagging(array $args = [])
|
103 |
* @method \GuzzleHttp\Promise\Promise getObjectTaggingAsync(array $args = [])
|
104 |
* @method \Aws\Result getObjectTorrent(array $args = [])
|
105 |
* @method \GuzzleHttp\Promise\Promise getObjectTorrentAsync(array $args = [])
|
|
|
|
|
106 |
* @method \Aws\Result headBucket(array $args = [])
|
107 |
* @method \GuzzleHttp\Promise\Promise headBucketAsync(array $args = [])
|
108 |
* @method \Aws\Result headObject(array $args = [])
|
@@ -165,10 +177,20 @@ use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\RequestInterface;
|
|
165 |
* @method \GuzzleHttp\Promise\Promise putObjectAsync(array $args = [])
|
166 |
* @method \Aws\Result putObjectAcl(array $args = [])
|
167 |
* @method \GuzzleHttp\Promise\Promise putObjectAclAsync(array $args = [])
|
|
|
|
|
|
|
|
|
|
|
|
|
168 |
* @method \Aws\Result putObjectTagging(array $args = [])
|
169 |
* @method \GuzzleHttp\Promise\Promise putObjectTaggingAsync(array $args = [])
|
|
|
|
|
170 |
* @method \Aws\Result restoreObject(array $args = [])
|
171 |
* @method \GuzzleHttp\Promise\Promise restoreObjectAsync(array $args = [])
|
|
|
|
|
172 |
* @method \Aws\Result uploadPart(array $args = [])
|
173 |
* @method \GuzzleHttp\Promise\Promise uploadPartAsync(array $args = [])
|
174 |
* @method \Aws\Result uploadPartCopy(array $args = [])
|
57 |
* @method \GuzzleHttp\Promise\Promise deleteObjectTaggingAsync(array $args = [])
|
58 |
* @method \Aws\Result deleteObjects(array $args = [])
|
59 |
* @method \GuzzleHttp\Promise\Promise deleteObjectsAsync(array $args = [])
|
60 |
+
* @method \Aws\Result deletePublicAccessBlock(array $args = [])
|
61 |
+
* @method \GuzzleHttp\Promise\Promise deletePublicAccessBlockAsync(array $args = [])
|
62 |
* @method \Aws\Result getBucketAccelerateConfiguration(array $args = [])
|
63 |
* @method \GuzzleHttp\Promise\Promise getBucketAccelerateConfigurationAsync(array $args = [])
|
64 |
* @method \Aws\Result getBucketAcl(array $args = [])
|
87 |
* @method \GuzzleHttp\Promise\Promise getBucketNotificationConfigurationAsync(array $args = [])
|
88 |
* @method \Aws\Result getBucketPolicy(array $args = [])
|
89 |
* @method \GuzzleHttp\Promise\Promise getBucketPolicyAsync(array $args = [])
|
90 |
+
* @method \Aws\Result getBucketPolicyStatus(array $args = [])
|
91 |
+
* @method \GuzzleHttp\Promise\Promise getBucketPolicyStatusAsync(array $args = [])
|
92 |
* @method \Aws\Result getBucketReplication(array $args = [])
|
93 |
* @method \GuzzleHttp\Promise\Promise getBucketReplicationAsync(array $args = [])
|
94 |
* @method \Aws\Result getBucketRequestPayment(array $args = [])
|
103 |
* @method \GuzzleHttp\Promise\Promise getObjectAsync(array $args = [])
|
104 |
* @method \Aws\Result getObjectAcl(array $args = [])
|
105 |
* @method \GuzzleHttp\Promise\Promise getObjectAclAsync(array $args = [])
|
106 |
+
* @method \Aws\Result getObjectLegalHold(array $args = [])
|
107 |
+
* @method \GuzzleHttp\Promise\Promise getObjectLegalHoldAsync(array $args = [])
|
108 |
+
* @method \Aws\Result getObjectLockConfiguration(array $args = [])
|
109 |
+
* @method \GuzzleHttp\Promise\Promise getObjectLockConfigurationAsync(array $args = [])
|
110 |
+
* @method \Aws\Result getObjectRetention(array $args = [])
|
111 |
+
* @method \GuzzleHttp\Promise\Promise getObjectRetentionAsync(array $args = [])
|
112 |
* @method \Aws\Result getObjectTagging(array $args = [])
|
113 |
* @method \GuzzleHttp\Promise\Promise getObjectTaggingAsync(array $args = [])
|
114 |
* @method \Aws\Result getObjectTorrent(array $args = [])
|
115 |
* @method \GuzzleHttp\Promise\Promise getObjectTorrentAsync(array $args = [])
|
116 |
+
* @method \Aws\Result getPublicAccessBlock(array $args = [])
|
117 |
+
* @method \GuzzleHttp\Promise\Promise getPublicAccessBlockAsync(array $args = [])
|
118 |
* @method \Aws\Result headBucket(array $args = [])
|
119 |
* @method \GuzzleHttp\Promise\Promise headBucketAsync(array $args = [])
|
120 |
* @method \Aws\Result headObject(array $args = [])
|
177 |
* @method \GuzzleHttp\Promise\Promise putObjectAsync(array $args = [])
|
178 |
* @method \Aws\Result putObjectAcl(array $args = [])
|
179 |
* @method \GuzzleHttp\Promise\Promise putObjectAclAsync(array $args = [])
|
180 |
+
* @method \Aws\Result putObjectLegalHold(array $args = [])
|
181 |
+
* @method \GuzzleHttp\Promise\Promise putObjectLegalHoldAsync(array $args = [])
|
182 |
+
* @method \Aws\Result putObjectLockConfiguration(array $args = [])
|
183 |
+
* @method \GuzzleHttp\Promise\Promise putObjectLockConfigurationAsync(array $args = [])
|
184 |
+
* @method \Aws\Result putObjectRetention(array $args = [])
|
185 |
+
* @method \GuzzleHttp\Promise\Promise putObjectRetentionAsync(array $args = [])
|
186 |
* @method \Aws\Result putObjectTagging(array $args = [])
|
187 |
* @method \GuzzleHttp\Promise\Promise putObjectTaggingAsync(array $args = [])
|
188 |
+
* @method \Aws\Result putPublicAccessBlock(array $args = [])
|
189 |
+
* @method \GuzzleHttp\Promise\Promise putPublicAccessBlockAsync(array $args = [])
|
190 |
* @method \Aws\Result restoreObject(array $args = [])
|
191 |
* @method \GuzzleHttp\Promise\Promise restoreObjectAsync(array $args = [])
|
192 |
+
* @method \Aws\Result selectObjectContent(array $args = [])
|
193 |
+
* @method \GuzzleHttp\Promise\Promise selectObjectContentAsync(array $args = [])
|
194 |
* @method \Aws\Result uploadPart(array $args = [])
|
195 |
* @method \GuzzleHttp\Promise\Promise uploadPartAsync(array $args = [])
|
196 |
* @method \Aws\Result uploadPartCopy(array $args = [])
|
vendor/Aws3/Aws/S3/S3ClientTrait.php
CHANGED
@@ -10,6 +10,7 @@ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\ResultInterface;
|
|
10 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3\Exception\S3Exception;
|
11 |
use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Promise\PromiseInterface;
|
12 |
use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Promise\RejectedPromise;
|
|
|
13 |
/**
|
14 |
* A trait providing S3-specific functionality. This is meant to be used in
|
15 |
* classes implementing \Aws\S3\S3ClientInterface
|
@@ -140,7 +141,7 @@ trait S3ClientTrait
|
|
140 |
throw $e;
|
141 |
}
|
142 |
if ($e->getAwsErrorCode() === 'AuthorizationHeaderMalformed') {
|
143 |
-
$region = $this->determineBucketRegionFromExceptionBody($response
|
144 |
if (!empty($region)) {
|
145 |
return $region;
|
146 |
}
|
@@ -149,10 +150,10 @@ trait S3ClientTrait
|
|
149 |
return $response->getHeaderLine('x-amz-bucket-region');
|
150 |
});
|
151 |
}
|
152 |
-
private function determineBucketRegionFromExceptionBody($
|
153 |
{
|
154 |
try {
|
155 |
-
$element = $this->parseXml($
|
156 |
if (!empty($element->Region)) {
|
157 |
return (string) $element->Region;
|
158 |
}
|
10 |
use DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3\Exception\S3Exception;
|
11 |
use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Promise\PromiseInterface;
|
12 |
use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Promise\RejectedPromise;
|
13 |
+
use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\ResponseInterface;
|
14 |
/**
|
15 |
* A trait providing S3-specific functionality. This is meant to be used in
|
16 |
* classes implementing \Aws\S3\S3ClientInterface
|
141 |
throw $e;
|
142 |
}
|
143 |
if ($e->getAwsErrorCode() === 'AuthorizationHeaderMalformed') {
|
144 |
+
$region = $this->determineBucketRegionFromExceptionBody($response);
|
145 |
if (!empty($region)) {
|
146 |
return $region;
|
147 |
}
|
150 |
return $response->getHeaderLine('x-amz-bucket-region');
|
151 |
});
|
152 |
}
|
153 |
+
private function determineBucketRegionFromExceptionBody(\DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\ResponseInterface $response)
|
154 |
{
|
155 |
try {
|
156 |
+
$element = $this->parseXml($response->getBody(), $response);
|
157 |
if (!empty($element->Region)) {
|
158 |
return (string) $element->Region;
|
159 |
}
|
vendor/Aws3/Aws/S3/S3MultiRegionClient.php
CHANGED
@@ -50,6 +50,8 @@ use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Promise;
|
|
50 |
* @method \GuzzleHttp\Promise\Promise deleteObjectTaggingAsync(array $args = [])
|
51 |
* @method \Aws\Result deleteObjects(array $args = [])
|
52 |
* @method \GuzzleHttp\Promise\Promise deleteObjectsAsync(array $args = [])
|
|
|
|
|
53 |
* @method \Aws\Result getBucketAccelerateConfiguration(array $args = [])
|
54 |
* @method \GuzzleHttp\Promise\Promise getBucketAccelerateConfigurationAsync(array $args = [])
|
55 |
* @method \Aws\Result getBucketAcl(array $args = [])
|
@@ -78,6 +80,8 @@ use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Promise;
|
|
78 |
* @method \GuzzleHttp\Promise\Promise getBucketNotificationConfigurationAsync(array $args = [])
|
79 |
* @method \Aws\Result getBucketPolicy(array $args = [])
|
80 |
* @method \GuzzleHttp\Promise\Promise getBucketPolicyAsync(array $args = [])
|
|
|
|
|
81 |
* @method \Aws\Result getBucketReplication(array $args = [])
|
82 |
* @method \GuzzleHttp\Promise\Promise getBucketReplicationAsync(array $args = [])
|
83 |
* @method \Aws\Result getBucketRequestPayment(array $args = [])
|
@@ -92,10 +96,18 @@ use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Promise;
|
|
92 |
* @method \GuzzleHttp\Promise\Promise getObjectAsync(array $args = [])
|
93 |
* @method \Aws\Result getObjectAcl(array $args = [])
|
94 |
* @method \GuzzleHttp\Promise\Promise getObjectAclAsync(array $args = [])
|
|
|
|
|
|
|
|
|
|
|
|
|
95 |
* @method \Aws\Result getObjectTagging(array $args = [])
|
96 |
* @method \GuzzleHttp\Promise\Promise getObjectTaggingAsync(array $args = [])
|
97 |
* @method \Aws\Result getObjectTorrent(array $args = [])
|
98 |
* @method \GuzzleHttp\Promise\Promise getObjectTorrentAsync(array $args = [])
|
|
|
|
|
99 |
* @method \Aws\Result headBucket(array $args = [])
|
100 |
* @method \GuzzleHttp\Promise\Promise headBucketAsync(array $args = [])
|
101 |
* @method \Aws\Result headObject(array $args = [])
|
@@ -158,10 +170,20 @@ use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Promise;
|
|
158 |
* @method \GuzzleHttp\Promise\Promise putObjectAsync(array $args = [])
|
159 |
* @method \Aws\Result putObjectAcl(array $args = [])
|
160 |
* @method \GuzzleHttp\Promise\Promise putObjectAclAsync(array $args = [])
|
|
|
|
|
|
|
|
|
|
|
|
|
161 |
* @method \Aws\Result putObjectTagging(array $args = [])
|
162 |
* @method \GuzzleHttp\Promise\Promise putObjectTaggingAsync(array $args = [])
|
|
|
|
|
163 |
* @method \Aws\Result restoreObject(array $args = [])
|
164 |
* @method \GuzzleHttp\Promise\Promise restoreObjectAsync(array $args = [])
|
|
|
|
|
165 |
* @method \Aws\Result uploadPart(array $args = [])
|
166 |
* @method \GuzzleHttp\Promise\Promise uploadPartAsync(array $args = [])
|
167 |
* @method \Aws\Result uploadPartCopy(array $args = [])
|
@@ -217,7 +239,7 @@ class S3MultiRegionClient extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Mul
|
|
217 |
(yield $handler($command));
|
218 |
} catch (AwsException $e) {
|
219 |
if ($e->getAwsErrorCode() === 'AuthorizationHeaderMalformed') {
|
220 |
-
$region = $this->determineBucketRegionFromExceptionBody($e->getResponse()
|
221 |
if (!empty($region)) {
|
222 |
$this->cache->set($cacheKey, $region);
|
223 |
$command['@region'] = $region;
|
50 |
* @method \GuzzleHttp\Promise\Promise deleteObjectTaggingAsync(array $args = [])
|
51 |
* @method \Aws\Result deleteObjects(array $args = [])
|
52 |
* @method \GuzzleHttp\Promise\Promise deleteObjectsAsync(array $args = [])
|
53 |
+
* @method \Aws\Result deletePublicAccessBlock(array $args = [])
|
54 |
+
* @method \GuzzleHttp\Promise\Promise deletePublicAccessBlockAsync(array $args = [])
|
55 |
* @method \Aws\Result getBucketAccelerateConfiguration(array $args = [])
|
56 |
* @method \GuzzleHttp\Promise\Promise getBucketAccelerateConfigurationAsync(array $args = [])
|
57 |
* @method \Aws\Result getBucketAcl(array $args = [])
|
80 |
* @method \GuzzleHttp\Promise\Promise getBucketNotificationConfigurationAsync(array $args = [])
|
81 |
* @method \Aws\Result getBucketPolicy(array $args = [])
|
82 |
* @method \GuzzleHttp\Promise\Promise getBucketPolicyAsync(array $args = [])
|
83 |
+
* @method \Aws\Result getBucketPolicyStatus(array $args = [])
|
84 |
+
* @method \GuzzleHttp\Promise\Promise getBucketPolicyStatusAsync(array $args = [])
|
85 |
* @method \Aws\Result getBucketReplication(array $args = [])
|
86 |
* @method \GuzzleHttp\Promise\Promise getBucketReplicationAsync(array $args = [])
|
87 |
* @method \Aws\Result getBucketRequestPayment(array $args = [])
|
96 |
* @method \GuzzleHttp\Promise\Promise getObjectAsync(array $args = [])
|
97 |
* @method \Aws\Result getObjectAcl(array $args = [])
|
98 |
* @method \GuzzleHttp\Promise\Promise getObjectAclAsync(array $args = [])
|
99 |
+
* @method \Aws\Result getObjectLegalHold(array $args = [])
|
100 |
+
* @method \GuzzleHttp\Promise\Promise getObjectLegalHoldAsync(array $args = [])
|
101 |
+
* @method \Aws\Result getObjectLockConfiguration(array $args = [])
|
102 |
+
* @method \GuzzleHttp\Promise\Promise getObjectLockConfigurationAsync(array $args = [])
|
103 |
+
* @method \Aws\Result getObjectRetention(array $args = [])
|
104 |
+
* @method \GuzzleHttp\Promise\Promise getObjectRetentionAsync(array $args = [])
|
105 |
* @method \Aws\Result getObjectTagging(array $args = [])
|
106 |
* @method \GuzzleHttp\Promise\Promise getObjectTaggingAsync(array $args = [])
|
107 |
* @method \Aws\Result getObjectTorrent(array $args = [])
|
108 |
* @method \GuzzleHttp\Promise\Promise getObjectTorrentAsync(array $args = [])
|
109 |
+
* @method \Aws\Result getPublicAccessBlock(array $args = [])
|
110 |
+
* @method \GuzzleHttp\Promise\Promise getPublicAccessBlockAsync(array $args = [])
|
111 |
* @method \Aws\Result headBucket(array $args = [])
|
112 |
* @method \GuzzleHttp\Promise\Promise headBucketAsync(array $args = [])
|
113 |
* @method \Aws\Result headObject(array $args = [])
|
170 |
* @method \GuzzleHttp\Promise\Promise putObjectAsync(array $args = [])
|
171 |
* @method \Aws\Result putObjectAcl(array $args = [])
|
172 |
* @method \GuzzleHttp\Promise\Promise putObjectAclAsync(array $args = [])
|
173 |
+
* @method \Aws\Result putObjectLegalHold(array $args = [])
|
174 |
+
* @method \GuzzleHttp\Promise\Promise putObjectLegalHoldAsync(array $args = [])
|
175 |
+
* @method \Aws\Result putObjectLockConfiguration(array $args = [])
|
176 |
+
* @method \GuzzleHttp\Promise\Promise putObjectLockConfigurationAsync(array $args = [])
|
177 |
+
* @method \Aws\Result putObjectRetention(array $args = [])
|
178 |
+
* @method \GuzzleHttp\Promise\Promise putObjectRetentionAsync(array $args = [])
|
179 |
* @method \Aws\Result putObjectTagging(array $args = [])
|
180 |
* @method \GuzzleHttp\Promise\Promise putObjectTaggingAsync(array $args = [])
|
181 |
+
* @method \Aws\Result putPublicAccessBlock(array $args = [])
|
182 |
+
* @method \GuzzleHttp\Promise\Promise putPublicAccessBlockAsync(array $args = [])
|
183 |
* @method \Aws\Result restoreObject(array $args = [])
|
184 |
* @method \GuzzleHttp\Promise\Promise restoreObjectAsync(array $args = [])
|
185 |
+
* @method \Aws\Result selectObjectContent(array $args = [])
|
186 |
+
* @method \GuzzleHttp\Promise\Promise selectObjectContentAsync(array $args = [])
|
187 |
* @method \Aws\Result uploadPart(array $args = [])
|
188 |
* @method \GuzzleHttp\Promise\Promise uploadPartAsync(array $args = [])
|
189 |
* @method \Aws\Result uploadPartCopy(array $args = [])
|
239 |
(yield $handler($command));
|
240 |
} catch (AwsException $e) {
|
241 |
if ($e->getAwsErrorCode() === 'AuthorizationHeaderMalformed') {
|
242 |
+
$region = $this->determineBucketRegionFromExceptionBody($e->getResponse());
|
243 |
if (!empty($region)) {
|
244 |
$this->cache->set($cacheKey, $region);
|
245 |
$command['@region'] = $region;
|
vendor/Aws3/Aws/Sdk.php
CHANGED
@@ -11,8 +11,16 @@ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws;
|
|
11 |
* @method \Aws\MultiRegionClient createMultiRegionAcm(array $args = [])
|
12 |
* @method \Aws\AlexaForBusiness\AlexaForBusinessClient createAlexaForBusiness(array $args = [])
|
13 |
* @method \Aws\MultiRegionClient createMultiRegionAlexaForBusiness(array $args = [])
|
|
|
|
|
14 |
* @method \Aws\ApiGateway\ApiGatewayClient createApiGateway(array $args = [])
|
15 |
* @method \Aws\MultiRegionClient createMultiRegionApiGateway(array $args = [])
|
|
|
|
|
|
|
|
|
|
|
|
|
16 |
* @method \Aws\AppSync\AppSyncClient createAppSync(array $args = [])
|
17 |
* @method \Aws\MultiRegionClient createMultiRegionAppSync(array $args = [])
|
18 |
* @method \Aws\ApplicationAutoScaling\ApplicationAutoScalingClient createApplicationAutoScaling(array $args = [])
|
@@ -31,6 +39,8 @@ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws;
|
|
31 |
* @method \Aws\MultiRegionClient createMultiRegionBatch(array $args = [])
|
32 |
* @method \Aws\Budgets\BudgetsClient createBudgets(array $args = [])
|
33 |
* @method \Aws\MultiRegionClient createMultiRegionBudgets(array $args = [])
|
|
|
|
|
34 |
* @method \Aws\Cloud9\Cloud9Client createCloud9(array $args = [])
|
35 |
* @method \Aws\MultiRegionClient createMultiRegionCloud9(array $args = [])
|
36 |
* @method \Aws\CloudDirectory\CloudDirectoryClient createCloudDirectory(array $args = [])
|
@@ -73,6 +83,8 @@ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws;
|
|
73 |
* @method \Aws\MultiRegionClient createMultiRegionCognitoSync(array $args = [])
|
74 |
* @method \Aws\Comprehend\ComprehendClient createComprehend(array $args = [])
|
75 |
* @method \Aws\MultiRegionClient createMultiRegionComprehend(array $args = [])
|
|
|
|
|
76 |
* @method \Aws\ConfigService\ConfigServiceClient createConfigService(array $args = [])
|
77 |
* @method \Aws\MultiRegionClient createMultiRegionConfigService(array $args = [])
|
78 |
* @method \Aws\Connect\ConnectClient createConnect(array $args = [])
|
@@ -83,8 +95,12 @@ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws;
|
|
83 |
* @method \Aws\MultiRegionClient createMultiRegionCostandUsageReportService(array $args = [])
|
84 |
* @method \Aws\DAX\DAXClient createDAX(array $args = [])
|
85 |
* @method \Aws\MultiRegionClient createMultiRegionDAX(array $args = [])
|
|
|
|
|
86 |
* @method \Aws\DataPipeline\DataPipelineClient createDataPipeline(array $args = [])
|
87 |
* @method \Aws\MultiRegionClient createMultiRegionDataPipeline(array $args = [])
|
|
|
|
|
88 |
* @method \Aws\DatabaseMigrationService\DatabaseMigrationServiceClient createDatabaseMigrationService(array $args = [])
|
89 |
* @method \Aws\MultiRegionClient createMultiRegionDatabaseMigrationService(array $args = [])
|
90 |
* @method \Aws\DeviceFarm\DeviceFarmClient createDeviceFarm(array $args = [])
|
@@ -93,6 +109,8 @@ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws;
|
|
93 |
* @method \Aws\MultiRegionClient createMultiRegionDirectConnect(array $args = [])
|
94 |
* @method \Aws\DirectoryService\DirectoryServiceClient createDirectoryService(array $args = [])
|
95 |
* @method \Aws\MultiRegionClient createMultiRegionDirectoryService(array $args = [])
|
|
|
|
|
96 |
* @method \Aws\DynamoDb\DynamoDbClient createDynamoDb(array $args = [])
|
97 |
* @method \Aws\MultiRegionClient createMultiRegionDynamoDb(array $args = [])
|
98 |
* @method \Aws\DynamoDbStreams\DynamoDbStreamsClient createDynamoDbStreams(array $args = [])
|
@@ -123,12 +141,16 @@ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws;
|
|
123 |
* @method \Aws\MultiRegionClient createMultiRegionEmr(array $args = [])
|
124 |
* @method \Aws\FMS\FMSClient createFMS(array $args = [])
|
125 |
* @method \Aws\MultiRegionClient createMultiRegionFMS(array $args = [])
|
|
|
|
|
126 |
* @method \Aws\Firehose\FirehoseClient createFirehose(array $args = [])
|
127 |
* @method \Aws\MultiRegionClient createMultiRegionFirehose(array $args = [])
|
128 |
* @method \Aws\GameLift\GameLiftClient createGameLift(array $args = [])
|
129 |
* @method \Aws\MultiRegionClient createMultiRegionGameLift(array $args = [])
|
130 |
* @method \Aws\Glacier\GlacierClient createGlacier(array $args = [])
|
131 |
* @method \Aws\MultiRegionClient createMultiRegionGlacier(array $args = [])
|
|
|
|
|
132 |
* @method \Aws\Glue\GlueClient createGlue(array $args = [])
|
133 |
* @method \Aws\MultiRegionClient createMultiRegionGlue(array $args = [])
|
134 |
* @method \Aws\Greengrass\GreengrassClient createGreengrass(array $args = [])
|
@@ -155,10 +177,14 @@ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws;
|
|
155 |
* @method \Aws\MultiRegionClient createMultiRegionIot(array $args = [])
|
156 |
* @method \Aws\IotDataPlane\IotDataPlaneClient createIotDataPlane(array $args = [])
|
157 |
* @method \Aws\MultiRegionClient createMultiRegionIotDataPlane(array $args = [])
|
|
|
|
|
158 |
* @method \Aws\Kinesis\KinesisClient createKinesis(array $args = [])
|
159 |
* @method \Aws\MultiRegionClient createMultiRegionKinesis(array $args = [])
|
160 |
* @method \Aws\KinesisAnalytics\KinesisAnalyticsClient createKinesisAnalytics(array $args = [])
|
161 |
* @method \Aws\MultiRegionClient createMultiRegionKinesisAnalytics(array $args = [])
|
|
|
|
|
162 |
* @method \Aws\KinesisVideo\KinesisVideoClient createKinesisVideo(array $args = [])
|
163 |
* @method \Aws\MultiRegionClient createMultiRegionKinesisVideo(array $args = [])
|
164 |
* @method \Aws\KinesisVideoArchivedMedia\KinesisVideoArchivedMediaClient createKinesisVideoArchivedMedia(array $args = [])
|
@@ -173,6 +199,8 @@ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws;
|
|
173 |
* @method \Aws\MultiRegionClient createMultiRegionLexModelBuildingService(array $args = [])
|
174 |
* @method \Aws\LexRuntimeService\LexRuntimeServiceClient createLexRuntimeService(array $args = [])
|
175 |
* @method \Aws\MultiRegionClient createMultiRegionLexRuntimeService(array $args = [])
|
|
|
|
|
176 |
* @method \Aws\Lightsail\LightsailClient createLightsail(array $args = [])
|
177 |
* @method \Aws\MultiRegionClient createMultiRegionLightsail(array $args = [])
|
178 |
* @method \Aws\MQ\MQClient createMQ(array $args = [])
|
@@ -189,6 +217,8 @@ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws;
|
|
189 |
* @method \Aws\MultiRegionClient createMultiRegionMarketplaceEntitlementService(array $args = [])
|
190 |
* @method \Aws\MarketplaceMetering\MarketplaceMeteringClient createMarketplaceMetering(array $args = [])
|
191 |
* @method \Aws\MultiRegionClient createMultiRegionMarketplaceMetering(array $args = [])
|
|
|
|
|
192 |
* @method \Aws\MediaConvert\MediaConvertClient createMediaConvert(array $args = [])
|
193 |
* @method \Aws\MultiRegionClient createMultiRegionMediaConvert(array $args = [])
|
194 |
* @method \Aws\MediaLive\MediaLiveClient createMediaLive(array $args = [])
|
@@ -217,10 +247,20 @@ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws;
|
|
217 |
* @method \Aws\MultiRegionClient createMultiRegionPI(array $args = [])
|
218 |
* @method \Aws\Pinpoint\PinpointClient createPinpoint(array $args = [])
|
219 |
* @method \Aws\MultiRegionClient createMultiRegionPinpoint(array $args = [])
|
|
|
|
|
|
|
|
|
220 |
* @method \Aws\Polly\PollyClient createPolly(array $args = [])
|
221 |
* @method \Aws\MultiRegionClient createMultiRegionPolly(array $args = [])
|
222 |
* @method \Aws\Pricing\PricingClient createPricing(array $args = [])
|
223 |
* @method \Aws\MultiRegionClient createMultiRegionPricing(array $args = [])
|
|
|
|
|
|
|
|
|
|
|
|
|
224 |
* @method \Aws\Rds\RdsClient createRds(array $args = [])
|
225 |
* @method \Aws\MultiRegionClient createMultiRegionRds(array $args = [])
|
226 |
* @method \Aws\Redshift\RedshiftClient createRedshift(array $args = [])
|
@@ -231,18 +271,26 @@ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws;
|
|
231 |
* @method \Aws\MultiRegionClient createMultiRegionResourceGroups(array $args = [])
|
232 |
* @method \Aws\ResourceGroupsTaggingAPI\ResourceGroupsTaggingAPIClient createResourceGroupsTaggingAPI(array $args = [])
|
233 |
* @method \Aws\MultiRegionClient createMultiRegionResourceGroupsTaggingAPI(array $args = [])
|
|
|
|
|
234 |
* @method \Aws\Route53\Route53Client createRoute53(array $args = [])
|
235 |
* @method \Aws\MultiRegionClient createMultiRegionRoute53(array $args = [])
|
236 |
* @method \Aws\Route53Domains\Route53DomainsClient createRoute53Domains(array $args = [])
|
237 |
* @method \Aws\MultiRegionClient createMultiRegionRoute53Domains(array $args = [])
|
|
|
|
|
238 |
* @method \Aws\S3\S3Client createS3(array $args = [])
|
239 |
* @method \Aws\S3\S3MultiRegionClient createMultiRegionS3(array $args = [])
|
|
|
|
|
240 |
* @method \Aws\SageMaker\SageMakerClient createSageMaker(array $args = [])
|
241 |
* @method \Aws\MultiRegionClient createMultiRegionSageMaker(array $args = [])
|
242 |
* @method \Aws\SageMakerRuntime\SageMakerRuntimeClient createSageMakerRuntime(array $args = [])
|
243 |
* @method \Aws\MultiRegionClient createMultiRegionSageMakerRuntime(array $args = [])
|
244 |
* @method \Aws\SecretsManager\SecretsManagerClient createSecretsManager(array $args = [])
|
245 |
* @method \Aws\MultiRegionClient createMultiRegionSecretsManager(array $args = [])
|
|
|
|
|
246 |
* @method \Aws\ServerlessApplicationRepository\ServerlessApplicationRepositoryClient createServerlessApplicationRepository(array $args = [])
|
247 |
* @method \Aws\MultiRegionClient createMultiRegionServerlessApplicationRepository(array $args = [])
|
248 |
* @method \Aws\ServiceCatalog\ServiceCatalogClient createServiceCatalog(array $args = [])
|
@@ -275,6 +323,8 @@ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws;
|
|
275 |
* @method \Aws\MultiRegionClient createMultiRegionSwf(array $args = [])
|
276 |
* @method \Aws\TranscribeService\TranscribeServiceClient createTranscribeService(array $args = [])
|
277 |
* @method \Aws\MultiRegionClient createMultiRegionTranscribeService(array $args = [])
|
|
|
|
|
278 |
* @method \Aws\Translate\TranslateClient createTranslate(array $args = [])
|
279 |
* @method \Aws\MultiRegionClient createMultiRegionTranslate(array $args = [])
|
280 |
* @method \Aws\Waf\WafClient createWaf(array $args = [])
|
@@ -289,10 +339,12 @@ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws;
|
|
289 |
* @method \Aws\MultiRegionClient createMultiRegionWorkSpaces(array $args = [])
|
290 |
* @method \Aws\XRay\XRayClient createXRay(array $args = [])
|
291 |
* @method \Aws\MultiRegionClient createMultiRegionXRay(array $args = [])
|
|
|
|
|
292 |
*/
|
293 |
class Sdk
|
294 |
{
|
295 |
-
const VERSION = '3.
|
296 |
/** @var array Arguments for creating clients */
|
297 |
private $args;
|
298 |
/**
|
11 |
* @method \Aws\MultiRegionClient createMultiRegionAcm(array $args = [])
|
12 |
* @method \Aws\AlexaForBusiness\AlexaForBusinessClient createAlexaForBusiness(array $args = [])
|
13 |
* @method \Aws\MultiRegionClient createMultiRegionAlexaForBusiness(array $args = [])
|
14 |
+
* @method \Aws\Amplify\AmplifyClient createAmplify(array $args = [])
|
15 |
+
* @method \Aws\MultiRegionClient createMultiRegionAmplify(array $args = [])
|
16 |
* @method \Aws\ApiGateway\ApiGatewayClient createApiGateway(array $args = [])
|
17 |
* @method \Aws\MultiRegionClient createMultiRegionApiGateway(array $args = [])
|
18 |
+
* @method \Aws\ApiGatewayManagementApi\ApiGatewayManagementApiClient createApiGatewayManagementApi(array $args = [])
|
19 |
+
* @method \Aws\MultiRegionClient createMultiRegionApiGatewayManagementApi(array $args = [])
|
20 |
+
* @method \Aws\ApiGatewayV2\ApiGatewayV2Client createApiGatewayV2(array $args = [])
|
21 |
+
* @method \Aws\MultiRegionClient createMultiRegionApiGatewayV2(array $args = [])
|
22 |
+
* @method \Aws\AppMesh\AppMeshClient createAppMesh(array $args = [])
|
23 |
+
* @method \Aws\MultiRegionClient createMultiRegionAppMesh(array $args = [])
|
24 |
* @method \Aws\AppSync\AppSyncClient createAppSync(array $args = [])
|
25 |
* @method \Aws\MultiRegionClient createMultiRegionAppSync(array $args = [])
|
26 |
* @method \Aws\ApplicationAutoScaling\ApplicationAutoScalingClient createApplicationAutoScaling(array $args = [])
|
39 |
* @method \Aws\MultiRegionClient createMultiRegionBatch(array $args = [])
|
40 |
* @method \Aws\Budgets\BudgetsClient createBudgets(array $args = [])
|
41 |
* @method \Aws\MultiRegionClient createMultiRegionBudgets(array $args = [])
|
42 |
+
* @method \Aws\Chime\ChimeClient createChime(array $args = [])
|
43 |
+
* @method \Aws\MultiRegionClient createMultiRegionChime(array $args = [])
|
44 |
* @method \Aws\Cloud9\Cloud9Client createCloud9(array $args = [])
|
45 |
* @method \Aws\MultiRegionClient createMultiRegionCloud9(array $args = [])
|
46 |
* @method \Aws\CloudDirectory\CloudDirectoryClient createCloudDirectory(array $args = [])
|
83 |
* @method \Aws\MultiRegionClient createMultiRegionCognitoSync(array $args = [])
|
84 |
* @method \Aws\Comprehend\ComprehendClient createComprehend(array $args = [])
|
85 |
* @method \Aws\MultiRegionClient createMultiRegionComprehend(array $args = [])
|
86 |
+
* @method \Aws\ComprehendMedical\ComprehendMedicalClient createComprehendMedical(array $args = [])
|
87 |
+
* @method \Aws\MultiRegionClient createMultiRegionComprehendMedical(array $args = [])
|
88 |
* @method \Aws\ConfigService\ConfigServiceClient createConfigService(array $args = [])
|
89 |
* @method \Aws\MultiRegionClient createMultiRegionConfigService(array $args = [])
|
90 |
* @method \Aws\Connect\ConnectClient createConnect(array $args = [])
|
95 |
* @method \Aws\MultiRegionClient createMultiRegionCostandUsageReportService(array $args = [])
|
96 |
* @method \Aws\DAX\DAXClient createDAX(array $args = [])
|
97 |
* @method \Aws\MultiRegionClient createMultiRegionDAX(array $args = [])
|
98 |
+
* @method \Aws\DLM\DLMClient createDLM(array $args = [])
|
99 |
+
* @method \Aws\MultiRegionClient createMultiRegionDLM(array $args = [])
|
100 |
* @method \Aws\DataPipeline\DataPipelineClient createDataPipeline(array $args = [])
|
101 |
* @method \Aws\MultiRegionClient createMultiRegionDataPipeline(array $args = [])
|
102 |
+
* @method \Aws\DataSync\DataSyncClient createDataSync(array $args = [])
|
103 |
+
* @method \Aws\MultiRegionClient createMultiRegionDataSync(array $args = [])
|
104 |
* @method \Aws\DatabaseMigrationService\DatabaseMigrationServiceClient createDatabaseMigrationService(array $args = [])
|
105 |
* @method \Aws\MultiRegionClient createMultiRegionDatabaseMigrationService(array $args = [])
|
106 |
* @method \Aws\DeviceFarm\DeviceFarmClient createDeviceFarm(array $args = [])
|
109 |
* @method \Aws\MultiRegionClient createMultiRegionDirectConnect(array $args = [])
|
110 |
* @method \Aws\DirectoryService\DirectoryServiceClient createDirectoryService(array $args = [])
|
111 |
* @method \Aws\MultiRegionClient createMultiRegionDirectoryService(array $args = [])
|
112 |
+
* @method \Aws\DocDB\DocDBClient createDocDB(array $args = [])
|
113 |
+
* @method \Aws\MultiRegionClient createMultiRegionDocDB(array $args = [])
|
114 |
* @method \Aws\DynamoDb\DynamoDbClient createDynamoDb(array $args = [])
|
115 |
* @method \Aws\MultiRegionClient createMultiRegionDynamoDb(array $args = [])
|
116 |
* @method \Aws\DynamoDbStreams\DynamoDbStreamsClient createDynamoDbStreams(array $args = [])
|
141 |
* @method \Aws\MultiRegionClient createMultiRegionEmr(array $args = [])
|
142 |
* @method \Aws\FMS\FMSClient createFMS(array $args = [])
|
143 |
* @method \Aws\MultiRegionClient createMultiRegionFMS(array $args = [])
|
144 |
+
* @method \Aws\FSx\FSxClient createFSx(array $args = [])
|
145 |
+
* @method \Aws\MultiRegionClient createMultiRegionFSx(array $args = [])
|
146 |
* @method \Aws\Firehose\FirehoseClient createFirehose(array $args = [])
|
147 |
* @method \Aws\MultiRegionClient createMultiRegionFirehose(array $args = [])
|
148 |
* @method \Aws\GameLift\GameLiftClient createGameLift(array $args = [])
|
149 |
* @method \Aws\MultiRegionClient createMultiRegionGameLift(array $args = [])
|
150 |
* @method \Aws\Glacier\GlacierClient createGlacier(array $args = [])
|
151 |
* @method \Aws\MultiRegionClient createMultiRegionGlacier(array $args = [])
|
152 |
+
* @method \Aws\GlobalAccelerator\GlobalAcceleratorClient createGlobalAccelerator(array $args = [])
|
153 |
+
* @method \Aws\MultiRegionClient createMultiRegionGlobalAccelerator(array $args = [])
|
154 |
* @method \Aws\Glue\GlueClient createGlue(array $args = [])
|
155 |
* @method \Aws\MultiRegionClient createMultiRegionGlue(array $args = [])
|
156 |
* @method \Aws\Greengrass\GreengrassClient createGreengrass(array $args = [])
|
177 |
* @method \Aws\MultiRegionClient createMultiRegionIot(array $args = [])
|
178 |
* @method \Aws\IotDataPlane\IotDataPlaneClient createIotDataPlane(array $args = [])
|
179 |
* @method \Aws\MultiRegionClient createMultiRegionIotDataPlane(array $args = [])
|
180 |
+
* @method \Aws\Kafka\KafkaClient createKafka(array $args = [])
|
181 |
+
* @method \Aws\MultiRegionClient createMultiRegionKafka(array $args = [])
|
182 |
* @method \Aws\Kinesis\KinesisClient createKinesis(array $args = [])
|
183 |
* @method \Aws\MultiRegionClient createMultiRegionKinesis(array $args = [])
|
184 |
* @method \Aws\KinesisAnalytics\KinesisAnalyticsClient createKinesisAnalytics(array $args = [])
|
185 |
* @method \Aws\MultiRegionClient createMultiRegionKinesisAnalytics(array $args = [])
|
186 |
+
* @method \Aws\KinesisAnalyticsV2\KinesisAnalyticsV2Client createKinesisAnalyticsV2(array $args = [])
|
187 |
+
* @method \Aws\MultiRegionClient createMultiRegionKinesisAnalyticsV2(array $args = [])
|
188 |
* @method \Aws\KinesisVideo\KinesisVideoClient createKinesisVideo(array $args = [])
|
189 |
* @method \Aws\MultiRegionClient createMultiRegionKinesisVideo(array $args = [])
|
190 |
* @method \Aws\KinesisVideoArchivedMedia\KinesisVideoArchivedMediaClient createKinesisVideoArchivedMedia(array $args = [])
|
199 |
* @method \Aws\MultiRegionClient createMultiRegionLexModelBuildingService(array $args = [])
|
200 |
* @method \Aws\LexRuntimeService\LexRuntimeServiceClient createLexRuntimeService(array $args = [])
|
201 |
* @method \Aws\MultiRegionClient createMultiRegionLexRuntimeService(array $args = [])
|
202 |
+
* @method \Aws\LicenseManager\LicenseManagerClient createLicenseManager(array $args = [])
|
203 |
+
* @method \Aws\MultiRegionClient createMultiRegionLicenseManager(array $args = [])
|
204 |
* @method \Aws\Lightsail\LightsailClient createLightsail(array $args = [])
|
205 |
* @method \Aws\MultiRegionClient createMultiRegionLightsail(array $args = [])
|
206 |
* @method \Aws\MQ\MQClient createMQ(array $args = [])
|
217 |
* @method \Aws\MultiRegionClient createMultiRegionMarketplaceEntitlementService(array $args = [])
|
218 |
* @method \Aws\MarketplaceMetering\MarketplaceMeteringClient createMarketplaceMetering(array $args = [])
|
219 |
* @method \Aws\MultiRegionClient createMultiRegionMarketplaceMetering(array $args = [])
|
220 |
+
* @method \Aws\MediaConnect\MediaConnectClient createMediaConnect(array $args = [])
|
221 |
+
* @method \Aws\MultiRegionClient createMultiRegionMediaConnect(array $args = [])
|
222 |
* @method \Aws\MediaConvert\MediaConvertClient createMediaConvert(array $args = [])
|
223 |
* @method \Aws\MultiRegionClient createMultiRegionMediaConvert(array $args = [])
|
224 |
* @method \Aws\MediaLive\MediaLiveClient createMediaLive(array $args = [])
|
247 |
* @method \Aws\MultiRegionClient createMultiRegionPI(array $args = [])
|
248 |
* @method \Aws\Pinpoint\PinpointClient createPinpoint(array $args = [])
|
249 |
* @method \Aws\MultiRegionClient createMultiRegionPinpoint(array $args = [])
|
250 |
+
* @method \Aws\PinpointEmail\PinpointEmailClient createPinpointEmail(array $args = [])
|
251 |
+
* @method \Aws\MultiRegionClient createMultiRegionPinpointEmail(array $args = [])
|
252 |
+
* @method \Aws\PinpointSMSVoice\PinpointSMSVoiceClient createPinpointSMSVoice(array $args = [])
|
253 |
+
* @method \Aws\MultiRegionClient createMultiRegionPinpointSMSVoice(array $args = [])
|
254 |
* @method \Aws\Polly\PollyClient createPolly(array $args = [])
|
255 |
* @method \Aws\MultiRegionClient createMultiRegionPolly(array $args = [])
|
256 |
* @method \Aws\Pricing\PricingClient createPricing(array $args = [])
|
257 |
* @method \Aws\MultiRegionClient createMultiRegionPricing(array $args = [])
|
258 |
+
* @method \Aws\QuickSight\QuickSightClient createQuickSight(array $args = [])
|
259 |
+
* @method \Aws\MultiRegionClient createMultiRegionQuickSight(array $args = [])
|
260 |
+
* @method \Aws\RAM\RAMClient createRAM(array $args = [])
|
261 |
+
* @method \Aws\MultiRegionClient createMultiRegionRAM(array $args = [])
|
262 |
+
* @method \Aws\RDSDataService\RDSDataServiceClient createRDSDataService(array $args = [])
|
263 |
+
* @method \Aws\MultiRegionClient createMultiRegionRDSDataService(array $args = [])
|
264 |
* @method \Aws\Rds\RdsClient createRds(array $args = [])
|
265 |
* @method \Aws\MultiRegionClient createMultiRegionRds(array $args = [])
|
266 |
* @method \Aws\Redshift\RedshiftClient createRedshift(array $args = [])
|
271 |
* @method \Aws\MultiRegionClient createMultiRegionResourceGroups(array $args = [])
|
272 |
* @method \Aws\ResourceGroupsTaggingAPI\ResourceGroupsTaggingAPIClient createResourceGroupsTaggingAPI(array $args = [])
|
273 |
* @method \Aws\MultiRegionClient createMultiRegionResourceGroupsTaggingAPI(array $args = [])
|
274 |
+
* @method \Aws\RoboMaker\RoboMakerClient createRoboMaker(array $args = [])
|
275 |
+
* @method \Aws\MultiRegionClient createMultiRegionRoboMaker(array $args = [])
|
276 |
* @method \Aws\Route53\Route53Client createRoute53(array $args = [])
|
277 |
* @method \Aws\MultiRegionClient createMultiRegionRoute53(array $args = [])
|
278 |
* @method \Aws\Route53Domains\Route53DomainsClient createRoute53Domains(array $args = [])
|
279 |
* @method \Aws\MultiRegionClient createMultiRegionRoute53Domains(array $args = [])
|
280 |
+
* @method \Aws\Route53Resolver\Route53ResolverClient createRoute53Resolver(array $args = [])
|
281 |
+
* @method \Aws\MultiRegionClient createMultiRegionRoute53Resolver(array $args = [])
|
282 |
* @method \Aws\S3\S3Client createS3(array $args = [])
|
283 |
* @method \Aws\S3\S3MultiRegionClient createMultiRegionS3(array $args = [])
|
284 |
+
* @method \Aws\S3Control\S3ControlClient createS3Control(array $args = [])
|
285 |
+
* @method \Aws\MultiRegionClient createMultiRegionS3Control(array $args = [])
|
286 |
* @method \Aws\SageMaker\SageMakerClient createSageMaker(array $args = [])
|
287 |
* @method \Aws\MultiRegionClient createMultiRegionSageMaker(array $args = [])
|
288 |
* @method \Aws\SageMakerRuntime\SageMakerRuntimeClient createSageMakerRuntime(array $args = [])
|
289 |
* @method \Aws\MultiRegionClient createMultiRegionSageMakerRuntime(array $args = [])
|
290 |
* @method \Aws\SecretsManager\SecretsManagerClient createSecretsManager(array $args = [])
|
291 |
* @method \Aws\MultiRegionClient createMultiRegionSecretsManager(array $args = [])
|
292 |
+
* @method \Aws\SecurityHub\SecurityHubClient createSecurityHub(array $args = [])
|
293 |
+
* @method \Aws\MultiRegionClient createMultiRegionSecurityHub(array $args = [])
|
294 |
* @method \Aws\ServerlessApplicationRepository\ServerlessApplicationRepositoryClient createServerlessApplicationRepository(array $args = [])
|
295 |
* @method \Aws\MultiRegionClient createMultiRegionServerlessApplicationRepository(array $args = [])
|
296 |
* @method \Aws\ServiceCatalog\ServiceCatalogClient createServiceCatalog(array $args = [])
|
323 |
* @method \Aws\MultiRegionClient createMultiRegionSwf(array $args = [])
|
324 |
* @method \Aws\TranscribeService\TranscribeServiceClient createTranscribeService(array $args = [])
|
325 |
* @method \Aws\MultiRegionClient createMultiRegionTranscribeService(array $args = [])
|
326 |
+
* @method \Aws\Transfer\TransferClient createTransfer(array $args = [])
|
327 |
+
* @method \Aws\MultiRegionClient createMultiRegionTransfer(array $args = [])
|
328 |
* @method \Aws\Translate\TranslateClient createTranslate(array $args = [])
|
329 |
* @method \Aws\MultiRegionClient createMultiRegionTranslate(array $args = [])
|
330 |
* @method \Aws\Waf\WafClient createWaf(array $args = [])
|
339 |
* @method \Aws\MultiRegionClient createMultiRegionWorkSpaces(array $args = [])
|
340 |
* @method \Aws\XRay\XRayClient createXRay(array $args = [])
|
341 |
* @method \Aws\MultiRegionClient createMultiRegionXRay(array $args = [])
|
342 |
+
* @method \Aws\signer\signerClient createsigner(array $args = [])
|
343 |
+
* @method \Aws\MultiRegionClient createMultiRegionsigner(array $args = [])
|
344 |
*/
|
345 |
class Sdk
|
346 |
{
|
347 |
+
const VERSION = '3.84.0';
|
348 |
/** @var array Arguments for creating clients */
|
349 |
private $args;
|
350 |
/**
|
vendor/Aws3/Aws/Signature/SignatureProvider.php
CHANGED
@@ -40,6 +40,7 @@ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\UnresolvedSignatureExcep
|
|
40 |
*/
|
41 |
class SignatureProvider
|
42 |
{
|
|
|
43 |
/**
|
44 |
* Resolves and signature provider and ensures a non-null return value.
|
45 |
*
|
@@ -104,7 +105,7 @@ class SignatureProvider
|
|
104 |
switch ($version) {
|
105 |
case 's3v4':
|
106 |
case 'v4':
|
107 |
-
return $service
|
108 |
case 'v4-unsigned-body':
|
109 |
return new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Signature\SignatureV4($service, $region, ['unsigned-body' => 'true']);
|
110 |
case 'anonymous':
|
40 |
*/
|
41 |
class SignatureProvider
|
42 |
{
|
43 |
+
private static $s3v4SignedServices = ['s3' => true, 's3control' => true];
|
44 |
/**
|
45 |
* Resolves and signature provider and ensures a non-null return value.
|
46 |
*
|
105 |
switch ($version) {
|
106 |
case 's3v4':
|
107 |
case 'v4':
|
108 |
+
return !empty(self::$s3v4SignedServices[$service]) ? new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Signature\S3SignatureV4($service, $region) : new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Signature\SignatureV4($service, $region);
|
109 |
case 'v4-unsigned-body':
|
110 |
return new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Signature\SignatureV4($service, $region, ['unsigned-body' => 'true']);
|
111 |
case 'anonymous':
|
vendor/Aws3/Aws/Signature/SignatureV4.php
CHANGED
@@ -15,12 +15,24 @@ class SignatureV4 implements \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Signatur
|
|
15 |
use SignatureTrait;
|
16 |
const ISO8601_BASIC = 'Ymd\\THis\\Z';
|
17 |
const UNSIGNED_PAYLOAD = 'UNSIGNED-PAYLOAD';
|
|
|
18 |
/** @var string */
|
19 |
private $service;
|
20 |
/** @var string */
|
21 |
private $region;
|
22 |
/** @var bool */
|
23 |
private $unsigned;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
/**
|
25 |
* @param string $service Service name to use when signing
|
26 |
* @param string $region Region name to use when signing
|
@@ -46,7 +58,7 @@ class SignatureV4 implements \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Signatur
|
|
46 |
$cs = $this->createScope($sdt, $this->region, $this->service);
|
47 |
$payload = $this->getPayload($request);
|
48 |
if ($payload == self::UNSIGNED_PAYLOAD) {
|
49 |
-
$parsed['headers'][
|
50 |
}
|
51 |
$context = $this->createContext($parsed, $payload);
|
52 |
$toSign = $this->createStringToSign($ldt, $cs, $context['creq']);
|
@@ -55,6 +67,25 @@ class SignatureV4 implements \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Signatur
|
|
55 |
$parsed['headers']['Authorization'] = ["AWS4-HMAC-SHA256 " . "Credential={$credentials->getAccessKeyId()}/{$cs}, " . "SignedHeaders={$context['headers']}, Signature={$signature}"];
|
56 |
return $this->buildRequest($parsed);
|
57 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
58 |
public function presign(\DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\RequestInterface $request, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Credentials\CredentialsInterface $credentials, $expires, array $options = [])
|
59 |
{
|
60 |
$startTimestamp = isset($options['start_time']) ? $this->convertToTimestamp($options['start_time'], null) : time();
|
@@ -65,10 +96,13 @@ class SignatureV4 implements \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Signatur
|
|
65 |
$shortDate = substr($httpDate, 0, 8);
|
66 |
$scope = $this->createScope($shortDate, $this->region, $this->service);
|
67 |
$credential = $credentials->getAccessKeyId() . '/' . $scope;
|
|
|
|
|
|
|
68 |
$parsed['query']['X-Amz-Algorithm'] = 'AWS4-HMAC-SHA256';
|
69 |
$parsed['query']['X-Amz-Credential'] = $credential;
|
70 |
$parsed['query']['X-Amz-Date'] = gmdate('Ymd\\THis\\Z', $startTimestamp);
|
71 |
-
$parsed['query']['X-Amz-SignedHeaders'] = '
|
72 |
$parsed['query']['X-Amz-Expires'] = $this->convertExpires($expiresTimestamp, $startTimestamp);
|
73 |
$context = $this->createContext($parsed, $payload);
|
74 |
$stringToSign = $this->createStringToSign($httpDate, $scope, $context['creq']);
|
@@ -106,9 +140,9 @@ class SignatureV4 implements \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Signatur
|
|
106 |
return self::UNSIGNED_PAYLOAD;
|
107 |
}
|
108 |
// Calculate the request signature payload
|
109 |
-
if ($request->hasHeader(
|
110 |
// Handle streaming operations (e.g. Glacier.UploadArchive)
|
111 |
-
return $request->getHeaderLine(
|
112 |
}
|
113 |
if (!$request->getBody()->isSeekable()) {
|
114 |
throw new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\CouldNotCreateChecksumException('sha256');
|
@@ -149,10 +183,7 @@ class SignatureV4 implements \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Signatur
|
|
149 |
*/
|
150 |
private function createContext(array $parsedRequest, $payload)
|
151 |
{
|
152 |
-
|
153 |
-
// would potentially cause a signature mismatch when sending a request
|
154 |
-
// through a proxy or if modified at the HTTP client level.
|
155 |
-
static $blacklist = ['cache-control' => true, 'content-type' => true, 'content-length' => true, 'expect' => true, 'max-forwards' => true, 'pragma' => true, 'range' => true, 'te' => true, 'if-match' => true, 'if-none-match' => true, 'if-modified-since' => true, 'if-unmodified-since' => true, 'if-range' => true, 'accept' => true, 'authorization' => true, 'proxy-authorization' => true, 'from' => true, 'referer' => true, 'user-agent' => true, 'x-amzn-trace-id' => true];
|
156 |
// Normalize the path as required by SigV4
|
157 |
$canon = $parsedRequest['method'] . "\n" . $this->createCanonicalizedPath($parsedRequest['path']) . "\n" . $this->getCanonicalizedQuery($parsedRequest['query']) . "\n";
|
158 |
// Case-insensitively aggregate all of the headers.
|
@@ -224,7 +255,8 @@ class SignatureV4 implements \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Signatur
|
|
224 |
if (substr($lname, 0, 5) == 'x-amz') {
|
225 |
$parsedRequest['query'][$name] = $header;
|
226 |
}
|
227 |
-
|
|
|
228 |
unset($parsedRequest['headers'][$name]);
|
229 |
}
|
230 |
}
|
15 |
use SignatureTrait;
|
16 |
const ISO8601_BASIC = 'Ymd\\THis\\Z';
|
17 |
const UNSIGNED_PAYLOAD = 'UNSIGNED-PAYLOAD';
|
18 |
+
const AMZ_CONTENT_SHA256_HEADER = 'X-Amz-Content-Sha256';
|
19 |
/** @var string */
|
20 |
private $service;
|
21 |
/** @var string */
|
22 |
private $region;
|
23 |
/** @var bool */
|
24 |
private $unsigned;
|
25 |
+
/**
|
26 |
+
* The following headers are not signed because signing these headers
|
27 |
+
* would potentially cause a signature mismatch when sending a request
|
28 |
+
* through a proxy or if modified at the HTTP client level.
|
29 |
+
*
|
30 |
+
* @return array
|
31 |
+
*/
|
32 |
+
private function getHeaderBlacklist()
|
33 |
+
{
|
34 |
+
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];
|
35 |
+
}
|
36 |
/**
|
37 |
* @param string $service Service name to use when signing
|
38 |
* @param string $region Region name to use when signing
|
58 |
$cs = $this->createScope($sdt, $this->region, $this->service);
|
59 |
$payload = $this->getPayload($request);
|
60 |
if ($payload == self::UNSIGNED_PAYLOAD) {
|
61 |
+
$parsed['headers'][self::AMZ_CONTENT_SHA256_HEADER] = [$payload];
|
62 |
}
|
63 |
$context = $this->createContext($parsed, $payload);
|
64 |
$toSign = $this->createStringToSign($ldt, $cs, $context['creq']);
|
67 |
$parsed['headers']['Authorization'] = ["AWS4-HMAC-SHA256 " . "Credential={$credentials->getAccessKeyId()}/{$cs}, " . "SignedHeaders={$context['headers']}, Signature={$signature}"];
|
68 |
return $this->buildRequest($parsed);
|
69 |
}
|
70 |
+
/**
|
71 |
+
* Get the headers that were used to pre-sign the request.
|
72 |
+
* Used for the X-Amz-SignedHeaders header.
|
73 |
+
*
|
74 |
+
* @param array $headers
|
75 |
+
* @return array
|
76 |
+
*/
|
77 |
+
private function getPresignHeaders(array $headers)
|
78 |
+
{
|
79 |
+
$presignHeaders = [];
|
80 |
+
$blacklist = $this->getHeaderBlacklist();
|
81 |
+
foreach ($headers as $name => $value) {
|
82 |
+
$lName = strtolower($name);
|
83 |
+
if (!isset($blacklist[$lName]) && $name !== self::AMZ_CONTENT_SHA256_HEADER) {
|
84 |
+
$presignHeaders[] = $lName;
|
85 |
+
}
|
86 |
+
}
|
87 |
+
return $presignHeaders;
|
88 |
+
}
|
89 |
public function presign(\DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\RequestInterface $request, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Credentials\CredentialsInterface $credentials, $expires, array $options = [])
|
90 |
{
|
91 |
$startTimestamp = isset($options['start_time']) ? $this->convertToTimestamp($options['start_time'], null) : time();
|
96 |
$shortDate = substr($httpDate, 0, 8);
|
97 |
$scope = $this->createScope($shortDate, $this->region, $this->service);
|
98 |
$credential = $credentials->getAccessKeyId() . '/' . $scope;
|
99 |
+
if ($credentials->getSecurityToken()) {
|
100 |
+
unset($parsed['headers']['X-Amz-Security-Token']);
|
101 |
+
}
|
102 |
$parsed['query']['X-Amz-Algorithm'] = 'AWS4-HMAC-SHA256';
|
103 |
$parsed['query']['X-Amz-Credential'] = $credential;
|
104 |
$parsed['query']['X-Amz-Date'] = gmdate('Ymd\\THis\\Z', $startTimestamp);
|
105 |
+
$parsed['query']['X-Amz-SignedHeaders'] = implode(';', $this->getPresignHeaders($parsed['headers']));
|
106 |
$parsed['query']['X-Amz-Expires'] = $this->convertExpires($expiresTimestamp, $startTimestamp);
|
107 |
$context = $this->createContext($parsed, $payload);
|
108 |
$stringToSign = $this->createStringToSign($httpDate, $scope, $context['creq']);
|
140 |
return self::UNSIGNED_PAYLOAD;
|
141 |
}
|
142 |
// Calculate the request signature payload
|
143 |
+
if ($request->hasHeader(self::AMZ_CONTENT_SHA256_HEADER)) {
|
144 |
// Handle streaming operations (e.g. Glacier.UploadArchive)
|
145 |
+
return $request->getHeaderLine(self::AMZ_CONTENT_SHA256_HEADER);
|
146 |
}
|
147 |
if (!$request->getBody()->isSeekable()) {
|
148 |
throw new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\CouldNotCreateChecksumException('sha256');
|
183 |
*/
|
184 |
private function createContext(array $parsedRequest, $payload)
|
185 |
{
|
186 |
+
$blacklist = $this->getHeaderBlacklist();
|
|
|
|
|
|
|
187 |
// Normalize the path as required by SigV4
|
188 |
$canon = $parsedRequest['method'] . "\n" . $this->createCanonicalizedPath($parsedRequest['path']) . "\n" . $this->getCanonicalizedQuery($parsedRequest['query']) . "\n";
|
189 |
// Case-insensitively aggregate all of the headers.
|
255 |
if (substr($lname, 0, 5) == 'x-amz') {
|
256 |
$parsedRequest['query'][$name] = $header;
|
257 |
}
|
258 |
+
$blacklist = $this->getHeaderBlacklist();
|
259 |
+
if (isset($blacklist[$lname]) || $lname === strtolower(self::AMZ_CONTENT_SHA256_HEADER)) {
|
260 |
unset($parsedRequest['headers'][$name]);
|
261 |
}
|
262 |
}
|
vendor/Aws3/Aws/TraceMiddleware.php
CHANGED
@@ -194,7 +194,9 @@ class TraceMiddleware
|
|
194 |
{
|
195 |
if ($this->config['scrub_auth']) {
|
196 |
foreach ($this->config['auth_strings'] as $pattern => $replacement) {
|
197 |
-
$value =
|
|
|
|
|
198 |
}
|
199 |
}
|
200 |
call_user_func($this->config['logfn'], $value);
|
194 |
{
|
195 |
if ($this->config['scrub_auth']) {
|
196 |
foreach ($this->config['auth_strings'] as $pattern => $replacement) {
|
197 |
+
$value = preg_replace_callback($pattern, function ($matches) use($replacement) {
|
198 |
+
return $replacement;
|
199 |
+
}, $value);
|
200 |
}
|
201 |
}
|
202 |
call_user_func($this->config['logfn'], $value);
|
vendor/Aws3/Aws/Waiter.php
CHANGED
@@ -178,12 +178,7 @@ class Waiter implements \DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Promis
|
|
178 |
return false;
|
179 |
}
|
180 |
$actuals = $result->search($acceptor['argument']) ?: [];
|
181 |
-
|
182 |
-
if ($actual == $acceptor['expected']) {
|
183 |
-
return true;
|
184 |
-
}
|
185 |
-
}
|
186 |
-
return false;
|
187 |
}
|
188 |
/**
|
189 |
* @param Result $result Result or exception.
|
178 |
return false;
|
179 |
}
|
180 |
$actuals = $result->search($acceptor['argument']) ?: [];
|
181 |
+
return in_array($acceptor['expected'], $actuals);
|
|
|
|
|
|
|
|
|
|
|
182 |
}
|
183 |
/**
|
184 |
* @param Result $result Result or exception.
|
vendor/Aws3/Aws/WrappedHttpHandler.php
CHANGED
@@ -64,7 +64,7 @@ class WrappedHttpHandler
|
|
64 |
$fn = $this->httpHandler;
|
65 |
$options = $command['@http'] ?: [];
|
66 |
$stats = [];
|
67 |
-
if ($this->collectStats) {
|
68 |
$options['http_stats_receiver'] = static function (array $transferStats) use(&$stats) {
|
69 |
$stats = $transferStats;
|
70 |
};
|
64 |
$fn = $this->httpHandler;
|
65 |
$options = $command['@http'] ?: [];
|
66 |
$stats = [];
|
67 |
+
if ($this->collectStats || !empty($options['collect_stats'])) {
|
68 |
$options['http_stats_receiver'] = static function (array $transferStats) use(&$stats) {
|
69 |
$stats = $transferStats;
|
70 |
};
|
vendor/Aws3/Aws/data/acm-pca/2017-08-22/paginators-1.json.php
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
<?php
|
2 |
|
3 |
// This file was auto-generated from sdk-root/src/data/acm-pca/2017-08-22/paginators-1.json
|
4 |
-
return ['pagination' => []];
|
1 |
<?php
|
2 |
|
3 |
// This file was auto-generated from sdk-root/src/data/acm-pca/2017-08-22/paginators-1.json
|
4 |
+
return ['pagination' => ['ListCertificateAuthorities' => ['input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'CertificateAuthorities']]];
|
vendor/Aws3/Aws/data/acm-pca/2017-08-22/waiters-2.json.php
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
// This file was auto-generated from sdk-root/src/data/acm-pca/2017-08-22/waiters-2.json
|
4 |
+
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']]]]];
|
vendor/Aws3/Aws/data/acm/2015-12-08/waiters-2.json.php
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
// This file was auto-generated from sdk-root/src/data/acm/2015-12-08/waiters-2.json
|
4 |
+
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']]]]];
|
vendor/Aws3/Aws/data/alexaforbusiness/2017-11-09/api-2.json.php
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
<?php
|
2 |
|
3 |
// This file was auto-generated from sdk-root/src/data/alexaforbusiness/2017-11-09/api-2.json
|
4 |
-
return ['version' => '2.0', 'metadata' => ['apiVersion' => '2017-11-09', 'endpointPrefix' => 'a4b', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceFullName' => 'Alexa For Business', 'signatureVersion' => 'v4', 'targetPrefix' => 'AlexaForBusiness', 'uid' => 'alexaforbusiness-2017-11-09'], 'operations' => ['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' => 'DeviceNotRegisteredException']]], 'AssociateSkillGroupWithRoom' => ['name' => 'AssociateSkillGroupWithRoom', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'AssociateSkillGroupWithRoomRequest'], 'output' => ['shape' => 'AssociateSkillGroupWithRoomResponse']], 'CreateAddressBook' => ['name' => 'CreateAddressBook', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'CreateAddressBookRequest'], 'output' => ['shape' => 'CreateAddressBookResponse'], 'errors' => [['shape' => 'AlreadyExistsException'], ['shape' => 'LimitExceededException']]], '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']]], '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']]], 'CreateUser' => ['name' => 'CreateUser', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'CreateUserRequest'], 'output' => ['shape' => 'CreateUserResponse'], 'errors' => [['shape' => 'ResourceInUseException'], ['shape' => 'LimitExceededException']]], 'DeleteAddressBook' => ['name' => 'DeleteAddressBook', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DeleteAddressBookRequest'], 'output' => ['shape' => 'DeleteAddressBookResponse'], 'errors' => [['shape' => 'NotFoundException']]], 'DeleteContact' => ['name' => 'DeleteContact', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DeleteContactRequest'], 'output' => ['shape' => 'DeleteContactResponse'], 'errors' => [['shape' => 'NotFoundException']]], 'DeleteProfile' => ['name' => 'DeleteProfile', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DeleteProfileRequest'], 'output' => ['shape' => 'DeleteProfileResponse'], 'errors' => [['shape' => 'NotFoundException']]], 'DeleteRoom' => ['name' => 'DeleteRoom', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DeleteRoomRequest'], 'output' => ['shape' => 'DeleteRoomResponse'], 'errors' => [['shape' => 'NotFoundException']]], 'DeleteRoomSkillParameter' => ['name' => 'DeleteRoomSkillParameter', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DeleteRoomSkillParameterRequest'], 'output' => ['shape' => 'DeleteRoomSkillParameterResponse']], 'DeleteSkillGroup' => ['name' => 'DeleteSkillGroup', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DeleteSkillGroupRequest'], 'output' => ['shape' => 'DeleteSkillGroupResponse'], 'errors' => [['shape' => 'NotFoundException']]], 'DeleteUser' => ['name' => 'DeleteUser', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DeleteUserRequest'], 'output' => ['shape' => 'DeleteUserResponse'], 'errors' => [['shape' => 'NotFoundException']]], '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' => 'DeviceNotRegisteredException']]], 'DisassociateSkillGroupFromRoom' => ['name' => 'DisassociateSkillGroupFromRoom', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DisassociateSkillGroupFromRoomRequest'], 'output' => ['shape' => 'DisassociateSkillGroupFromRoomResponse']], 'GetAddressBook' => ['name' => 'GetAddressBook', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'GetAddressBookRequest'], 'output' => ['shape' => 'GetAddressBookResponse'], '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']]], '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']]], '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']], 'ListTags' => ['name' => 'ListTags', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'ListTagsRequest'], 'output' => ['shape' => 'ListTagsResponse'], 'errors' => [['shape' => 'NotFoundException']]], 'PutRoomSkillParameter' => ['name' => 'PutRoomSkillParameter', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'PutRoomSkillParameterRequest'], 'output' => ['shape' => 'PutRoomSkillParameterResponse']], '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']]], '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']]], 'StartDeviceSync' => ['name' => 'StartDeviceSync', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'StartDeviceSyncRequest'], 'output' => ['shape' => 'StartDeviceSyncResponse'], 'errors' => [['shape' => 'DeviceNotRegisteredException']]], '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']]], 'UpdateContact' => ['name' => 'UpdateContact', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'UpdateContactRequest'], 'output' => ['shape' => 'UpdateContactResponse'], 'errors' => [['shape' => 'NotFoundException']]], 'UpdateDevice' => ['name' => 'UpdateDevice', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'UpdateDeviceRequest'], 'output' => ['shape' => 'UpdateDeviceResponse'], 'errors' => [['shape' => 'NotFoundException'], ['shape' => 'DeviceNotRegisteredException']]], 'UpdateProfile' => ['name' => 'UpdateProfile', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'UpdateProfileRequest'], 'output' => ['shape' => 'UpdateProfileResponse'], 'errors' => [['shape' => 'NotFoundException'], ['shape' => 'NameInUseException']]], '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']]]], '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], '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' => []], 'Boolean' => ['type' => 'boolean'], 'ClientRequestToken' => ['type' => 'string', 'max' => 150, 'min' => 10, 'pattern' => '[a-zA-Z0-9][a-zA-Z0-9_-]*'], '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]*'], 'CreateAddressBookRequest' => ['type' => 'structure', 'required' => ['Name'], 'members' => ['Name' => ['shape' => 'AddressBookName'], 'Description' => ['shape' => 'AddressBookDescription'], 'ClientRequestToken' => ['shape' => 'ClientRequestToken', 'idempotencyToken' => \true]]], 'CreateAddressBookResponse' => ['type' => 'structure', 'members' => ['AddressBookArn' => ['shape' => 'Arn']]], 'CreateContactRequest' => ['type' => 'structure', 'required' => ['FirstName', 'PhoneNumber'], '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']]], 'DeleteAddressBookRequest' => ['type' => 'structure', 'required' => ['AddressBookArn'], 'members' => ['AddressBookArn' => ['shape' => 'Arn']]], 'DeleteAddressBookResponse' => ['type' => 'structure', 'members' => []], 'DeleteContactRequest' => ['type' => 'structure', 'required' => ['ContactArn'], 'members' => ['ContactArn' => ['shape' => 'Arn']]], 'DeleteContactResponse' => ['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' => []], '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' => []], '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}'], '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' => []], '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,}$'], '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})'], '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], 'GetAddressBookRequest' => ['type' => 'structure', 'required' => ['AddressBookArn'], 'members' => ['AddressBookArn' => ['shape' => 'Arn']]], 'GetAddressBookResponse' => ['type' => 'structure', 'members' => ['AddressBook' => ['shape' => 'AddressBook']]], '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']]], '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']]], 'InvalidUserStatusException' => ['type' => 'structure', 'members' => ['Message' => ['shape' => 'ErrorMessage']], 'exception' => \true], 'LimitExceededException' => ['type' => 'structure', 'members' => ['Message' => ['shape' => 'ErrorMessage']], 'exception' => \true], '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'], 'NextToken' => ['shape' => 'NextToken'], 'MaxResults' => ['shape' => 'SkillListMaxResults']]], 'ListSkillsResponse' => ['type' => 'structure', 'members' => ['SkillSummaries' => ['shape' => 'SkillSummaryList'], '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'], 'NameInUseException' => ['type' => 'structure', 'members' => ['Message' => ['shape' => 'ErrorMessage']], 'exception' => \true], 'NextToken' => ['type' => 'string', 'max' => 1000, 'min' => 1], 'NotFoundException' => ['type' => 'structure', 'members' => ['Message' => ['shape' => 'ErrorMessage']], 'exception' => \true], 'Profile' => ['type' => 'structure', 'members' => ['ProfileArn' => ['shape' => 'Arn'], 'ProfileName' => ['shape' => 'ProfileName'], 'Address' => ['shape' => 'Address'], 'Timezone' => ['shape' => 'Timezone'], 'DistanceUnit' => ['shape' => 'DistanceUnit'], 'TemperatureUnit' => ['shape' => 'TemperatureUnit'], 'WakeWord' => ['shape' => 'WakeWord'], 'SetupModeDisabled' => ['shape' => 'Boolean'], 'MaxVolumeLimit' => ['shape' => 'MaxVolumeLimit'], 'PSTNEnabled' => ['shape' => 'Boolean']]], 'ProfileData' => ['type' => 'structure', 'members' => ['ProfileArn' => ['shape' => 'Arn'], 'ProfileName' => ['shape' => 'ProfileName'], '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], 'PutRoomSkillParameterRequest' => ['type' => 'structure', 'required' => ['SkillId', 'RoomSkillParameter'], 'members' => ['RoomArn' => ['shape' => 'Arn'], 'SkillId' => ['shape' => 'SkillId'], 'RoomSkillParameter' => ['shape' => 'RoomSkillParameter']]], 'PutRoomSkillParameterResponse' => ['type' => 'structure', 'members' => []], '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], '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']], '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' => []], '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]*'], 'SkillSummary' => ['type' => 'structure', 'members' => ['SkillId' => ['shape' => 'SkillId'], 'SkillName' => ['shape' => 'SkillName'], 'SupportsLinking' => ['shape' => 'boolean']]], 'SkillSummaryList' => ['type' => 'list', 'member' => ['shape' => 'SkillSummary']], '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' => []], 'Tag' => ['type' => 'structure', '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'], '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' => []], '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'], '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' => []], '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}'], '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@_+.-]*']]];
|
1 |
<?php
|
2 |
|
3 |
// This file was auto-generated from sdk-root/src/data/alexaforbusiness/2017-11-09/api-2.json
|
4 |
+
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']]], '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']]], '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']]], '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']]], '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' => ['OrganizationArn' => ['shape' => 'Arn'], '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' => ['OrganizationArn' => ['shape' => 'Arn'], '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']]], '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], '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' => []], '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'], '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@_+.-]*']]];
|
vendor/Aws3/Aws/data/alexaforbusiness/2017-11-09/paginators-1.json.php
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
<?php
|
2 |
|
3 |
// This file was auto-generated from sdk-root/src/data/alexaforbusiness/2017-11-09/paginators-1.json
|
4 |
-
return ['pagination' => ['ListDeviceEvents' => ['input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults'], 'ListSkills' => ['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']]];
|
1 |
<?php
|
2 |
|
3 |
// This file was auto-generated from sdk-root/src/data/alexaforbusiness/2017-11-09/paginators-1.json
|
4 |
+
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']]];
|
vendor/Aws3/Aws/data/amplify/2017-07-25/api-2.json.php
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
// This file was auto-generated from sdk-root/src/data/amplify/2017-07-25/api-2.json
|
4 |
+
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']]];
|
vendor/Aws3/Aws/data/amplify/2017-07-25/paginators-1.json.php
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
// This file was auto-generated from sdk-root/src/data/amplify/2017-07-25/paginators-1.json
|
4 |
+
return ['pagination' => []];
|
vendor/Aws3/Aws/data/apigateway/2015-07-09/api-2.json.php
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
<?php
|
2 |
|
3 |
// This file was auto-generated from sdk-root/src/data/apigateway/2015-07-09/api-2.json
|
4 |
-
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']]], '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']]], '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'], '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'], 'MapOfHeaderValues' => ['type' => 'map', 'key' => ['shape' => 'String'], 'value' => ['shape' => 'String']], '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'], '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' => 'MapOfHeaderValues'], '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' => 'MapOfHeaderValues'], 'clientCertificateId' => ['shape' => 'String'], 'stageVariables' => ['shape' => 'MapOfStringToString']]], 'TestInvokeMethodResponse' => ['type' => 'structure', 'members' => ['status' => ['shape' => 'Integer'], 'body' => ['shape' => 'String'], 'headers' => ['shape' => 'MapOfHeaderValues'], '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']]]]];
|
1 |
<?php
|
2 |
|
3 |
// This file was auto-generated from sdk-root/src/data/apigateway/2015-07-09/api-2.json
|
4 |
+
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']]]]];
|
vendor/Aws3/Aws/data/apigatewaymanagementapi/2018-11-29/api-2.json.php
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
// This file was auto-generated from sdk-root/src/data/apigatewaymanagementapi/2018-11-29/api-2.json
|
4 |
+
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']]];
|
vendor/Aws3/Aws/data/apigatewaymanagementapi/2018-11-29/paginators-1.json.php
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
// This file was auto-generated from sdk-root/src/data/apigatewaymanagementapi/2018-11-29/paginators-1.json
|
4 |
+
return ['pagination' => []];
|
vendor/Aws3/Aws/data/apigatewayv2/2018-11-29/api-2.json.php
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
// This file was auto-generated from sdk-root/src/data/apigatewayv2/2018-11-29/api-2.json
|
4 |
+
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']], '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']]], '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']], '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' => ['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', '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' => ['ApiId' => ['shape' => '__string', 'location' => 'querystring', 'locationName' => 'apiId'], 'ApiMappingId' => ['shape' => '__string', 'location' => 'uri', 'locationName' => 'apiMappingId'], 'DomainName' => ['shape' => '__string', 'location' => 'uri', 'locationName' => 'domainName']], 'required' => ['ApiMappingId', 'ApiId', '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' => ['ApiId' => ['shape' => '__string', 'location' => 'querystring', 'locationName' => 'apiId'], 'ApiMappingId' => ['shape' => '__string', 'location' => 'uri', 'locationName' => 'apiMappingId'], 'DomainName' => ['shape' => '__string', 'location' => 'uri', 'locationName' => 'domainName']], 'required' => ['ApiMappingId', 'ApiId', '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' => ['ApiId' => ['shape' => 'Id', 'locationName' => 'apiId'], 'ApiMappingId' => ['shape' => 'Id', 'locationName' => 'apiMappingId'], 'ApiMappingKey' => ['shape' => 'SelectionKey', 'locationName' => 'apiMappingKey'], 'Stage' => ['shape' => 'StringWithLengthBetween1And128', 'locationName' => 'stage']]], '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']], '__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']]]];
|
vendor/Aws3/Aws/data/apigatewayv2/2018-11-29/paginators-1.json.php
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
// This file was auto-generated from sdk-root/src/data/apigatewayv2/2018-11-29/paginators-1.json
|
4 |
+
return ['pagination' => []];
|
vendor/Aws3/Aws/data/application-autoscaling/2016-02-06/api-2.json.php
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
<?php
|
2 |
|
3 |
// This file was auto-generated from sdk-root/src/data/application-autoscaling/2016-02-06/api-2.json
|
4 |
-
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'], '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'], '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']], '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']], '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]*']]];
|
1 |
<?php
|
2 |
|
3 |
// This file was auto-generated from sdk-root/src/data/application-autoscaling/2016-02-06/api-2.json
|
4 |
+
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'], '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'], '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]*']]];
|
vendor/Aws3/Aws/data/appmesh/2018-10-01/api-2.json.php
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
// This file was auto-generated from sdk-root/src/data/appmesh/2018-10-01/api-2.json
|
4 |
+
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']]];
|
vendor/Aws3/Aws/data/appmesh/2018-10-01/paginators-1.json.php
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
// This file was auto-generated from sdk-root/src/data/appmesh/2018-10-01/paginators-1.json
|
4 |
+
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']]];
|
vendor/Aws3/Aws/data/appstream/2016-12-01/api-2.json.php
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
<?php
|
2 |
|
3 |
// This file was auto-generated from sdk-root/src/data/appstream/2016-12-01/api-2.json
|
4 |
-
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']]], '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']]], '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']]], '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']]], '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']]], 'DeleteStack' => ['name' => 'DeleteStack', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DeleteStackRequest'], 'output' => ['shape' => 'DeleteStackResult'], 'errors' => [['shape' => 'ResourceInUseException'], ['shape' => 'ResourceNotFoundException'], ['shape' => 'ConcurrentModificationException']]], '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']]], 'DescribeImages' => ['name' => 'DescribeImages', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DescribeImagesRequest'], 'output' => ['shape' => 'DescribeImagesResult'], 'errors' => [['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']]], 'DisassociateFleet' => ['name' => 'DisassociateFleet', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DisassociateFleetRequest'], 'output' => ['shape' => 'DisassociateFleetResult'], 'errors' => [['shape' => 'ResourceInUseException'], ['shape' => 'ResourceNotFoundException'], ['shape' => 'ConcurrentModificationException']]], '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']]], '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']]], '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}$'], 'AssociateFleetRequest' => ['type' => 'structure', 'required' => ['FleetName', 'StackName'], 'members' => ['FleetName' => ['shape' => 'String'], 'StackName' => ['shape' => 'String']]], 'AssociateFleetResult' => ['type' => 'structure', 'members' => []], 'AuthenticationType' => ['type' => 'string', 'enum' => ['API', 'SAML', 'USERPOOL']], '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', 'ImageName', 'InstanceType', 'ComputeCapacity'], 'members' => ['Name' => ['shape' => 'Name'], 'ImageName' => ['shape' => 'String'], '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']]], 'CreateFleetResult' => ['type' => 'structure', 'members' => ['Fleet' => ['shape' => 'Fleet']]], 'CreateImageBuilderRequest' => ['type' => 'structure', 'required' => ['Name', 'ImageName', 'InstanceType'], 'members' => ['Name' => ['shape' => 'Name'], 'ImageName' => ['shape' => 'String'], 'InstanceType' => ['shape' => 'String'], 'Description' => ['shape' => 'Description'], 'DisplayName' => ['shape' => 'DisplayName'], 'VpcConfig' => ['shape' => 'VpcConfig'], 'EnableDefaultInternetAccess' => ['shape' => 'BooleanObject'], 'DomainJoinInfo' => ['shape' => 'DomainJoinInfo'], 'AppstreamAgentVersion' => ['shape' => 'AppstreamAgentVersion']]], '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']]], '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']]], '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']]], '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' => []], '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']]], 'DescribeImagesRequest' => ['type' => 'structure', 'members' => ['Names' => ['shape' => 'StringList']]], 'DescribeImagesResult' => ['type' => 'structure', 'members' => ['Images' => ['shape' => 'ImageList']]], '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']]], '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']], '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], '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', 'ImageName', 'InstanceType', 'ComputeCapacityStatus', 'State'], 'members' => ['Arn' => ['shape' => 'Arn'], 'Name' => ['shape' => 'String'], 'DisplayName' => ['shape' => 'String'], 'Description' => ['shape' => 'String'], 'ImageName' => ['shape' => 'String'], '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']]], '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']], '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'], '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'], 'AuthenticationType' => ['shape' => 'AuthenticationType'], 'NetworkAccessConfiguration' => ['shape' => 'NetworkAccessConfiguration']]], 'SessionList' => ['type' => 'list', 'member' => ['shape' => 'Session']], 'SessionState' => ['type' => 'string', 'enum' => ['ACTIVE', 'PENDING', 'EXPIRED']], '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']]], 'StackAttribute' => ['type' => 'string', 'enum' => ['STORAGE_CONNECTORS', 'STORAGE_CONNECTOR_HOMEFOLDERS', 'STORAGE_CONNECTOR_GOOGLE_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']], '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', 'required' => ['Name'], 'members' => ['ImageName' => ['shape' => 'String'], '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']]], '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']]], 'UpdateStackResult' => ['type' => 'structure', 'members' => ['Stack' => ['shape' => 'Stack']]], 'UserId' => ['type' => 'string', 'max' => 32, 'min' => 2], 'UserSetting' => ['type' => 'structure', 'required' => ['Action', 'Permission'], 'members' => ['Action' => ['shape' => 'Action'], 'Permission' => ['shape' => 'Permission']]], 'UserSettingList' => ['type' => 'list', 'member' => ['shape' => 'UserSetting'], 'min' => 1], 'VisibilityType' => ['type' => 'string', 'enum' => ['PUBLIC', 'PRIVATE']], 'VpcConfig' => ['type' => 'structure', 'members' => ['SubnetIds' => ['shape' => 'SubnetIdList'], 'SecurityGroupIds' => ['shape' => 'SecurityGroupIdList']]]]];
|
1 |
<?php
|
2 |
|
3 |
// This file was auto-generated from sdk-root/src/data/appstream/2016-12-01/api-2.json
|
4 |
+
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']]], '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']]], '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']]], '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'], 'AuthenticationType' => ['shape' => 'AuthenticationType'], 'NetworkAccessConfiguration' => ['shape' => 'NetworkAccessConfiguration']]], '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']]]]];
|
vendor/Aws3/Aws/data/appstream/2016-12-01/paginators-1.json.php
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
<?php
|
2 |
|
3 |
// This file was auto-generated from sdk-root/src/data/appstream/2016-12-01/paginators-1.json
|
4 |
-
return ['pagination' => []];
|
1 |
<?php
|
2 |
|
3 |
// This file was auto-generated from sdk-root/src/data/appstream/2016-12-01/paginators-1.json
|
4 |
+
return ['pagination' => ['DescribeImagePermissions' => ['input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults'], 'DescribeImages' => ['input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults']]];
|
vendor/Aws3/Aws/data/appsync/2017-07-25/api-2.json.php
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
<?php
|
2 |
|
3 |
// This file was auto-generated from sdk-root/src/data/appsync/2017-07-25/api-2.json
|
4 |
-
return ['version' => '2.0', 'metadata' => ['apiVersion' => '2017-07-25', 'endpointPrefix' => 'appsync', 'jsonVersion' => '1.1', 'protocol' => 'rest-json', 'serviceAbbreviation' => 'AWSAppSync', 'serviceFullName' => 'AWS 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']]], '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']]], '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']]], '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']]], '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']]], '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']]], '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']], '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']]], 'CreateDataSourceResponse' => ['type' => 'structure', 'members' => ['dataSource' => ['shape' => 'DataSource']]], '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', 'dataSourceName', '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']]], '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']]], 'DataSourceType' => ['type' => 'string', 'enum' => ['AWS_LAMBDA', 'AMAZON_DYNAMODB', 'AMAZON_ELASTICSEARCH', 'NONE']], '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' => []], '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']], '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']]], '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']], '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']]], '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']]], '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]+'], 'Resolver' => ['type' => 'structure', 'members' => ['typeName' => ['shape' => 'ResourceName'], 'fieldName' => ['shape' => 'ResourceName'], 'dataSourceName' => ['shape' => 'ResourceName'], 'resolverArn' => ['shape' => 'String'], 'requestMappingTemplate' => ['shape' => 'MappingTemplate'], 'responseMappingTemplate' => ['shape' => 'MappingTemplate']]], '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']]], 'UpdateDataSourceResponse' => ['type' => 'structure', 'members' => ['dataSource' => ['shape' => 'DataSource']]], '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', 'dataSourceName', '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']]], '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']]]]];
|
1 |
<?php
|
2 |
|
3 |
// This file was auto-generated from sdk-root/src/data/appsync/2017-07-25/api-2.json
|
4 |
+
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']]]]];
|
vendor/Aws3/Aws/data/athena/2017-05-18/api-2.json.php
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
<?php
|
2 |
|
3 |
// This file was auto-generated from sdk-root/src/data/athena/2017-05-18/api-2.json
|
4 |
-
return ['version' => '2.0', 'metadata' => ['apiVersion' => '2017-05-18', 'endpointPrefix' => 'athena', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceFullName' => 'Amazon 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], 'DeleteNamedQuery' => ['name' => 'DeleteNamedQuery', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DeleteNamedQueryInput'], 'output' => ['shape' => 'DeleteNamedQueryOutput'], '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']]], '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']]], '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]], 'shapes' => ['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'], '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]]], 'CreateNamedQueryOutput' => ['type' => 'structure', 'members' => ['NamedQueryId' => ['shape' => 'NamedQueryId']]], 'DatabaseString' => ['type' => 'string', 'max' => 32, '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' => []], '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' => ['ResultSet' => ['shape' => 'ResultSet'], 'NextToken' => ['shape' => 'Token']]], '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']]], 'ListNamedQueriesOutput' => ['type' => 'structure', 'members' => ['NamedQueryIds' => ['shape' => 'NamedQueryIdList'], 'NextToken' => ['shape' => 'Token']]], 'ListQueryExecutionsInput' => ['type' => 'structure', 'members' => ['NextToken' => ['shape' => 'Token'], 'MaxResults' => ['shape' => 'MaxQueryExecutionsCount']]], 'ListQueryExecutionsOutput' => ['type' => 'structure', 'members' => ['QueryExecutionIds' => ['shape' => 'QueryExecutionIdList'], '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], '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']]], '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'], 'ResultConfiguration' => ['shape' => 'ResultConfiguration'], 'QueryExecutionContext' => ['shape' => 'QueryExecutionContext'], 'Status' => ['shape' => 'QueryExecutionStatus'], 'Statistics' => ['shape' => 'QueryExecutionStatistics']]], '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], 'ResultConfiguration' => ['type' => 'structure', 'required' => ['OutputLocation'], 'members' => ['OutputLocation' => ['shape' => 'String'], 'EncryptionConfiguration' => ['shape' => 'EncryptionConfiguration']]], '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', 'ResultConfiguration'], 'members' => ['QueryString' => ['shape' => 'QueryString'], 'ClientRequestToken' => ['shape' => 'IdempotencyToken', 'idempotencyToken' => \true], 'QueryExecutionContext' => ['shape' => 'QueryExecutionContext'], 'ResultConfiguration' => ['shape' => 'ResultConfiguration']]], 'StartQueryExecutionOutput' => ['type' => 'structure', 'members' => ['QueryExecutionId' => ['shape' => 'QueryExecutionId']]], 'StopQueryExecutionInput' => ['type' => 'structure', 'required' => ['QueryExecutionId'], 'members' => ['QueryExecutionId' => ['shape' => 'QueryExecutionId', 'idempotencyToken' => \true]]], 'StopQueryExecutionOutput' => ['type' => 'structure', 'members' => []], 'String' => ['type' => 'string'], 'ThrottleReason' => ['type' => 'string', 'enum' => ['CONCURRENT_QUERY_LIMIT_EXCEEDED']], 'Token' => ['type' => 'string'], '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']], 'datumList' => ['type' => 'list', 'member' => ['shape' => 'Datum']], 'datumString' => ['type' => 'string']]];
|
1 |
<?php
|
2 |
|
3 |
// This file was auto-generated from sdk-root/src/data/athena/2017-05-18/api-2.json
|
4 |
+
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], 'DeleteNamedQuery' => ['name' => 'DeleteNamedQuery', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DeleteNamedQueryInput'], 'output' => ['shape' => 'DeleteNamedQueryOutput'], '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']]], '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']]], '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]], 'shapes' => ['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'], '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]]], 'CreateNamedQueryOutput' => ['type' => 'structure', 'members' => ['NamedQueryId' => ['shape' => 'NamedQueryId']]], 'DatabaseString' => ['type' => 'string', 'max' => 32, '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' => []], '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']]], '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']]], 'ListNamedQueriesOutput' => ['type' => 'structure', 'members' => ['NamedQueryIds' => ['shape' => 'NamedQueryIdList'], 'NextToken' => ['shape' => 'Token']]], 'ListQueryExecutionsInput' => ['type' => 'structure', 'members' => ['NextToken' => ['shape' => 'Token'], 'MaxResults' => ['shape' => 'MaxQueryExecutionsCount']]], 'ListQueryExecutionsOutput' => ['type' => 'structure', 'members' => ['QueryExecutionIds' => ['shape' => 'QueryExecutionIdList'], '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], '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']]], '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']]], '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], 'ResultConfiguration' => ['type' => 'structure', 'required' => ['OutputLocation'], 'members' => ['OutputLocation' => ['shape' => 'String'], 'EncryptionConfiguration' => ['shape' => 'EncryptionConfiguration']]], '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', 'ResultConfiguration'], 'members' => ['QueryString' => ['shape' => 'QueryString'], 'ClientRequestToken' => ['shape' => 'IdempotencyToken', 'idempotencyToken' => \true], 'QueryExecutionContext' => ['shape' => 'QueryExecutionContext'], 'ResultConfiguration' => ['shape' => 'ResultConfiguration']]], 'StartQueryExecutionOutput' => ['type' => 'structure', 'members' => ['QueryExecutionId' => ['shape' => 'QueryExecutionId']]], 'StatementType' => ['type' => 'string', 'enum' => ['DDL', 'DML', 'UTILITY']], 'StopQueryExecutionInput' => ['type' => 'structure', 'required' => ['QueryExecutionId'], 'members' => ['QueryExecutionId' => ['shape
|