WP Offload S3 Lite - Version 2.1

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 Icon 128x128 WP Offload S3 Lite
Version 2.1
Comparing to
See all releases

Code changes from version 2.0.1 to 2.1

Files changed (98) hide show
  1. README.md +20 -10
  2. assets/css/storage-provider.css +1 -1
  3. assets/img/gcp-logo.svg +16 -0
  4. assets/js/script.js +1 -1
  5. assets/js/script.min.js +1 -1
  6. assets/js/storage-provider.js +5 -3
  7. assets/js/storage-provider.min.js +1 -1
  8. assets/sass/storage-provider.scss +25 -6
  9. classes/amazon-s3-and-cloudfront.php +205 -75
  10. classes/as3cf-compatibility-check.php +9 -1
  11. classes/as3cf-plugin-base.php +25 -4
  12. classes/providers/aws-provider.php +34 -15
  13. classes/providers/digitalocean-provider.php +1 -1
  14. classes/providers/gcp-provider.php +671 -0
  15. classes/providers/provider.php +201 -33
  16. classes/providers/streams/gcp-gcs-stream-wrapper.php +70 -0
  17. languages/amazon-s3-and-cloudfront-en.pot +187 -135
  18. readme.txt +20 -10
  19. vendor/Aws3/Aws/Api/ErrorParser/JsonParserTrait.php +1 -1
  20. vendor/Aws3/Aws/Api/ErrorParser/XmlErrorParser.php +1 -1
  21. vendor/Aws3/Aws/Api/Parser/AbstractParser.php +5 -0
  22. vendor/Aws3/Aws/Api/Parser/AbstractRestParser.php +14 -7
  23. vendor/Aws3/Aws/Api/Parser/Crc32ValidatingParser.php +6 -2
  24. vendor/Aws3/Aws/Api/Parser/DecodingEventStreamIterator.php +241 -0
  25. vendor/Aws3/Aws/Api/Parser/EventParsingIterator.php +81 -0
  26. vendor/Aws3/Aws/Api/Parser/Exception/ParserException.php +20 -1
  27. vendor/Aws3/Aws/Api/Parser/JsonParser.php +3 -0
  28. vendor/Aws3/Aws/Api/Parser/JsonRpcParser.php +7 -2
  29. vendor/Aws3/Aws/Api/Parser/PayloadParserTrait.php +5 -4
  30. vendor/Aws3/Aws/Api/Parser/QueryParser.php +10 -5
  31. vendor/Aws3/Aws/Api/Parser/RestJsonParser.php +10 -3
  32. vendor/Aws3/Aws/Api/Parser/RestXmlParser.php +7 -4
  33. vendor/Aws3/Aws/Api/Parser/XmlParser.php +3 -0
  34. vendor/Aws3/Aws/Api/Serializer/JsonBody.php +5 -1
  35. vendor/Aws3/Aws/Api/Serializer/QueryParamBuilder.php +2 -1
  36. vendor/Aws3/Aws/Api/Serializer/RestSerializer.php +8 -3
  37. vendor/Aws3/Aws/Api/Serializer/XmlBody.php +2 -1
  38. vendor/Aws3/Aws/AwsClient.php +24 -0
  39. vendor/Aws3/Aws/ClientResolver.php +1 -1
  40. vendor/Aws3/Aws/ClientSideMonitoring/AbstractMonitoringMiddleware.php +217 -0
  41. vendor/Aws3/Aws/ClientSideMonitoring/ApiCallAttemptMonitoringMiddleware.php +181 -0
  42. vendor/Aws3/Aws/ClientSideMonitoring/ApiCallMonitoringMiddleware.php +126 -0
  43. vendor/Aws3/Aws/ClientSideMonitoring/Configuration.php +55 -0
  44. vendor/Aws3/Aws/ClientSideMonitoring/ConfigurationInterface.php +35 -0
  45. vendor/Aws3/Aws/ClientSideMonitoring/ConfigurationProvider.php +272 -0
  46. vendor/Aws3/Aws/ClientSideMonitoring/Exception/ConfigurationException.php +13 -0
  47. vendor/Aws3/Aws/ClientSideMonitoring/MonitoringMiddlewareInterface.php +30 -0
  48. vendor/Aws3/Aws/Credentials/CredentialProvider.php +5 -1
  49. vendor/Aws3/Aws/Endpoint/PartitionEndpointProvider.php +29 -2
  50. vendor/Aws3/Aws/EndpointParameterMiddleware.php +65 -0
  51. vendor/Aws3/Aws/Exception/AwsException.php +24 -1
  52. vendor/Aws3/Aws/Exception/CouldNotCreateChecksumException.php +4 -1
  53. vendor/Aws3/Aws/Exception/CredentialsException.php +4 -1
  54. vendor/Aws3/Aws/Exception/EventStreamDataException.php +36 -0
  55. vendor/Aws3/Aws/Exception/MultipartUploadException.php +4 -1
  56. vendor/Aws3/Aws/Exception/UnresolvedApiException.php +4 -1
  57. vendor/Aws3/Aws/Exception/UnresolvedEndpointException.php +4 -1
  58. vendor/Aws3/Aws/Exception/UnresolvedSignatureException.php +4 -1
  59. vendor/Aws3/Aws/HandlerList.php +23 -2
  60. vendor/Aws3/Aws/HasMonitoringEventsTrait.php +36 -0
  61. vendor/Aws3/Aws/MockHandler.php +13 -0
  62. vendor/Aws3/Aws/MonitoringEventsInterface.php +29 -0
  63. vendor/Aws3/Aws/ResponseContainerInterface.php +13 -0
  64. vendor/Aws3/Aws/Result.php +2 -1
  65. vendor/Aws3/Aws/RetryMiddleware.php +73 -27
  66. vendor/Aws3/Aws/S3/AmbiguousSuccessParser.php +6 -2
  67. vendor/Aws3/Aws/S3/ApplyChecksumMiddleware.php +1 -1
  68. vendor/Aws3/Aws/S3/Exception/DeleteMultipleObjectsException.php +4 -1
  69. vendor/Aws3/Aws/S3/GetBucketLocationParser.php +6 -2
  70. vendor/Aws3/Aws/S3/RetryableMalformedResponseParser.php +6 -2
  71. vendor/Aws3/Aws/S3/S3Client.php +22 -0
  72. vendor/Aws3/Aws/S3/S3ClientTrait.php +4 -3
  73. vendor/Aws3/Aws/S3/S3MultiRegionClient.php +23 -1
  74. vendor/Aws3/Aws/Sdk.php +53 -1
  75. vendor/Aws3/Aws/Signature/SignatureProvider.php +2 -1
  76. vendor/Aws3/Aws/Signature/SignatureV4.php +41 -9
  77. vendor/Aws3/Aws/TraceMiddleware.php +3 -1
  78. vendor/Aws3/Aws/Waiter.php +1 -6
  79. vendor/Aws3/Aws/WrappedHttpHandler.php +1 -1
  80. vendor/Aws3/Aws/data/acm-pca/2017-08-22/paginators-1.json.php +1 -1
  81. vendor/Aws3/Aws/data/acm-pca/2017-08-22/waiters-2.json.php +4 -0
  82. vendor/Aws3/Aws/data/acm/2015-12-08/waiters-2.json.php +4 -0
  83. vendor/Aws3/Aws/data/alexaforbusiness/2017-11-09/api-2.json.php +1 -1
  84. vendor/Aws3/Aws/data/alexaforbusiness/2017-11-09/paginators-1.json.php +1 -1
  85. vendor/Aws3/Aws/data/amplify/2017-07-25/api-2.json.php +4 -0
  86. vendor/Aws3/Aws/data/amplify/2017-07-25/paginators-1.json.php +4 -0
  87. vendor/Aws3/Aws/data/apigateway/2015-07-09/api-2.json.php +1 -1
  88. vendor/Aws3/Aws/data/apigatewaymanagementapi/2018-11-29/api-2.json.php +4 -0
  89. vendor/Aws3/Aws/data/apigatewaymanagementapi/2018-11-29/paginators-1.json.php +4 -0
  90. vendor/Aws3/Aws/data/apigatewayv2/2018-11-29/api-2.json.php +4 -0
  91. vendor/Aws3/Aws/data/apigatewayv2/2018-11-29/paginators-1.json.php +4 -0
  92. vendor/Aws3/Aws/data/application-autoscaling/2016-02-06/api-2.json.php +1 -1
  93. vendor/Aws3/Aws/data/appmesh/2018-10-01/api-2.json.php +4 -0
  94. vendor/Aws3/Aws/data/appmesh/2018-10-01/paginators-1.json.php +4 -0
  95. vendor/Aws3/Aws/data/appstream/2016-12-01/api-2.json.php +1 -1
  96. vendor/Aws3/Aws/data/appstream/2016-12-01/paginators-1.json.php +1 -1
  97. vendor/Aws3/Aws/data/appsync/2017-07-25/api-2.json.php +1 -1
  98. 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.0
6
  **Requires PHP:** 5.5
7
- **Stable tag:** 2.0.1
8
  **License:** GPLv3
9
 
10
- Copies files to Amazon S3 or DigitalOcean Spaces as they are uploaded to the Media Library. Optionally configure Amazon CloudFront or another CDN for faster delivery.
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/) or [DigitalOcean Spaces](https://www.digitalocean.com/products/spaces/). It then automatically replaces the URL to each media file with their respective Amazon S3 or DigitalOcean Spaces 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 or DigitalOcean Spaces 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 or DigitalOcean Spaces. Only newly uploaded files will be copied to and served from the bucket. The pro upgrade has an upload tool to handle existing media files.
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 DigitalOcean Spaces
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=55xNGnbJ_CY
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{width:100%;white-space:pre;overflow:hidden;font-size:11px;padding:10px;margin-top: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%}
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.provider_console_url_param + encodeURIComponent( prefix );
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.provider_console_url_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+" &mdash;"),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);
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+" &mdash;"),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
- ( function( $ ) {
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
- } )( jQuery );
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
- $aws_orange: #f7a80d;
2
- $do_blue: #0080ff;
 
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: $aws_orange;
 
52
  }
53
  }
54
 
55
  &.as3cf-provider-do {
56
  .as3cf-provider-logo {
57
- background-color: $do_blue;
 
 
 
 
 
 
 
 
 
 
 
58
  }
59
  }
60
  }
@@ -87,13 +100,19 @@ $do_blue: #0080ff;
87
  padding-top: 0;
88
  }
89
 
90
- textarea.as3cf-define-snippet.code {
 
 
 
 
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
- if ( isset( $data['file'] ) ) {
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 time of attachment upload.
1455
  *
1456
- * Use post datetime if attached.
1457
  *
1458
- * @param int $post_id
 
1459
  *
1460
- * @return int|string
1461
  */
1462
- function get_attachment_folder_time( $post_id ) {
1463
- $time = current_time( 'timestamp' );
1464
-
1465
- if ( ! ( $attach = get_post( $post_id ) ) ) {
1466
- return $time;
1467
  }
1468
 
1469
- if ( ! $attach->post_parent ) {
1470
- return $time;
1471
  }
1472
 
1473
- if ( ! ( $post = get_post( $attach->post_parent ) ) ) {
1474
- return $time;
1475
- }
 
 
 
 
 
 
 
 
 
 
 
1476
 
1477
- if ( substr( $post->post_date_gmt, 0, 4 ) > 0 ) {
1478
- return strtotime( $post->post_date_gmt . ' +0000' );
 
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
- $domain_bucket = $this->get_provider()->get_url_domain( $provider_object['bucket'], $region, $expires );
1963
- $file = $this->encode_filename_in_path( $provider_object['key'] );
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
- return $result['Buckets'];
 
 
 
 
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 S3. Delete me if found.', 'amazon-s3-and-cloudfront' );
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' => array(
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' => array(
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' => $this->is_pro(),
2886
- 'provider_console_url' => $this->get_provider()->get_console_url(),
2887
- 'provider_console_url_param' => $this->get_provider()->get_console_url_param(),
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
- if ( ! empty( $prev_action ) ) {
3018
- $url_args['prev_action'] = $prev_action;
 
 
 
 
 
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( __( 'No bucket name not valid.', 'amazon-s3-and-cloudfront' ), array( 'type' => 'error', 'only_show_in_settings' => true, 'only_show_on_tab' => 'media' ) );
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
- private function handle_save_settings() {
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 .= 'Rewrite File URLs: ';
3733
- $output .= $this->on_off( 'serve-from-s3' );
3734
  $output .= "\r\n";
 
 
3735
  $output .= "\r\n";
3736
-
3737
- $output .= "Local URL:\r\n";
3738
- $output .= $this->get_local_url_preview( $escape );
3739
  $output .= "\r\n";
3740
- $output .= "Offload URL:\r\n";
3741
- $output .= $this->get_url_preview( $escape );
3742
  $output .= "\r\n";
3743
  $output .= "\r\n";
3744
 
3745
- $output .= 'Domain: ';
3746
- $output .= $this->get_setting( 'domain' );
3747
- $output .= "\r\n";
3748
- $output .= 'Enable Path: ';
3749
- $output .= $this->on_off( 'enable-object-prefix' );
3750
  $output .= "\r\n";
3751
- $output .= 'Custom Path: ';
3752
- $output .= $this->get_setting( 'object-prefix' );
3753
  $output .= "\r\n";
3754
- $output .= 'Use Year/Month: ';
3755
- $output .= $this->on_off( 'use-yearmonth-folders' );
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
- $plugin = str_replace( WP_PLUGIN_DIR, '', $path );
 
3888
 
3889
- return substr( $plugin, 1 );
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 access keys 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 );
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 access keys 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 );
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 = array(), $post ) {
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&nbsp;Web&nbsp;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&nbsp;Web&nbsp;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 string
316
  */
317
  function sanitize_setting( $key, $value ) {
318
  $skip_sanitize = $this->get_skip_sanitize_settings();
319
 
320
  if ( in_array( $key, $skip_sanitize ) ) {
321
- $value = wp_strip_all_tags( $value );
 
 
 
 
 
 
 
 
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 $console_url_param = '&prefix=';
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 $bucket
305
- * @param $key
306
- * @param array $options
307
  *
308
  * @return bool
309
  */
@@ -343,10 +343,10 @@ class AWS_Provider extends Provider {
343
  /**
344
  * Get object's URL.
345
  *
346
- * @param $bucket
347
- * @param $key
348
- * @param $expires
349
- * @param array $args
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
- $found_keys = $result->search( 'Contents[].Key' );
 
440
 
441
- if ( ! empty( $found_keys ) ) {
442
- $keys[ $attachment_id ] = $found_keys;
 
 
 
 
 
 
443
  }
444
  }
445
 
@@ -524,7 +531,7 @@ class AWS_Provider extends Provider {
524
  'Bucket' => $bucket,
525
  'Key' => $key,
526
  'Body' => $file_contents,
527
- 'ACL' => 'public-read',
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 || 'AccessDenied' !== $e->getAwsErrorCode() ) {
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 $console_url_param = '?path=';
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 $console_url_param = '';
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
- * http://docs.aws.amazon.com/aws-sdk-php/guide/latest/credentials.html#instance-profile-credentials
 
255
  *
256
  * @return bool
257
  */
@@ -266,39 +339,95 @@ abstract class Provider {
266
  }
267
 
268
  /**
269
- * Get the constant used to define the access key id.
270
  *
271
  * @return string|false Constant name if defined, otherwise false
272
  */
273
- public static function access_key_id_constant() {
274
- return AS3CF_Utils::get_first_defined_constant( static::$access_key_id_constants );
275
  }
276
 
277
  /**
278
- * Get the constant used to define the aws secret access key.
279
  *
280
- * @return string|false Constant name if defined, otherwise false
281
  */
282
- public static function secret_access_key_constant() {
283
- return AS3CF_Utils::get_first_defined_constant( static::$secret_access_key_constants );
284
  }
285
 
286
  /**
287
- * Is the provider able to use server roles?
 
 
 
 
 
 
 
 
 
 
 
 
 
288
  *
289
  * @return bool
290
  */
291
- public static function use_server_roles_allowed() {
292
- return ! empty( static::$use_server_roles_constants );
 
 
 
 
293
  }
294
 
295
  /**
296
- * Get the constant used to enable the use of EC2 IAM roles.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
297
  *
298
  * @return string|false Constant name if defined, otherwise false
299
  */
300
- public static function use_server_role_constant() {
301
- return AS3CF_Utils::get_first_defined_constant( static::$use_server_roles_constants );
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
- $args = array_merge( array(
383
- 'credentials' => array(
384
- 'key' => $this->get_access_key_id(),
385
- 'secret' => $this->get_secret_access_key(),
386
- ),
387
- ), $args );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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->get_console_url_param() . urlencode( apply_filters( 'as3cf_' . static::$provider_key_name . '_' . static::$service_key_name . '_console_url_prefix_value', $prefix ) );
538
  }
539
 
540
- return apply_filters( 'as3cf_' . static::$provider_key_name . '_' . static::$service_key_name . '_console_url', $this->console_url ) . $bucket . $prefix;
 
 
541
  }
542
 
543
  /**
@@ -545,8 +703,8 @@ abstract class Provider {
545
  *
546
  * @return string
547
  */
548
- public function get_console_url_param() {
549
- return apply_filters( 'as3cf_' . static::$provider_key_name . '_' . static::$service_key_name . '_console_url_prefix_param', $this->console_url_param );
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 $bucket
641
- * @param $key
642
- * @param array $options
643
  *
644
  * @return bool
645
  */
@@ -671,10 +829,10 @@ abstract class Provider {
671
  /**
672
  * Get object's URL.
673
  *
674
- * @param $bucket
675
- * @param $key
676
- * @param $expires
677
- * @param array $args
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: 2018-12-17 10:03+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,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:276
26
- #: classes/amazon-s3-and-cloudfront.php:290
27
  msgid "Unknown"
28
  msgstr ""
29
 
30
- #: classes/amazon-s3-and-cloudfront.php:344
31
  #: view/bucket-setting.php:17
32
- #: view/provider-select.php:88
33
  msgid "defined in wp-config.php"
34
  msgstr ""
35
 
36
- #: classes/amazon-s3-and-cloudfront.php:1090
37
- #: classes/amazon-s3-and-cloudfront.php:1229
38
  #, php-format
39
  msgid "File %s does not exist"
40
  msgstr ""
41
 
42
- #: classes/amazon-s3-and-cloudfront.php:1103
43
  #, php-format
44
  msgid "Mime type %s is not allowed"
45
  msgstr ""
46
 
47
- #: classes/amazon-s3-and-cloudfront.php:1114
48
  msgid "Already offloaded to a different provider"
49
  msgstr ""
50
 
51
- #: classes/amazon-s3-and-cloudfront.php:1193
52
- #: classes/amazon-s3-and-cloudfront.php:1237
53
  #, php-format
54
  msgid "Error offloading %s to provider: %s"
55
  msgstr ""
56
 
57
- #: classes/amazon-s3-and-cloudfront.php:2361
58
  msgid "This action can only be performed through an admin screen."
59
  msgstr ""
60
 
61
- #: classes/amazon-s3-and-cloudfront.php:2363
62
  msgid "Cheatin&#8217; eh?"
63
  msgstr ""
64
 
65
- #: classes/amazon-s3-and-cloudfront.php:2365
66
  msgid "You do not have sufficient permissions to access this page."
67
  msgstr ""
68
 
69
- #: classes/amazon-s3-and-cloudfront.php:2645
70
  msgid "Error Getting Bucket Region"
71
  msgstr ""
72
 
73
- #: classes/amazon-s3-and-cloudfront.php:2646
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:2773
79
  msgid ""
80
- "This is a test file to check if the user has write permission to S3. Delete "
81
- "me if found."
82
  msgstr ""
83
 
84
- #: classes/amazon-s3-and-cloudfront.php:2779
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:2861
91
  msgid "Error creating bucket"
92
  msgstr ""
93
 
94
- #: classes/amazon-s3-and-cloudfront.php:2862
95
  msgid "Bucket name too short."
96
  msgstr ""
97
 
98
- #: classes/amazon-s3-and-cloudfront.php:2863
99
  msgid "Bucket name too long."
100
  msgstr ""
101
 
102
- #: classes/amazon-s3-and-cloudfront.php:2864
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:2865
109
  msgid "Error saving bucket"
110
  msgstr ""
111
 
112
- #: classes/amazon-s3-and-cloudfront.php:2866
113
  msgid "Error fetching buckets"
114
  msgstr ""
115
 
116
- #: classes/amazon-s3-and-cloudfront.php:2867
117
  msgid "Error getting URL preview: "
118
  msgstr ""
119
 
120
- #: classes/amazon-s3-and-cloudfront.php:2868
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:2869
125
  msgid "Getting diagnostic info..."
126
  msgstr ""
127
 
128
- #: classes/amazon-s3-and-cloudfront.php:2870
129
  msgid "Error getting diagnostic info: "
130
  msgstr ""
131
 
132
- #: classes/amazon-s3-and-cloudfront.php:2871
133
  msgctxt "placeholder for hidden access key, 39 char max"
134
  msgid "-- not shown --"
135
  msgstr ""
136
 
137
- #: classes/amazon-s3-and-cloudfront.php:2873
138
- #: classes/amazon-s3-and-cloudfront.php:4771
139
  msgid "Settings saved."
140
  msgstr ""
141
 
142
- #: classes/amazon-s3-and-cloudfront.php:2960
143
  msgid "Cheatin' eh?"
144
  msgstr ""
145
 
146
- #: classes/amazon-s3-and-cloudfront.php:3037
147
  msgid "No bucket name provided."
148
  msgstr ""
149
 
150
- #: classes/amazon-s3-and-cloudfront.php:3046
151
- msgid "No bucket name not valid."
152
  msgstr ""
153
 
154
- #: classes/amazon-s3-and-cloudfront.php:3059
155
  msgid "No region provided."
156
  msgstr ""
157
 
158
- #: classes/amazon-s3-and-cloudfront.php:3136
159
- #: view/provider-select.php:227
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:3184
 
 
 
 
165
  msgctxt "Show the media library tab"
166
  msgid "Media Library"
167
  msgstr ""
168
 
169
- #: classes/amazon-s3-and-cloudfront.php:3185
170
  msgctxt "Show the addons tab"
171
  msgid "Addons"
172
  msgstr ""
173
 
174
- #: classes/amazon-s3-and-cloudfront.php:3186
175
  msgctxt "Show the support tab"
176
  msgid "Support"
177
  msgstr ""
178
 
179
- #: classes/amazon-s3-and-cloudfront.php:3405
180
  #, php-format
181
  msgid ""
182
  "<strong>WP Offload Media</strong> &mdash; The file %s has been given %s "
183
  "permissions in the bucket."
184
  msgstr ""
185
 
186
- #: classes/amazon-s3-and-cloudfront.php:3424
187
  msgid ""
188
  "<strong>WP Offload Media Requirement Missing</strong> &mdash; 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:4051
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:4058
202
  msgid "Quick Start Guide"
203
  msgstr ""
204
 
205
- #: classes/amazon-s3-and-cloudfront.php:4060
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 access keys for hasn't been granted the correct "
210
  "permissions. Please see our %s for instructions on setting up permissions "
211
  "correctly."
212
  msgstr ""
213
 
214
- #: classes/amazon-s3-and-cloudfront.php:4062
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 access keys for hasn't been granted the correct permissions. "
219
  "Please see our %s for instructions on setting up permissions correctly."
220
  msgstr ""
221
 
222
- #: classes/amazon-s3-and-cloudfront.php:4212
223
  msgid "WP Offload Media Activation"
224
  msgstr ""
225
 
226
- #: classes/amazon-s3-and-cloudfront.php:4213
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:4215
233
  msgid "WP Offload Media Lite Activation"
234
  msgstr ""
235
 
236
- #: classes/amazon-s3-and-cloudfront.php:4216
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:4268
243
  msgid "More&nbsp;info&nbsp;&raquo;"
244
  msgstr ""
245
 
246
- #: classes/amazon-s3-and-cloudfront.php:4363
247
  msgid "this doc"
248
  msgstr ""
249
 
250
- #: classes/amazon-s3-and-cloudfront.php:4365
251
  msgid "WP Offload Media Feature Removed"
252
  msgstr ""
253
 
254
- #: classes/amazon-s3-and-cloudfront.php:4366
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:4396
266
  msgid "Offload"
267
  msgstr ""
268
 
269
- #: classes/amazon-s3-and-cloudfront.php:4504
270
  msgctxt "Storage provider key name"
271
  msgid "Storage Provider"
272
  msgstr ""
273
 
274
- #: classes/amazon-s3-and-cloudfront.php:4505
275
  msgctxt "Storage provider name"
276
  msgid "Storage Provider"
277
  msgstr ""
278
 
279
- #: classes/amazon-s3-and-cloudfront.php:4506
280
  msgctxt "Bucket name"
281
  msgid "Bucket"
282
  msgstr ""
283
 
284
- #: classes/amazon-s3-and-cloudfront.php:4507
285
  msgctxt "Path to file in bucket"
286
  msgid "Path"
287
  msgstr ""
288
 
289
- #: classes/amazon-s3-and-cloudfront.php:4508
290
  msgctxt "Location of bucket"
291
  msgid "Region"
292
  msgstr ""
293
 
294
- #: classes/amazon-s3-and-cloudfront.php:4509
295
  msgctxt "Access control list of the file in bucket"
296
  msgid "Access"
297
  msgstr ""
298
 
299
- #: classes/amazon-s3-and-cloudfront.php:4510
300
  msgid "URL"
301
  msgstr ""
302
 
303
- #: classes/amazon-s3-and-cloudfront.php:4734
304
  msgid "Assets Pull"
305
  msgstr ""
306
 
307
- #: classes/amazon-s3-and-cloudfront.php:4735
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:4739
314
  msgid "Feature"
315
  msgstr ""
316
 
317
- #: classes/amazon-s3-and-cloudfront.php:4785
318
  #, php-format
319
  msgid ""
320
  "<strong>Amazon Web Services Plugin No Longer Required</strong> &mdash; 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:4817
329
  #, php-format
330
  msgid ""
331
  "<strong>WP Offload Media Settings Moved</strong> &mdash; 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:630
423
  msgid "a cURL version less than 7.16.2"
424
  msgstr ""
425
 
426
- #: classes/as3cf-compatibility-check.php:645
427
  msgid "cURL compiled without"
428
  msgstr ""
429
 
430
- #: classes/as3cf-compatibility-check.php:650
431
  msgid "the function curl_multi_exec disabled"
432
  msgstr ""
433
 
434
- #: classes/as3cf-compatibility-check.php:668
435
  msgid ""
436
- "The official Amazon&nbsp;Web&nbsp;Services SDK requires PHP 5.5+ and cURL "
437
- "7.16.2+ compiled with OpenSSL and zlib. Your server currently has"
 
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:516
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:377
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:19
618
  msgid "This item has not been offloaded yet."
619
  msgstr ""
620
 
621
- #: view/attachment-metabox.php:48
622
  msgid "File does not exist on server"
623
  msgstr ""
624
 
625
- #: view/bucket-select.php:30
626
- #: view/provider-select.php:14
 
 
 
 
627
  msgid "&laquo;&nbsp;Back"
628
  msgstr ""
629
 
630
- #: view/bucket-select.php:36
631
  msgid "What bucket would you like to use?"
632
  msgstr ""
633
 
634
- #: view/bucket-select.php:49
635
- #: view/bucket-select.php:102
636
- #: view/bucket-select.php:155
637
  msgid "Region:"
638
  msgstr ""
639
 
640
- #: view/bucket-select.php:64
641
- #: view/bucket-select.php:117
642
- #: view/bucket-select.php:170
643
  #, php-format
644
  msgid "%s (defined in wp-config.php)"
645
  msgstr ""
646
 
647
- #: view/bucket-select.php:71
648
- #: view/bucket-select.php:123
649
- #: view/bucket-select.php:176
650
  #: view/bucket-setting.php:8
651
  msgid "Bucket:"
652
  msgstr ""
653
 
654
- #: view/bucket-select.php:74
655
  msgid "Existing bucket name"
656
  msgstr ""
657
 
658
- #: view/bucket-select.php:80
659
  msgid "Save Bucket Setting"
660
  msgstr ""
661
 
662
- #: view/bucket-select.php:81
663
- #: view/bucket-select.php:186
664
  msgid "Browse existing buckets"
665
  msgstr ""
666
 
667
- #: view/bucket-select.php:82
668
- #: view/bucket-select.php:137
669
- #: view/bucket-select.php:143
670
  msgid "Create new bucket"
671
  msgstr ""
672
 
673
- #: view/bucket-select.php:87
674
  msgid "Select bucket"
675
  msgstr ""
676
 
677
- #: view/bucket-select.php:126
678
- #: view/bucket-select.php:131
679
  msgid "Loading..."
680
  msgstr ""
681
 
682
- #: view/bucket-select.php:126
683
- #: view/bucket-select.php:131
684
  msgid "Nothing found"
685
  msgstr ""
686
 
687
- #: view/bucket-select.php:135
688
  msgid "Save Selected Bucket"
689
  msgstr ""
690
 
691
- #: view/bucket-select.php:136
692
- #: view/bucket-select.php:187
693
  msgid "Enter bucket name"
694
  msgstr ""
695
 
696
- #: view/bucket-select.php:138
697
  msgid "Refresh"
698
  msgstr ""
699
 
700
- #: view/bucket-select.php:179
701
  msgid "New bucket name"
702
  msgstr ""
703
 
704
- #: view/bucket-select.php:185
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:11
714
  msgid "Change"
715
  msgstr ""
716
 
@@ -790,15 +807,15 @@ msgstr ""
790
  msgid "Show"
791
  msgstr ""
792
 
793
- #: view/provider-select.php:17
794
  msgid "Storage Provider"
795
  msgstr ""
796
 
797
- #: view/provider-select.php:108
798
  msgid "Define access keys in wp-config.php"
799
  msgstr ""
800
 
801
- #: view/provider-select.php:117
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:119
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:121
 
820
  msgctxt "joins multiple define keys in notice"
821
  msgid " & "
822
  msgstr ""
823
 
824
- #: view/provider-select.php:130
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:136
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:162
837
- msgid "My server is on Amazon EC2 and I'd like to use IAM Roles"
838
  msgstr ""
839
 
840
- #: view/provider-select.php:169
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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:172
 
849
  msgid ""
850
- "If you host your WordPress site on an Amazon EC2 instance you should make "
851
- "use of IAM Roles. To tell WP Offload Media you're using IAM Roles, copy the "
852
- "following snippet <strong>near the top</strong> of your wp-config.php."
853
  msgstr ""
854
 
855
- #: view/provider-select.php:194
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:201
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:206
869
  msgid "Access Key ID"
870
  msgstr ""
871
 
872
- #: view/provider-select.php:221
873
  msgid "Secret Access Key"
874
  msgstr ""
875
 
876
- #: view/provider-select.php:243
 
 
 
 
 
 
 
 
 
 
 
 
 
877
  msgid "Next"
878
  msgstr ""
879
 
880
- #: view/provider-select.php:243
881
  #: view/settings/media.php:261
882
  msgid "Save Changes"
883
  msgstr ""
884
 
885
- #: view/provider-setting.php:6
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&#8217; 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> &mdash; 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> &mdash; 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&nbsp;info&nbsp;&raquo;"
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> &mdash; 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> &mdash; 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&nbsp;Web&nbsp;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 "&laquo;&nbsp;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.0
6
  Requires PHP: 5.5
7
- Stable tag: 2.0.1
8
  License: GPLv3
9
 
10
- Copies files to Amazon S3 or DigitalOcean Spaces as they are uploaded to the Media Library. Optionally configure Amazon CloudFront or another CDN for faster delivery.
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/) or [DigitalOcean Spaces](https://www.digitalocean.com/products/spaces/). It then automatically replaces the URL to each media file with their respective Amazon S3 or DigitalOcean Spaces 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 or DigitalOcean Spaces 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 or DigitalOcean Spaces. Only newly uploaded files will be copied to and served from the bucket. The pro upgrade has an upload tool to handle existing media files.
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 DigitalOcean Spaces
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=55xNGnbJ_CY
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 instanceof StructureShape) {
57
- // Structure members parse top-level data into a specific key.
58
- $result[$payload] = [];
59
- $this->payload($response, $member, $result[$payload]);
60
  } else {
61
- // Streaming data is just the stream from the response body.
62
- $result[$payload] = $response->getBody();
 
 
 
 
 
 
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
- class ParserException extends \RuntimeException
 
 
 
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->parser->parse($operation->getOutput(), $this->parseJson($response->getBody()));
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->xmlParser = $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());
36
  if ($this->honorResultWrapper && $output['resultWrapper']) {
37
  $xml = $xml->{$output['resultWrapper']};
38
  }
39
- return new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Result($this->xmlParser->parse($output, $xml));
 
 
 
 
 
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
- $xml = $this->parseXml($response->getBody());
28
- $result += $this->parser->parse($member, $xml);
 
 
 
 
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
- return \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\TimestampShape::format($value, 'unixTimestamp');
 
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
- $query[$prefix] = \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\TimestampShape::format($value, 'iso8601');
 
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() == 'timestamp') {
101
- $value = \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\TimestampShape::format($value, 'rfc822');
 
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
- if ($member->getType() === 'boolean') {
 
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
- $xml->writeRaw(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\TimestampShape::format($value, 'iso8601'));
 
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
- return new self($data['partitions']);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
- class CouldNotCreateChecksumException extends \RuntimeException
 
 
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
- class CredentialsException extends \RuntimeException
 
 
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
- class UnresolvedApiException extends \RuntimeException
 
 
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
- class UnresolvedEndpointException extends \RuntimeException
 
 
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
- class UnresolvedSignatureException extends \RuntimeException
 
 
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
- * @param int $maxRetries
 
 
 
 
 
 
 
 
 
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
- if (!$error) {
58
- return isset(self::$retryStatusCodes[$result['@metadata']['statusCode']]);
59
- }
60
- if (!$error instanceof AwsException) {
61
- return false;
 
 
 
 
62
  }
63
- if ($error->isConnectionError()) {
64
- return true;
 
 
 
65
  }
66
- if (isset(self::$retryCodes[$error->getAwsErrorCode()])) {
67
- return true;
 
 
68
  }
69
- if (isset(self::$retryStatusCodes[$error->getStatusCode()])) {
70
- return true;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
71
  }
72
- if (count($retryCurlErrors) && ($previous = $error->getPrevious()) && $previous instanceof RequestException) {
73
- if (method_exists($previous, 'getHandlerContext')) {
74
- $context = $previous->getHandlerContext();
75
- return !empty($context['errno']) && isset($retryCurlErrors[$context['errno']]);
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
- return false;
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->getBody());
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($responseBody)
153
  {
154
  try {
155
- $element = $this->parseXml($responseBody);
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()->getBody());
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.62.6';
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 === 's3' ? new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Signature\S3SignatureV4($service, $region) : new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Signature\SignatureV4($service, $region);
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']['X-Amz-Content-Sha256'] = [$payload];
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'] = 'host';
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('X-Amz-Content-Sha256')) {
110
  // Handle streaming operations (e.g. Glacier.UploadArchive)
111
- return $request->getHeaderLine('X-Amz-Content-Sha256');
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
- // The following headers are not signed because signing these headers
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
- if ($lname !== 'host') {
 
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 = preg_replace($pattern, $replacement, $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
- foreach ($actuals as $actual) {
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