WP Offload S3 Lite - Version 2.4.2

Version Description

= 2.3 = This is a major upgrade that switches to using a custom table for storing data about offloaded Media Library items. Once upgraded you will not be able to downgrade without restoring data from a backup.

= 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.4.2
Comparing to
See all releases

Code changes from version 2.4.1 to 2.4.2

Files changed (87) hide show
  1. README.md +9 -1
  2. assets/css/styles.css +1 -1
  3. assets/sass/styles.scss +0 -2
  4. classes/amazon-s3-and-cloudfront.php +1 -1
  5. classes/filters/as3cf-local-to-s3.php +5 -2
  6. classes/providers/storage/aws-provider.php +8 -5
  7. languages/amazon-s3-and-cloudfront-en.pot +1 -1
  8. readme.txt +9 -1
  9. vendor/Aws3/Aws/Api/DateTimeResult.php +59 -1
  10. vendor/Aws3/Aws/Api/ErrorParser/AbstractErrorParser.php +1 -0
  11. vendor/Aws3/Aws/Api/Parser/AbstractRestParser.php +1 -4
  12. vendor/Aws3/Aws/Api/Parser/JsonParser.php +1 -7
  13. vendor/Aws3/Aws/Api/Parser/MetadataParserTrait.php +1 -4
  14. vendor/Aws3/Aws/Api/Parser/XmlParser.php +4 -3
  15. vendor/Aws3/Aws/AwsClient.php +18 -6
  16. vendor/Aws3/Aws/ClientResolver.php +28 -3
  17. vendor/Aws3/Aws/ClientSideMonitoring/ConfigurationProvider.php +5 -1
  18. vendor/Aws3/Aws/CloudFront/CloudFrontClient.php +74 -46
  19. vendor/Aws3/Aws/Credentials/CredentialProvider.php +5 -1
  20. vendor/Aws3/Aws/Crypto/AbstractCryptoClient.php +8 -3
  21. vendor/Aws3/Aws/Crypto/AbstractCryptoClientV2.php +98 -0
  22. vendor/Aws3/Aws/Crypto/AesGcmDecryptingStream.php +12 -5
  23. vendor/Aws3/Aws/Crypto/AesGcmEncryptingStream.php +24 -6
  24. vendor/Aws3/Aws/Crypto/AesStreamInterfaceV2.php +29 -0
  25. vendor/Aws3/Aws/Crypto/Cipher/Cbc.php +6 -0
  26. vendor/Aws3/Aws/Crypto/Cipher/CipherBuilderTrait.php +2 -1
  27. vendor/Aws3/Aws/Crypto/DecryptionTrait.php +5 -4
  28. vendor/Aws3/Aws/Crypto/DecryptionTraitV2.php +138 -0
  29. vendor/Aws3/Aws/Crypto/EncryptionTrait.php +3 -1
  30. vendor/Aws3/Aws/Crypto/EncryptionTraitV2.php +122 -0
  31. vendor/Aws3/Aws/Crypto/KmsMaterialsProvider.php +14 -6
  32. vendor/Aws3/Aws/Crypto/KmsMaterialsProviderV2.php +69 -0
  33. vendor/Aws3/Aws/Crypto/MaterialsProvider.php +1 -1
  34. vendor/Aws3/Aws/Crypto/MaterialsProviderInterface.php +57 -0
  35. vendor/Aws3/Aws/Crypto/MaterialsProviderInterfaceV2.php +50 -0
  36. vendor/Aws3/Aws/Crypto/MaterialsProviderV2.php +57 -0
  37. vendor/Aws3/Aws/Crypto/MetadataEnvelope.php +0 -1
  38. vendor/Aws3/Aws/Crypto/Polyfill/AesGcm.php +163 -0
  39. vendor/Aws3/Aws/Crypto/Polyfill/ByteArray.php +234 -0
  40. vendor/Aws3/Aws/Crypto/Polyfill/Gmac.php +175 -0
  41. vendor/Aws3/Aws/Crypto/Polyfill/Key.php +73 -0
  42. vendor/Aws3/Aws/Crypto/Polyfill/NeedsTrait.php +38 -0
  43. vendor/Aws3/Aws/Endpoint/PartitionEndpointProvider.php +2 -2
  44. vendor/Aws3/Aws/EndpointDiscovery/ConfigurationProvider.php +25 -5
  45. vendor/Aws3/Aws/EndpointDiscovery/EndpointDiscoveryMiddleware.php +5 -2
  46. vendor/Aws3/Aws/Exception/AwsException.php +12 -0
  47. vendor/Aws3/Aws/Exception/CryptoException.php +11 -0
  48. vendor/Aws3/Aws/Exception/CryptoPolyfillException.php +11 -0
  49. vendor/Aws3/Aws/Retry/Configuration.php +44 -0
  50. vendor/Aws3/Aws/Retry/ConfigurationInterface.php +29 -0
  51. vendor/Aws3/Aws/Retry/ConfigurationProvider.php +177 -0
  52. vendor/Aws3/Aws/Retry/Exception/ConfigurationException.php +13 -0
  53. vendor/Aws3/Aws/Retry/QuotaManager.php +65 -0
  54. vendor/Aws3/Aws/Retry/RateLimiter.php +143 -0
  55. vendor/Aws3/Aws/Retry/RetryHelperTrait.php +46 -0
  56. vendor/Aws3/Aws/RetryMiddleware.php +17 -50
  57. vendor/Aws3/Aws/RetryMiddlewareV2.php +235 -0
  58. vendor/Aws3/Aws/S3/AmbiguousSuccessParser.php +7 -2
  59. vendor/Aws3/Aws/S3/ApplyChecksumMiddleware.php +12 -6
  60. vendor/Aws3/Aws/S3/Crypto/CryptoParamsTraitV2.php +16 -0
  61. vendor/Aws3/Aws/S3/Crypto/HeadersMetadataStrategy.php +2 -2
  62. vendor/Aws3/Aws/S3/Crypto/S3EncryptionClient.php +28 -6
  63. vendor/Aws3/Aws/S3/Crypto/S3EncryptionClientV2.php +371 -0
  64. vendor/Aws3/Aws/S3/Crypto/S3EncryptionMultipartUploader.php +13 -2
  65. vendor/Aws3/Aws/S3/Crypto/S3EncryptionMultipartUploaderV2.php +148 -0
  66. vendor/Aws3/Aws/S3/Crypto/UserAgentTrait.php +26 -0
  67. vendor/Aws3/Aws/S3/MultipartCopy.php +4 -3
  68. vendor/Aws3/Aws/S3/PostObjectV4.php +1 -1
  69. vendor/Aws3/Aws/S3/RegionalEndpoint/ConfigurationProvider.php +5 -1
  70. vendor/Aws3/Aws/S3/S3Client.php +46 -29
  71. vendor/Aws3/Aws/S3/S3EndpointMiddleware.php +14 -6
  72. vendor/Aws3/Aws/S3/StreamWrapper.php +1 -1
  73. vendor/Aws3/Aws/S3/UseArnRegion/ConfigurationProvider.php +5 -1
  74. vendor/Aws3/Aws/Sdk.php +17 -1
  75. vendor/Aws3/Aws/Sts/Exception/StsException.php +11 -0
  76. vendor/Aws3/Aws/Sts/RegionalEndpoints/Configuration.php +29 -0
  77. vendor/Aws3/Aws/Sts/RegionalEndpoints/ConfigurationInterface.php +22 -0
  78. vendor/Aws3/Aws/Sts/RegionalEndpoints/ConfigurationProvider.php +169 -0
  79. vendor/Aws3/Aws/Sts/RegionalEndpoints/Exception/ConfigurationException.php +13 -0
  80. vendor/Aws3/Aws/Sts/StsClient.php +74 -0
  81. vendor/Aws3/Aws/data/accessanalyzer/2019-11-01/api-2.json.php +1 -1
  82. vendor/Aws3/Aws/data/acm-pca/2017-08-22/api-2.json.php +1 -1
  83. vendor/Aws3/Aws/data/acm/2015-12-08/api-2.json.php +1 -1
  84. vendor/Aws3/Aws/data/alexaforbusiness/2017-11-09/api-2.json.php +1 -1
  85. vendor/Aws3/Aws/data/amplify/2017-07-25/api-2.json.php +1 -1
  86. vendor/Aws3/Aws/data/apigateway/2015-07-09/api-2.json.php +1 -1
  87. vendor/Aws3/Aws/data/apigatewayv2/2018-11-29/api-2.json.php +0 -1
README.md CHANGED
@@ -4,7 +4,7 @@
4
  **Requires at least:** 4.9
5
  **Tested up to:** 5.5
6
  **Requires PHP:** 5.5
7
- **Stable tag:** 2.4.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.
@@ -89,6 +89,14 @@ This version requires PHP 5.3.3+ and the Amazon Web Services plugin
89
 
90
  ## Changelog ##
91
 
 
 
 
 
 
 
 
 
92
  ### WP Offload Media Lite 2.4.1 - 2020-07-21 ###
93
  * Bug fix: Fatal Error with EWWW Image Optimizer 5.5 or earlier installed
94
  * Bug fix: AWS SDK "Warning: is_readable(): open_basedir restriction in effect" message when Use ARN Region in effect
4
  **Requires at least:** 4.9
5
  **Tested up to:** 5.5
6
  **Requires PHP:** 5.5
7
+ **Stable tag:** 2.4.2
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.
89
 
90
  ## Changelog ##
91
 
92
+ ### WP Offload Media Lite 2.4.2 - 2020-08-27 ###
93
+ * Improvement: Updated AWS PHP SDK to v3.150.1
94
+ * Bug fix: Image thumbnail URLs in custom HTML not rewritten to delivery provider URLs
95
+ * Bug fix: Background processes do not start when PHP memory limit in gigabytes
96
+ * Bug fix: PHP Fatal error: require(): Failed opening required '.../vendor/Aws3/Aws/Sts/StsClient.php'
97
+ * Bug fix: AWS SDK "Warning: is_readable(): open_basedir restriction in effect" message from Regional Endpoint check
98
+ * Bug fix: Bottom and right button borders in settings page are clipped when focused
99
+
100
  ### WP Offload Media Lite 2.4.1 - 2020-07-21 ###
101
  * Bug fix: Fatal Error with EWWW Image Optimizer 5.5 or earlier installed
102
  * Bug fix: AWS SDK "Warning: is_readable(): open_basedir restriction in effect" message when Use ARN Region in effect
assets/css/styles.css CHANGED
@@ -1 +1 @@
1
- .as3cf-content,.as3cf-updated,.as3cf-compatibility-notice{-webkit-box-sizing:border-box;box-sizing:border-box;max-width:650px}.settings_page_amazon-s3-and-cloudfront .error,.settings_page_amazon-s3-and-cloudfront .notice,.settings_page_amazon-s3-and-cloudfront .updated{-webkit-box-sizing:border-box;box-sizing:border-box;max-width:650px}.as3cf-main.wrap{position:relative}.as3cf-main.wrap>h1{float:left}.as3cf-main.wrap .as3cf-notice,.as3cf-main.wrap .as3cf-updated,.as3cf-main.wrap .as3cf-error{-webkit-box-sizing:border-box;box-sizing:border-box}.as3cf-main.wrap .as3cf-error.fatal{clear:both}.as3cf-main.wrap h2.nav-tab-wrapper{float:none;margin-bottom:15px;width:650px;margin-top:10px;padding:9px 0 0 5px}.as3cf-main.wrap h2.nav-tab-wrapper .nav-tab-container{float:right}.as3cf-main.wrap h2.nav-tab-wrapper .nav-tab-container :last-child{margin-right:5px}.as3cf-main.wrap h2.nav-tab-wrapper a.nav-tab-active{color:#464646;cursor:default}.as3cf-main.wrap h2.nav-tab-wrapper a:focus{-webkit-box-shadow:none;box-shadow:none}.as3cf-main.wrap .more-info{white-space:nowrap}.as3cf-main.wrap .error pre{background:#eaeaea;background:rgba(0,0,0,0.07);display:block;padding:10px 15px}.as3cf-main.wrap .error pre code{padding:0;background:none}.as3cf-main.wrap[data-tab="support"] .as3cf-notice,.as3cf-main.wrap[data-tab="support"] .error,.as3cf-main.wrap[data-tab="support"] .updated,.as3cf-main.wrap[data-tab="support"] .updated.show{display:none}.as3cf-main.wrap[data-tab="support"] .fatal .error,.as3cf-main.wrap[data-tab="support"] .as3cf-notice.important,.as3cf-main.wrap[data-tab="support"] .dbrains-api-down{display:block}.as3cf-main.wrap .as3cf-notice,.as3cf-main.wrap .error,.as3cf-main.wrap .updated{max-width:650px;margin-top:15px;-webkit-box-sizing:border-box;box-sizing:border-box}.as3cf-main.wrap .as3cf-updated{display:none}.as3cf-main.wrap .as3cf-updated.as3cf-notice,.as3cf-main.wrap .as3cf-updated.show{display:block}.as3cf-main.wrap .alignleft{margin-right:20px;margin-bottom:20px}.as3cf-main.wrap .spinner{min-width:20px}.as3cf-tab .as3cf-main-settings .as3cf-provider-select{display:none}.as3cf-tab .as3cf-main-settings .as3cf-bucket-container,.as3cf-tab .as3cf-main-settings .as3cf-change-bucket-access-prompt{display:none}.as3cf-tab .as3cf-main-settings .as3cf-bucket-container h3,.as3cf-tab .as3cf-main-settings .as3cf-change-bucket-access-prompt h3{margin-bottom:-0.5em}.as3cf-tab .as3cf-main-settings a.as3cf-change-provider{display:none}.as3cf-tab .as3cf-main-settings .as3cf-delivery-provider-select{display:none}.as3cf-tab .as3cf-main-settings .as3cf-media-settings{display:none}.as3cf-tab.as3cf-needs-access-keys .as3cf-can-write-error,.as3cf-tab.as3cf-has-access-keys.as3cf-change-provider .as3cf-can-write-error{display:none}.as3cf-tab.as3cf-needs-access-keys .as3cf-main-settings .as3cf-provider-select,.as3cf-tab.as3cf-has-access-keys.as3cf-change-provider .as3cf-main-settings .as3cf-provider-select{display:block}.as3cf-tab.as3cf-needs-access-keys .as3cf-main-settings .as3cf-bucket-container,.as3cf-tab.as3cf-has-access-keys.as3cf-change-provider .as3cf-main-settings .as3cf-bucket-container{display:none}.as3cf-tab.as3cf-needs-access-keys .as3cf-main-settings .as3cf-change-bucket-access-prompt,.as3cf-tab.as3cf-has-access-keys.as3cf-change-provider .as3cf-main-settings .as3cf-change-bucket-access-prompt{display:none}.as3cf-tab.as3cf-needs-access-keys .as3cf-main-settings .as3cf-delivery-provider-select,.as3cf-tab.as3cf-has-access-keys.as3cf-change-provider .as3cf-main-settings .as3cf-delivery-provider-select{display:none}.as3cf-tab.as3cf-needs-access-keys .as3cf-main-settings .as3cf-media-settings,.as3cf-tab.as3cf-has-access-keys.as3cf-change-provider .as3cf-main-settings .as3cf-media-settings{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-needs-bucket:not(.as3cf-change-provider) .as3cf-can-write-error,.as3cf-tab.as3cf-has-access-keys.as3cf-change-bucket:not(.as3cf-change-provider) .as3cf-can-write-error{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-needs-bucket:not(.as3cf-change-provider) .as3cf-main-settings .as3cf-provider-select,.as3cf-tab.as3cf-has-access-keys.as3cf-change-bucket:not(.as3cf-change-provider) .as3cf-main-settings .as3cf-provider-select{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-needs-bucket:not(.as3cf-change-provider) .as3cf-main-settings .as3cf-bucket-container,.as3cf-tab.as3cf-has-access-keys.as3cf-change-bucket:not(.as3cf-change-provider) .as3cf-main-settings .as3cf-bucket-container{display:block}.as3cf-tab.as3cf-has-access-keys.as3cf-needs-bucket:not(.as3cf-change-provider) .as3cf-main-settings .as3cf-change-bucket-access-prompt,.as3cf-tab.as3cf-has-access-keys.as3cf-change-bucket:not(.as3cf-change-provider) .as3cf-main-settings .as3cf-change-bucket-access-prompt{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-needs-bucket:not(.as3cf-change-provider) .as3cf-main-settings .as3cf-delivery-provider-select,.as3cf-tab.as3cf-has-access-keys.as3cf-change-bucket:not(.as3cf-change-provider) .as3cf-main-settings .as3cf-delivery-provider-select{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-needs-bucket:not(.as3cf-change-provider) .as3cf-main-settings .as3cf-media-settings,.as3cf-tab.as3cf-has-access-keys.as3cf-change-bucket:not(.as3cf-change-provider) .as3cf-main-settings .as3cf-media-settings{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket.as3cf-change-bucket-access .as3cf-can-write-error{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket.as3cf-change-bucket-access .as3cf-main-settings .as3cf-provider-select{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket.as3cf-change-bucket-access .as3cf-main-settings .as3cf-bucket-container{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket.as3cf-change-bucket-access .as3cf-main-settings .as3cf-change-bucket-access-prompt{display:block}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket.as3cf-change-bucket-access .as3cf-main-settings .as3cf-delivery-provider-select{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket.as3cf-change-bucket-access .as3cf-main-settings .as3cf-media-settings{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket.as3cf-change-delivery-provider .as3cf-can-write-error{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket.as3cf-change-delivery-provider .as3cf-main-settings .as3cf-provider-select{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket.as3cf-change-delivery-provider .as3cf-main-settings .as3cf-bucket-container{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket.as3cf-change-delivery-provider .as3cf-main-settings .as3cf-change-bucket-access-prompt{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket.as3cf-change-delivery-provider .as3cf-main-settings .as3cf-delivery-provider-select{display:block}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket.as3cf-change-delivery-provider .as3cf-main-settings .as3cf-media-settings{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket:not(.as3cf-change-provider):not(.as3cf-change-bucket):not(.as3cf-change-bucket-access):not(.as3cf-change-delivery-provider) .as3cf-main-settings .as3cf-provider-select{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket:not(.as3cf-change-provider):not(.as3cf-change-bucket):not(.as3cf-change-bucket-access):not(.as3cf-change-delivery-provider) .as3cf-main-settings .as3cf-bucket-container{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket:not(.as3cf-change-provider):not(.as3cf-change-bucket):not(.as3cf-change-bucket-access):not(.as3cf-change-delivery-provider) .as3cf-main-settings .as3cf-change-bucket-access-prompt{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket:not(.as3cf-change-provider):not(.as3cf-change-bucket):not(.as3cf-change-bucket-access):not(.as3cf-change-delivery-provider) .as3cf-main-settings .as3cf-delivery-provider-select{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket:not(.as3cf-change-provider):not(.as3cf-change-bucket):not(.as3cf-change-bucket-access):not(.as3cf-change-delivery-provider) .as3cf-main-settings .as3cf-media-settings{display:block}.as3cf-content>section{margin-bottom:20px}.as3cf-content>section+section.as3cf-access-keys{padding-top:20px;border-top:1px solid #d3d3d3}.as3cf-content>section+section.as3cf-access-keys .as3cf-section-heading{margin-top:0}.as3cf-tab{display:none;position:relative;width:650px}.as3cf-tab .as3cf-main-settings p{font-size:13px}.as3cf-tab .as3cf-main-settings p a{color:#444}.as3cf-tab .object-prefix-desc em{white-space:nowrap}.as3cf-tab .as3cf-url-preview-wrap{background:#fff;text-align:center;padding:20px 0 0;max-width:650px;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box}.as3cf-tab .as3cf-url-preview-wrap .as3cf-url-preview{margin-top:10px;padding:0 20px 10px;overflow-x:scroll}.as3cf-tab .as3cf-url-preview-wrap span{color:#aaa;text-transform:uppercase;font-weight:bold}.as3cf-tab .as3cf-radio-group label{display:block;margin-bottom:10px}.as3cf-tab .as3cf-radio-group label.disabled,.as3cf-tab .as3cf-radio-group label.disabled p{color:#bbb;cursor:default}.as3cf-tab .as3cf-radio-group p{padding-left:25px;color:#6b6b6b;margin:0;font-size:12px}.as3cf-tab .as3cf-radio-group p.as3cf-setting{margin-top:5px}.as3cf-tab .as3cf-switch{position:relative;display:inline-block;padding:2px;overflow:hidden;border-radius:2px;background-color:#d4d3d3;cursor:pointer}.as3cf-tab .as3cf-switch.on{background-color:#ade7b5}.as3cf-tab .as3cf-switch span{visibility:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;float:left;display:inline-block;height:100%;font-size:12px;line-height:20px;border-radius:2px;font-weight:bold;padding:4px 8px;background:#fff;color:#8d8d8d;z-index:1}.as3cf-tab .as3cf-switch span.on{color:#82d78b}.as3cf-tab .as3cf-switch span.checked{visibility:visible}.as3cf-tab .as3cf-switch.disabled{cursor:default;background:#e6e6e6}.as3cf-tab .as3cf-switch.disabled span{background:#f1f1f1;color:#d6d6d6}.as3cf-tab .as3cf-switch input[type="checkbox"]{position:absolute !important;top:0;left:0;opacity:0;filter:alpha(opacity=0);z-index:-1}.as3cf-tab .as3cf-setting.hide{display:none}.as3cf-tab .as3cf-setting .as3cf-sub-setting .as3cf-sub-setting-heading{padding-top:15px}.as3cf-tab .as3cf-setting .as3cf-sub-setting .as3cf-defined-in-config{margin-top:15px}.as3cf-tab div.as3cf-setting{margin-top:4px}.as3cf-tab h3{font-weight:normal;text-transform:uppercase}.as3cf-tab .form-table{margin:0}.as3cf-tab .form-table tr.as3cf-border-bottom td{border-bottom:1px solid #ddd;padding:20px 0px}.as3cf-tab .form-table tr.as3cf-setting-title td{padding-bottom:0}.as3cf-tab .form-table tr.as3cf-setting-title:first-child td{padding-top:20px}.as3cf-tab .form-table tr.configure-url:first-child td{padding-top:5px;padding-bottom:0}.as3cf-tab .form-table tr.hide{display:none}.as3cf-tab .form-table tr td{padding:15px 0}.as3cf-tab .form-table tr td:first-child{vertical-align:top;min-width:120px;padding-top:20px}.as3cf-tab .form-table tr td .as3cf-notice:last-child{margin-bottom:0}.as3cf-tab .form-table tr td>p:first-child{margin-top:0}.as3cf-tab .form-table h3{padding:0;margin:0}.as3cf-tab .form-table h4{margin:0}.as3cf-tab .as3cf-active-region{font-style:italic}.as3cf-tab .as3cf-view-bucket{color:#444;text-decoration:none;margin-right:10px}.as3cf-tab .as3cf-view-bucket:hover,.as3cf-tab .as3cf-view-bucket:active{color:#00a0d2}.as3cf-tab .as3cf-view-bucket:focus{-webkit-box-shadow:none;box-shadow:none}.as3cf-tab .as3cf-view-bucket .dashicons-external{margin-top:-2px}.as3cf-tab .tooltip{position:relative;z-index:2;cursor:pointer}.as3cf-tab .tooltip:before,.as3cf-tab .tooltip:after{visibility:hidden;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);opacity:0;pointer-events:none}.as3cf-tab .tooltip:before{position:absolute;bottom:150%;left:50%;margin-bottom:5px;margin-left:-250px;padding:10px;width:500px;border-radius:3px;background-color:#000;background-color:rgba(51,51,51,0.9);color:#fff;content:attr(data-tooltip);text-align:center;font-size:14px;line-height:1.3}.as3cf-tab .tooltip:after{position:absolute;bottom:150%;left:50%;margin-left:-5px;width:0;border-top:5px solid #000;border-top:5px solid rgba(51,51,51,0.9);border-right:5px solid transparent;border-left:5px solid transparent;content:" ";font-size:0;line-height:0}.as3cf-tab .tooltip:hover:before,.as3cf-tab .tooltip:hover:after{visibility:visible;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);opacity:1}.as3cf-tab .as3cf-defined-in-config{background:#ccc;color:#fff;padding:2px 5px;margin:0 0 3px 5px;float:right;white-space:nowrap;clear:right}.as3cf-tab .as3cf-defined-setting,.as3cf-tab .as3cf-locked-setting{color:#bbb}.as3cf-tab .as3cf-defined-setting label,.as3cf-tab .as3cf-locked-setting label{cursor:default}.as3cf-tab .as3cf-defined-setting p .more-info a,.as3cf-tab .as3cf-locked-setting p .more-info a{color:#bbb}.as3cf-tab .as3cf-defined-setting .as3cf-radio-group p,.as3cf-tab .as3cf-locked-setting .as3cf-radio-group p{color:#bbb}.as3cf-tab .as3cf-defined-setting .as3cf-notice,.as3cf-tab .as3cf-locked-setting .as3cf-notice{display:none !important}.as3cf-tab p.actions{margin:30px 0;border-top:1px solid #ccc;padding-top:15px;overflow:hidden}.as3cf-tab p.actions button,.as3cf-tab p.actions .right{float:right;margin-left:15px;margin-right:0;min-width:90px}.as3cf-tab p.actions button:last-of-type,.as3cf-tab p.actions .right:last-of-type{margin-left:0}.as3cf-tab p.actions span{display:inline-block;margin-right:20px;line-height:28px}.as3cf-tab .locked .as3cf-radio-group label,.as3cf-tab .locked .as3cf-radio-group label p{color:#bbb;cursor:default}.as3cf-tab .locked .as3cf-switch{cursor:default;background:#e6e6e6}.as3cf-tab .locked .as3cf-switch span{background:#f1f1f1;color:#d6d6d6}#tab-media{display:block}#tab-media .as3cf-provider-setting td{padding-top:20px;padding-bottom:5px}#tab-media .as3cf-bucket-setting td{padding:5px 0}.as3cf-bucket-container h3{line-height:1.3;text-transform:none}.as3cf-bucket-container a:focus{-webkit-box-shadow:none;box-shadow:none;outline:none}.as3cf-bucket-container input[type=text]{-webkit-box-sizing:border-box;box-sizing:border-box;width:100%}.as3cf-bucket-container select{-webkit-box-sizing:border-box;box-sizing:border-box;width:50%}.as3cf-bucket-container .form-table .as3cf-provider-setting h4{font-weight:inherit;margin:0}.as3cf-bucket-container .form-table .as3cf-bucket-list{margin:5px 0 0 0}.as3cf-bucket-container .form-table td{padding:5px 0}.as3cf-bucket-container .form-table td:first-child{width:100px;line-height:30px;vertical-align:top}.as3cf-bucket-container .form-table td .as3cf-defined-in-config{margin-top:-1.75em}.as3cf-bucket-container .as3cf-bucket-list{padding:15px;max-height:200px;overflow-x:hidden;overflow-y:auto;background-color:#fff;font-size:14px}.as3cf-bucket-container .as3cf-bucket-list li:last-of-type{margin-bottom:0}.as3cf-bucket-container .as3cf-bucket-list a{color:#444;text-decoration:none}.as3cf-bucket-container .as3cf-bucket-list a:hover{color:#0074a2}.as3cf-bucket-container .as3cf-bucket-list a.selected{font-weight:bold;color:#0074a2}.as3cf-bucket-container .as3cf-bucket-list a .dashicons{margin-right:5px}.as3cf-change-bucket-access-prompt h3{line-height:1.3;text-transform:none}.as3cf-change-bucket-access-prompt .as3cf-radio-group{margin-bottom:25px}.as3cf-change-bucket-access-prompt .note{color:#999}.as3cf-delivery-provider-select h3{line-height:1.3;text-transform:none}.as3cf-delivery-provider-select .note{color:#999}#tab-media{display:block}#tab-support{min-height:900px}#tab-support .as3cf-sidebar{top:11px}#tab-support .support-section{border-bottom:1px solid #ccc;padding-bottom:20px;margin-bottom:20px}#tab-support .support-section h3{font-size:20px}#tab-support .debug textarea{width:100%;min-height:200px;font-family:Consolas, Monaco, monospace;margin-bottom:5px}.as3cf-sidebar{position:absolute;top:9px;left:670px;width:292px}.as3cf-sidebar.lite{margin-top:35px;background:white;border-radius:7px;border:1px solid #D9E1EB;overflow:hidden;-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,0.1);box-shadow:0 1px 2px 0 rgba(0,0,0,0.1)}.as3cf-sidebar .block{padding:20px;border:1px solid #ccc}.as3cf-sidebar .subscribe{border-top:none;text-align:center;padding:40px 20px}.as3cf-sidebar .subscribe h2{padding:0;margin:0;margin-bottom:0.5em;color:#666;font-size:17px;line-height:1.2em;float:none}.as3cf-sidebar .subscribe h3{font-size:16px;margin:20px 0 0}.as3cf-sidebar .subscribe h3 a{background-color:#E9715E;color:white;display:inline-block;font-size:13px;font-weight:bold;letter-spacing:1px;text-transform:uppercase;padding:15px 50px;border-radius:4px;margin-bottom:6px;text-decoration:none;-webkit-box-shadow:0 2px 0 #C6442F;box-shadow:0 2px 0 #C6442F}.as3cf-sidebar .subscribe h3 a:hover{color:rgba(78,13,51,0.65)}.as3cf-sidebar .subscribe p{margin:0}.as3cf-sidebar .subscribe .discount-applied{color:rgba(0,0,0,0.4);font-size:12px;line-height:1.4em;margin-top:10px}.as3cf-sidebar .credits{border-top:0;background:#2E2E31;text-align:center;padding:10px}.as3cf-sidebar .credits h4{font-size:11px;font-weight:normal;color:rgba(255,255,255,0.7);margin-top:0;margin-bottom:10px}.as3cf-sidebar .credits ul{display:inline-block;margin:0}.as3cf-sidebar .credits li{overflow:hidden}.as3cf-sidebar .credits li:last-child{margin-bottom:0}.as3cf-sidebar .credits img{display:inline-block;vertical-align:middle;margin-right:8px}.as3cf-sidebar .credits span{display:inline-block;vertical-align:middle;font-size:12px;line-height:24px}.as3cf-sidebar .credits a{display:block;text-decoration:none;color:white;font-size:12px;text-align:center}.as3cf-sidebar .credits a:hover{color:rgba(255,255,255,0.7)}@media screen and (max-width: 1052px){.as3cf-sidebar{position:relative;top:auto;right:auto}}.as3cf-active-provider,.as3cf-active-bucket{font-weight:bold;margin-right:10px}.as3cf-banner{width:292px;height:156px;display:block;background:#f8cfae url(../img/os3-banner.svg) left bottom/100% no-repeat}.as3cf-banner:focus{-webkit-box-shadow:none;box-shadow:none}.wrap .as3cf-upgrade-details{background-color:#4e0d33;padding:10px 20px 20px 20px;color:#eee;font-size:13px;margin:0;display:block;text-decoration:none}.wrap .as3cf-upgrade-details h1{font-size:27px;color:#f8cfae;margin:0 0 15px 0;padding:0;font-weight:300;line-height:1}.wrap .as3cf-upgrade-details h2{font-size:15px;color:#F8CFAE;margin:0 0 30px 0;font-weight:500;line-height:20px}.wrap .as3cf-upgrade-details p{margin:0}.wrap .as3cf-upgrade-details a{color:#eee;font-weight:bold;text-decoration:none;font-size:16px;-webkit-box-shadow:none;box-shadow:none}.wrap .as3cf-upgrade-details a:hover{color:#fff}.wrap .as3cf-upgrade-details ul{margin:0;list-style:none}.wrap .as3cf-upgrade-details ul li{margin-bottom:15px;line-height:18px;padding-left:25px;background:url(../img/icon-checked.svg) left center no-repeat}.as3cf-compatibility-notice.error{clear:both;margin:5px 20px 5px 0}.as3cf-bucket-error span.title{font-weight:bold}.as3cf-invalid-bucket-name,.as3cf-validation-error{display:block;margin-top:2px;font-size:12px;color:#a00}.as3cf-notice-toggle-content{max-height:100px;overflow-y:scroll}.as3cf-notice-toggle-content .as3cf-notice-toggle-list{margin-top:0;margin-left:0;padding-left:40px;color:#dc3232}.as3cf-need-help{background-color:white;font-size:16px;font-weight:bold;padding:1em}.as3cf-need-help a{text-decoration:none}.as3cf-settings h3{font-size:20px}.as3cf-settings p{font-size:14px}.as3cf-addons,.as3cf-tab .as3cf-compatibility-notice{max-width:cover}textarea.as3cf-access-key-constants-snippet.code{width:100%;white-space:pre;overflow:hidden;font-size:12px;padding:10px;height:53px}.as3cf-addons .as3cf-addons-list{margin:20px 0 200px;padding-top:5px}.as3cf-addons .as3cf-addon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding:20px;font-size:14px}.as3cf-addons .as3cf-addon-info{min-height:100px}.as3cf-addons .as3cf-addon-links{float:right}.as3cf-addons .as3cf-addon-links span{padding:4px 6px}.as3cf-addons .as3cf-addon-icon{float:left;margin-right:20px}.as3cf-addons .as3cf-addon-details{white-space:nowrap}.as3cf-addons .as3cf-addon-title,.as3cf-addons .as3cf-addon-description{font-weight:100}.as3cf-addons .as3cf-addon+.as3cf-addon{margin-top:20px}.as3cf-addons .as3cf-addon.amazon-s3-and-cloudfront-assets-pull{background-color:#0769ad;color:white}.as3cf-addons .as3cf-addon.amazon-s3-and-cloudfront-assets-pull .as3cf-addon-title,.as3cf-addons .as3cf-addon.amazon-s3-and-cloudfront-assets-pull .as3cf-addon-description,.as3cf-addons .as3cf-addon.amazon-s3-and-cloudfront-assets-pull a{color:white}.as3cf-addons .as3cf-addon.amazon-s3-and-cloudfront-assets-pull .extra{background:white}.as3cf-addons .as3cf-addon.amazon-s3-and-cloudfront-assets-pull .extra a{color:#0769ad;text-decoration:none}
1
+ .as3cf-content,.as3cf-updated,.as3cf-compatibility-notice{-webkit-box-sizing:border-box;box-sizing:border-box;max-width:650px}.settings_page_amazon-s3-and-cloudfront .error,.settings_page_amazon-s3-and-cloudfront .notice,.settings_page_amazon-s3-and-cloudfront .updated{-webkit-box-sizing:border-box;box-sizing:border-box;max-width:650px}.as3cf-main.wrap{position:relative}.as3cf-main.wrap>h1{float:left}.as3cf-main.wrap .as3cf-notice,.as3cf-main.wrap .as3cf-updated,.as3cf-main.wrap .as3cf-error{-webkit-box-sizing:border-box;box-sizing:border-box}.as3cf-main.wrap .as3cf-error.fatal{clear:both}.as3cf-main.wrap h2.nav-tab-wrapper{float:none;margin-bottom:15px;width:650px;margin-top:10px;padding:9px 0 0 5px}.as3cf-main.wrap h2.nav-tab-wrapper .nav-tab-container{float:right}.as3cf-main.wrap h2.nav-tab-wrapper .nav-tab-container :last-child{margin-right:5px}.as3cf-main.wrap h2.nav-tab-wrapper a.nav-tab-active{color:#464646;cursor:default}.as3cf-main.wrap h2.nav-tab-wrapper a:focus{-webkit-box-shadow:none;box-shadow:none}.as3cf-main.wrap .more-info{white-space:nowrap}.as3cf-main.wrap .error pre{background:#eaeaea;background:rgba(0,0,0,0.07);display:block;padding:10px 15px}.as3cf-main.wrap .error pre code{padding:0;background:none}.as3cf-main.wrap[data-tab="support"] .as3cf-notice,.as3cf-main.wrap[data-tab="support"] .error,.as3cf-main.wrap[data-tab="support"] .updated,.as3cf-main.wrap[data-tab="support"] .updated.show{display:none}.as3cf-main.wrap[data-tab="support"] .fatal .error,.as3cf-main.wrap[data-tab="support"] .as3cf-notice.important,.as3cf-main.wrap[data-tab="support"] .dbrains-api-down{display:block}.as3cf-main.wrap .as3cf-notice,.as3cf-main.wrap .error,.as3cf-main.wrap .updated{max-width:650px;margin-top:15px;-webkit-box-sizing:border-box;box-sizing:border-box}.as3cf-main.wrap .as3cf-updated{display:none}.as3cf-main.wrap .as3cf-updated.as3cf-notice,.as3cf-main.wrap .as3cf-updated.show{display:block}.as3cf-main.wrap .alignleft{margin-right:20px;margin-bottom:20px}.as3cf-main.wrap .spinner{min-width:20px}.as3cf-tab .as3cf-main-settings .as3cf-provider-select{display:none}.as3cf-tab .as3cf-main-settings .as3cf-bucket-container,.as3cf-tab .as3cf-main-settings .as3cf-change-bucket-access-prompt{display:none}.as3cf-tab .as3cf-main-settings .as3cf-bucket-container h3,.as3cf-tab .as3cf-main-settings .as3cf-change-bucket-access-prompt h3{margin-bottom:-0.5em}.as3cf-tab .as3cf-main-settings a.as3cf-change-provider{display:none}.as3cf-tab .as3cf-main-settings .as3cf-delivery-provider-select{display:none}.as3cf-tab .as3cf-main-settings .as3cf-media-settings{display:none}.as3cf-tab.as3cf-needs-access-keys .as3cf-can-write-error,.as3cf-tab.as3cf-has-access-keys.as3cf-change-provider .as3cf-can-write-error{display:none}.as3cf-tab.as3cf-needs-access-keys .as3cf-main-settings .as3cf-provider-select,.as3cf-tab.as3cf-has-access-keys.as3cf-change-provider .as3cf-main-settings .as3cf-provider-select{display:block}.as3cf-tab.as3cf-needs-access-keys .as3cf-main-settings .as3cf-bucket-container,.as3cf-tab.as3cf-has-access-keys.as3cf-change-provider .as3cf-main-settings .as3cf-bucket-container{display:none}.as3cf-tab.as3cf-needs-access-keys .as3cf-main-settings .as3cf-change-bucket-access-prompt,.as3cf-tab.as3cf-has-access-keys.as3cf-change-provider .as3cf-main-settings .as3cf-change-bucket-access-prompt{display:none}.as3cf-tab.as3cf-needs-access-keys .as3cf-main-settings .as3cf-delivery-provider-select,.as3cf-tab.as3cf-has-access-keys.as3cf-change-provider .as3cf-main-settings .as3cf-delivery-provider-select{display:none}.as3cf-tab.as3cf-needs-access-keys .as3cf-main-settings .as3cf-media-settings,.as3cf-tab.as3cf-has-access-keys.as3cf-change-provider .as3cf-main-settings .as3cf-media-settings{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-needs-bucket:not(.as3cf-change-provider) .as3cf-can-write-error,.as3cf-tab.as3cf-has-access-keys.as3cf-change-bucket:not(.as3cf-change-provider) .as3cf-can-write-error{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-needs-bucket:not(.as3cf-change-provider) .as3cf-main-settings .as3cf-provider-select,.as3cf-tab.as3cf-has-access-keys.as3cf-change-bucket:not(.as3cf-change-provider) .as3cf-main-settings .as3cf-provider-select{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-needs-bucket:not(.as3cf-change-provider) .as3cf-main-settings .as3cf-bucket-container,.as3cf-tab.as3cf-has-access-keys.as3cf-change-bucket:not(.as3cf-change-provider) .as3cf-main-settings .as3cf-bucket-container{display:block}.as3cf-tab.as3cf-has-access-keys.as3cf-needs-bucket:not(.as3cf-change-provider) .as3cf-main-settings .as3cf-change-bucket-access-prompt,.as3cf-tab.as3cf-has-access-keys.as3cf-change-bucket:not(.as3cf-change-provider) .as3cf-main-settings .as3cf-change-bucket-access-prompt{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-needs-bucket:not(.as3cf-change-provider) .as3cf-main-settings .as3cf-delivery-provider-select,.as3cf-tab.as3cf-has-access-keys.as3cf-change-bucket:not(.as3cf-change-provider) .as3cf-main-settings .as3cf-delivery-provider-select{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-needs-bucket:not(.as3cf-change-provider) .as3cf-main-settings .as3cf-media-settings,.as3cf-tab.as3cf-has-access-keys.as3cf-change-bucket:not(.as3cf-change-provider) .as3cf-main-settings .as3cf-media-settings{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket.as3cf-change-bucket-access .as3cf-can-write-error{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket.as3cf-change-bucket-access .as3cf-main-settings .as3cf-provider-select{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket.as3cf-change-bucket-access .as3cf-main-settings .as3cf-bucket-container{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket.as3cf-change-bucket-access .as3cf-main-settings .as3cf-change-bucket-access-prompt{display:block}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket.as3cf-change-bucket-access .as3cf-main-settings .as3cf-delivery-provider-select{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket.as3cf-change-bucket-access .as3cf-main-settings .as3cf-media-settings{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket.as3cf-change-delivery-provider .as3cf-can-write-error{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket.as3cf-change-delivery-provider .as3cf-main-settings .as3cf-provider-select{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket.as3cf-change-delivery-provider .as3cf-main-settings .as3cf-bucket-container{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket.as3cf-change-delivery-provider .as3cf-main-settings .as3cf-change-bucket-access-prompt{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket.as3cf-change-delivery-provider .as3cf-main-settings .as3cf-delivery-provider-select{display:block}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket.as3cf-change-delivery-provider .as3cf-main-settings .as3cf-media-settings{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket:not(.as3cf-change-provider):not(.as3cf-change-bucket):not(.as3cf-change-bucket-access):not(.as3cf-change-delivery-provider) .as3cf-main-settings .as3cf-provider-select{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket:not(.as3cf-change-provider):not(.as3cf-change-bucket):not(.as3cf-change-bucket-access):not(.as3cf-change-delivery-provider) .as3cf-main-settings .as3cf-bucket-container{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket:not(.as3cf-change-provider):not(.as3cf-change-bucket):not(.as3cf-change-bucket-access):not(.as3cf-change-delivery-provider) .as3cf-main-settings .as3cf-change-bucket-access-prompt{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket:not(.as3cf-change-provider):not(.as3cf-change-bucket):not(.as3cf-change-bucket-access):not(.as3cf-change-delivery-provider) .as3cf-main-settings .as3cf-delivery-provider-select{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket:not(.as3cf-change-provider):not(.as3cf-change-bucket):not(.as3cf-change-bucket-access):not(.as3cf-change-delivery-provider) .as3cf-main-settings .as3cf-media-settings{display:block}.as3cf-content>section{margin-bottom:20px}.as3cf-content>section+section.as3cf-access-keys{padding-top:20px;border-top:1px solid #d3d3d3}.as3cf-content>section+section.as3cf-access-keys .as3cf-section-heading{margin-top:0}.as3cf-tab{display:none;position:relative;width:650px}.as3cf-tab .as3cf-main-settings p{font-size:13px}.as3cf-tab .as3cf-main-settings p a{color:#444}.as3cf-tab .object-prefix-desc em{white-space:nowrap}.as3cf-tab .as3cf-url-preview-wrap{background:#fff;text-align:center;padding:20px 0 0;max-width:650px;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box}.as3cf-tab .as3cf-url-preview-wrap .as3cf-url-preview{margin-top:10px;padding:0 20px 10px;overflow-x:scroll}.as3cf-tab .as3cf-url-preview-wrap span{color:#aaa;text-transform:uppercase;font-weight:bold}.as3cf-tab .as3cf-radio-group label{display:block;margin-bottom:10px}.as3cf-tab .as3cf-radio-group label.disabled,.as3cf-tab .as3cf-radio-group label.disabled p{color:#bbb;cursor:default}.as3cf-tab .as3cf-radio-group p{padding-left:25px;color:#6b6b6b;margin:0;font-size:12px}.as3cf-tab .as3cf-radio-group p.as3cf-setting{margin-top:5px}.as3cf-tab .as3cf-switch{position:relative;display:inline-block;padding:2px;overflow:hidden;border-radius:2px;background-color:#d4d3d3;cursor:pointer}.as3cf-tab .as3cf-switch.on{background-color:#ade7b5}.as3cf-tab .as3cf-switch span{visibility:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;float:left;display:inline-block;height:100%;font-size:12px;line-height:20px;border-radius:2px;font-weight:bold;padding:4px 8px;background:#fff;color:#8d8d8d;z-index:1}.as3cf-tab .as3cf-switch span.on{color:#82d78b}.as3cf-tab .as3cf-switch span.checked{visibility:visible}.as3cf-tab .as3cf-switch.disabled{cursor:default;background:#e6e6e6}.as3cf-tab .as3cf-switch.disabled span{background:#f1f1f1;color:#d6d6d6}.as3cf-tab .as3cf-switch input[type="checkbox"]{position:absolute !important;top:0;left:0;opacity:0;filter:alpha(opacity=0);z-index:-1}.as3cf-tab .as3cf-setting.hide{display:none}.as3cf-tab .as3cf-setting .as3cf-sub-setting .as3cf-sub-setting-heading{padding-top:15px}.as3cf-tab .as3cf-setting .as3cf-sub-setting .as3cf-defined-in-config{margin-top:15px}.as3cf-tab div.as3cf-setting{margin-top:4px}.as3cf-tab h3{font-weight:normal;text-transform:uppercase}.as3cf-tab .form-table{margin:0}.as3cf-tab .form-table tr.as3cf-border-bottom td{border-bottom:1px solid #ddd;padding:20px 0px}.as3cf-tab .form-table tr.as3cf-setting-title td{padding-bottom:0}.as3cf-tab .form-table tr.as3cf-setting-title:first-child td{padding-top:20px}.as3cf-tab .form-table tr.configure-url:first-child td{padding-top:5px;padding-bottom:0}.as3cf-tab .form-table tr.hide{display:none}.as3cf-tab .form-table tr td{padding:15px 0}.as3cf-tab .form-table tr td:first-child{vertical-align:top;min-width:120px;padding-top:20px}.as3cf-tab .form-table tr td .as3cf-notice:last-child{margin-bottom:0}.as3cf-tab .form-table tr td>p:first-child{margin-top:0}.as3cf-tab .form-table h3{padding:0;margin:0}.as3cf-tab .form-table h4{margin:0}.as3cf-tab .as3cf-active-region{font-style:italic}.as3cf-tab .as3cf-view-bucket{color:#444;text-decoration:none;margin-right:10px}.as3cf-tab .as3cf-view-bucket:hover,.as3cf-tab .as3cf-view-bucket:active{color:#00a0d2}.as3cf-tab .as3cf-view-bucket:focus{-webkit-box-shadow:none;box-shadow:none}.as3cf-tab .as3cf-view-bucket .dashicons-external{margin-top:-2px}.as3cf-tab .tooltip{position:relative;z-index:2;cursor:pointer}.as3cf-tab .tooltip:before,.as3cf-tab .tooltip:after{visibility:hidden;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);opacity:0;pointer-events:none}.as3cf-tab .tooltip:before{position:absolute;bottom:150%;left:50%;margin-bottom:5px;margin-left:-250px;padding:10px;width:500px;border-radius:3px;background-color:#000;background-color:rgba(51,51,51,0.9);color:#fff;content:attr(data-tooltip);text-align:center;font-size:14px;line-height:1.3}.as3cf-tab .tooltip:after{position:absolute;bottom:150%;left:50%;margin-left:-5px;width:0;border-top:5px solid #000;border-top:5px solid rgba(51,51,51,0.9);border-right:5px solid transparent;border-left:5px solid transparent;content:" ";font-size:0;line-height:0}.as3cf-tab .tooltip:hover:before,.as3cf-tab .tooltip:hover:after{visibility:visible;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);opacity:1}.as3cf-tab .as3cf-defined-in-config{background:#ccc;color:#fff;padding:2px 5px;margin:0 0 3px 5px;float:right;white-space:nowrap;clear:right}.as3cf-tab .as3cf-defined-setting,.as3cf-tab .as3cf-locked-setting{color:#bbb}.as3cf-tab .as3cf-defined-setting label,.as3cf-tab .as3cf-locked-setting label{cursor:default}.as3cf-tab .as3cf-defined-setting p .more-info a,.as3cf-tab .as3cf-locked-setting p .more-info a{color:#bbb}.as3cf-tab .as3cf-defined-setting .as3cf-radio-group p,.as3cf-tab .as3cf-locked-setting .as3cf-radio-group p{color:#bbb}.as3cf-tab .as3cf-defined-setting .as3cf-notice,.as3cf-tab .as3cf-locked-setting .as3cf-notice{display:none !important}.as3cf-tab p.actions{margin:30px 0;border-top:1px solid #ccc;padding-top:15px}.as3cf-tab p.actions button,.as3cf-tab p.actions .right{float:right;margin-left:15px;margin-right:0;min-width:90px}.as3cf-tab p.actions button:last-of-type,.as3cf-tab p.actions .right:last-of-type{margin-left:0}.as3cf-tab p.actions span{display:inline-block;margin-right:20px;line-height:28px}.as3cf-tab .locked .as3cf-radio-group label,.as3cf-tab .locked .as3cf-radio-group label p{color:#bbb;cursor:default}.as3cf-tab .locked .as3cf-switch{cursor:default;background:#e6e6e6}.as3cf-tab .locked .as3cf-switch span{background:#f1f1f1;color:#d6d6d6}#tab-media{display:block}#tab-media .as3cf-provider-setting td{padding-top:20px;padding-bottom:5px}#tab-media .as3cf-bucket-setting td{padding:5px 0}.as3cf-bucket-container h3{line-height:1.3;text-transform:none}.as3cf-bucket-container a:focus{-webkit-box-shadow:none;box-shadow:none;outline:none}.as3cf-bucket-container input[type=text]{-webkit-box-sizing:border-box;box-sizing:border-box;width:100%}.as3cf-bucket-container select{-webkit-box-sizing:border-box;box-sizing:border-box;width:50%}.as3cf-bucket-container .form-table .as3cf-provider-setting h4{font-weight:inherit;margin:0}.as3cf-bucket-container .form-table .as3cf-bucket-list{margin:5px 0 0 0}.as3cf-bucket-container .form-table td{padding:5px 0}.as3cf-bucket-container .form-table td:first-child{width:100px;line-height:30px;vertical-align:top}.as3cf-bucket-container .form-table td .as3cf-defined-in-config{margin-top:-1.75em}.as3cf-bucket-container .as3cf-bucket-list{padding:15px;max-height:200px;overflow-x:hidden;overflow-y:auto;background-color:#fff;font-size:14px}.as3cf-bucket-container .as3cf-bucket-list li:last-of-type{margin-bottom:0}.as3cf-bucket-container .as3cf-bucket-list a{color:#444;text-decoration:none}.as3cf-bucket-container .as3cf-bucket-list a:hover{color:#0074a2}.as3cf-bucket-container .as3cf-bucket-list a.selected{font-weight:bold;color:#0074a2}.as3cf-bucket-container .as3cf-bucket-list a .dashicons{margin-right:5px}.as3cf-change-bucket-access-prompt h3{line-height:1.3;text-transform:none}.as3cf-change-bucket-access-prompt .as3cf-radio-group{margin-bottom:25px}.as3cf-change-bucket-access-prompt .note{color:#999}.as3cf-delivery-provider-select h3{line-height:1.3;text-transform:none}.as3cf-delivery-provider-select .note{color:#999}#tab-media{display:block}#tab-support{min-height:900px}#tab-support .as3cf-sidebar{top:11px}#tab-support .support-section{border-bottom:1px solid #ccc;padding-bottom:20px;margin-bottom:20px}#tab-support .support-section h3{font-size:20px}#tab-support .debug textarea{width:100%;min-height:200px;font-family:Consolas, Monaco, monospace;margin-bottom:5px}.as3cf-sidebar{position:absolute;top:9px;left:670px;width:292px}.as3cf-sidebar.lite{margin-top:35px;background:white;border-radius:7px;border:1px solid #D9E1EB;overflow:hidden;-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,0.1);box-shadow:0 1px 2px 0 rgba(0,0,0,0.1)}.as3cf-sidebar .block{padding:20px;border:1px solid #ccc}.as3cf-sidebar .subscribe{border-top:none;text-align:center;padding:40px 20px}.as3cf-sidebar .subscribe h2{padding:0;margin:0;margin-bottom:0.5em;color:#666;font-size:17px;line-height:1.2em;float:none}.as3cf-sidebar .subscribe h3{font-size:16px;margin:20px 0 0}.as3cf-sidebar .subscribe h3 a{background-color:#E9715E;color:white;display:inline-block;font-size:13px;font-weight:bold;letter-spacing:1px;text-transform:uppercase;padding:15px 50px;border-radius:4px;margin-bottom:6px;text-decoration:none;-webkit-box-shadow:0 2px 0 #C6442F;box-shadow:0 2px 0 #C6442F}.as3cf-sidebar .subscribe h3 a:hover{color:rgba(78,13,51,0.65)}.as3cf-sidebar .subscribe p{margin:0}.as3cf-sidebar .subscribe .discount-applied{color:rgba(0,0,0,0.4);font-size:12px;line-height:1.4em;margin-top:10px}.as3cf-sidebar .credits{border-top:0;background:#2E2E31;text-align:center;padding:10px}.as3cf-sidebar .credits h4{font-size:11px;font-weight:normal;color:rgba(255,255,255,0.7);margin-top:0;margin-bottom:10px}.as3cf-sidebar .credits ul{display:inline-block;margin:0}.as3cf-sidebar .credits li{overflow:hidden}.as3cf-sidebar .credits li:last-child{margin-bottom:0}.as3cf-sidebar .credits img{display:inline-block;vertical-align:middle;margin-right:8px}.as3cf-sidebar .credits span{display:inline-block;vertical-align:middle;font-size:12px;line-height:24px}.as3cf-sidebar .credits a{display:block;text-decoration:none;color:white;font-size:12px;text-align:center}.as3cf-sidebar .credits a:hover{color:rgba(255,255,255,0.7)}@media screen and (max-width: 1052px){.as3cf-sidebar{position:relative;top:auto;right:auto}}.as3cf-active-provider,.as3cf-active-bucket{font-weight:bold;margin-right:10px}.as3cf-banner{width:292px;height:156px;display:block;background:#f8cfae url(../img/os3-banner.svg) left bottom/100% no-repeat}.as3cf-banner:focus{-webkit-box-shadow:none;box-shadow:none}.wrap .as3cf-upgrade-details{background-color:#4e0d33;padding:10px 20px 20px 20px;color:#eee;font-size:13px;margin:0;display:block;text-decoration:none}.wrap .as3cf-upgrade-details h1{font-size:27px;color:#f8cfae;margin:0 0 15px 0;padding:0;font-weight:300;line-height:1}.wrap .as3cf-upgrade-details h2{font-size:15px;color:#F8CFAE;margin:0 0 30px 0;font-weight:500;line-height:20px}.wrap .as3cf-upgrade-details p{margin:0}.wrap .as3cf-upgrade-details a{color:#eee;font-weight:bold;text-decoration:none;font-size:16px;-webkit-box-shadow:none;box-shadow:none}.wrap .as3cf-upgrade-details a:hover{color:#fff}.wrap .as3cf-upgrade-details ul{margin:0;list-style:none}.wrap .as3cf-upgrade-details ul li{margin-bottom:15px;line-height:18px;padding-left:25px;background:url(../img/icon-checked.svg) left center no-repeat}.as3cf-compatibility-notice.error{clear:both;margin:5px 20px 5px 0}.as3cf-bucket-error span.title{font-weight:bold}.as3cf-invalid-bucket-name,.as3cf-validation-error{display:block;margin-top:2px;font-size:12px;color:#a00}.as3cf-notice-toggle-content{max-height:100px;overflow-y:scroll}.as3cf-notice-toggle-content .as3cf-notice-toggle-list{margin-top:0;margin-left:0;padding-left:40px;color:#dc3232}.as3cf-need-help{background-color:white;font-size:16px;font-weight:bold;padding:1em}.as3cf-need-help a{text-decoration:none}.as3cf-settings h3{font-size:20px}.as3cf-settings p{font-size:14px}.as3cf-addons,.as3cf-tab .as3cf-compatibility-notice{max-width:cover}textarea.as3cf-access-key-constants-snippet.code{width:100%;white-space:pre;overflow:hidden;font-size:12px;padding:10px;height:53px}.as3cf-addons .as3cf-addons-list{margin:20px 0 200px;padding-top:5px}.as3cf-addons .as3cf-addon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding:20px;font-size:14px}.as3cf-addons .as3cf-addon-info{min-height:100px}.as3cf-addons .as3cf-addon-links{float:right}.as3cf-addons .as3cf-addon-links span{padding:4px 6px}.as3cf-addons .as3cf-addon-icon{float:left;margin-right:20px}.as3cf-addons .as3cf-addon-details{white-space:nowrap}.as3cf-addons .as3cf-addon-title,.as3cf-addons .as3cf-addon-description{font-weight:100}.as3cf-addons .as3cf-addon+.as3cf-addon{margin-top:20px}.as3cf-addons .as3cf-addon.amazon-s3-and-cloudfront-assets-pull{background-color:#0769ad;color:white}.as3cf-addons .as3cf-addon.amazon-s3-and-cloudfront-assets-pull .as3cf-addon-title,.as3cf-addons .as3cf-addon.amazon-s3-and-cloudfront-assets-pull .as3cf-addon-description,.as3cf-addons .as3cf-addon.amazon-s3-and-cloudfront-assets-pull a{color:white}.as3cf-addons .as3cf-addon.amazon-s3-and-cloudfront-assets-pull .extra{background:white}.as3cf-addons .as3cf-addon.amazon-s3-and-cloudfront-assets-pull .extra a{color:#0769ad;text-decoration:none}
assets/sass/styles.scss CHANGED
@@ -617,9 +617,7 @@ $as3cf_assets: #0769ad;
617
  p.actions {
618
  margin: 30px 0;
619
  border-top: 1px solid #ccc;
620
- //padding: 20px 30px;
621
  padding-top: 15px;
622
- overflow: hidden;
623
 
624
  button,
625
  .right {
617
  p.actions {
618
  margin: 30px 0;
619
  border-top: 1px solid #ccc;
 
620
  padding-top: 15px;
 
621
 
622
  button,
623
  .right {
classes/amazon-s3-and-cloudfront.php CHANGED
@@ -4976,7 +4976,7 @@ class Amazon_S3_And_CloudFront extends AS3CF_Plugin_Base {
4976
  $memory_limit = '32000M';
4977
  }
4978
 
4979
- return intval( $memory_limit ) * 1024 * 1024;
4980
  }
4981
 
4982
  /**
4976
  $memory_limit = '32000M';
4977
  }
4978
 
4979
+ return wp_convert_hr_to_bytes( $memory_limit );
4980
  }
4981
 
4982
  /**
classes/filters/as3cf-local-to-s3.php CHANGED
@@ -250,7 +250,10 @@ class AS3CF_Local_To_S3 extends AS3CF_Filter {
250
  }
251
 
252
  foreach ( $query_set as $url ) {
253
- $full_url = AS3CF_Utils::remove_scheme( $url );
 
 
 
254
 
255
  if ( isset( $this->query_cache[ $full_url ] ) ) {
256
  // ID already cached, use it.
@@ -259,7 +262,7 @@ class AS3CF_Local_To_S3 extends AS3CF_Filter {
259
  continue;
260
  }
261
 
262
- $path = AS3CF_Utils::decode_filename_in_path( ltrim( str_replace( $this->get_bare_upload_base_urls(), '', $full_url ), '/' ) );
263
 
264
  $paths[ $path ] = $full_url;
265
  $full_urls[ $full_url ][] = $url;
250
  }
251
 
252
  foreach ( $query_set as $url ) {
253
+ // Path to search for in query set should be based on bare URL.
254
+ $bare_url = AS3CF_Utils::remove_scheme( $url );
255
+ // There can be multiple URLs in the query set that belong to the same full URL for the Media Library item.
256
+ $full_url = AS3CF_Utils::remove_size_from_filename( $bare_url );
257
 
258
  if ( isset( $this->query_cache[ $full_url ] ) ) {
259
  // ID already cached, use it.
262
  continue;
263
  }
264
 
265
+ $path = AS3CF_Utils::decode_filename_in_path( ltrim( str_replace( $this->get_bare_upload_base_urls(), '', $bare_url ), '/' ) );
266
 
267
  $paths[ $path ] = $full_url;
268
  $full_urls[ $full_url ][] = $url;
classes/providers/storage/aws-provider.php CHANGED
@@ -218,11 +218,14 @@ class AWS_Provider extends Storage_Provider {
218
  */
219
  protected function default_client_args() {
220
  return array(
221
- 'signature_version' => static::SIGNATURE_VERSION,
222
- 'version' => static::API_VERSION,
223
- 'region' => $this->default_region,
224
- 'csm' => apply_filters( 'as3cf_disable_aws_csm', true ) ? false : true,
225
- 'use_arn_region' => apply_filters( 'as3cf_disable_aws_use_arn_region', true ) ? false : true,
 
 
 
226
  );
227
  }
228
 
218
  */
219
  protected function default_client_args() {
220
  return array(
221
+ 'signature_version' => static::SIGNATURE_VERSION,
222
+ 'version' => static::API_VERSION,
223
+ 'region' => $this->default_region,
224
+ 'csm' => apply_filters( 'as3cf_disable_aws_csm', true ) ? false : true,
225
+ 'use_arn_region' => apply_filters( 'as3cf_disable_aws_use_arn_region', true ) ? false : true,
226
+ 's3_us_east_1_regional_endpoint' => apply_filters( 'as3cf_aws_s3_us_east_1_regional_endpoint', 'legacy' ),
227
+ 'endpoint_discovery' => apply_filters( 'as3cf_disable_aws_endpoint_discovery', true ) ? array( 'enabled' => false ) : array( 'enabled' => true ),
228
+ 'sts_regional_endpoints' => apply_filters( 'as3cf_aws_sts_regional_endpoints', 'legacy' ),
229
  );
230
  }
231
 
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: 2020-07-21 13:43+0100\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"
8
  msgstr ""
9
  "Project-Id-Version: amazon-s3-and-cloudfront\n"
10
  "Report-Msgid-Bugs-To: nom@deliciousbrains.com\n"
11
+ "POT-Creation-Date: 2020-08-27 12:18+0100\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"
readme.txt CHANGED
@@ -4,7 +4,7 @@ Tags: uploads, amazon, s3, amazon s3, digitalocean, digitalocean spaces, google
4
  Requires at least: 4.9
5
  Tested up to: 5.5
6
  Requires PHP: 5.5
7
- Stable tag: 2.4.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.
@@ -81,6 +81,14 @@ This version requires PHP 5.3.3+ and the Amazon Web Services plugin
81
 
82
  == Changelog ==
83
 
 
 
 
 
 
 
 
 
84
  = WP Offload Media Lite 2.4.1 - 2020-07-21 =
85
  * Bug fix: Fatal Error with EWWW Image Optimizer 5.5 or earlier installed
86
  * Bug fix: AWS SDK "Warning: is_readable(): open_basedir restriction in effect" message when Use ARN Region in effect
4
  Requires at least: 4.9
5
  Tested up to: 5.5
6
  Requires PHP: 5.5
7
+ Stable tag: 2.4.2
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.
81
 
82
  == Changelog ==
83
 
84
+ = WP Offload Media Lite 2.4.2 - 2020-08-27 =
85
+ * Improvement: Updated AWS PHP SDK to v3.150.1
86
+ * Bug fix: Image thumbnail URLs in custom HTML not rewritten to delivery provider URLs
87
+ * Bug fix: Background processes do not start when PHP memory limit in gigabytes
88
+ * Bug fix: PHP Fatal error: require(): Failed opening required '.../vendor/Aws3/Aws/Sts/StsClient.php'
89
+ * Bug fix: AWS SDK "Warning: is_readable(): open_basedir restriction in effect" message from Regional Endpoint check
90
+ * Bug fix: Bottom and right button borders in settings page are clipped when focused
91
+
92
  = WP Offload Media Lite 2.4.1 - 2020-07-21 =
93
  * Bug fix: Fatal Error with EWWW Image Optimizer 5.5 or earlier installed
94
  * Bug fix: AWS SDK "Warning: is_readable(): open_basedir restriction in effect" message when Use ARN Region in effect
vendor/Aws3/Aws/Api/DateTimeResult.php CHANGED
@@ -2,6 +2,8 @@
2
 
3
  namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api;
4
 
 
 
5
  /**
6
  * DateTime overrides that make DateTime work more seamlessly as a string,
7
  * with JSON documents, and with JMESPath.
@@ -10,15 +12,71 @@ class DateTimeResult extends \DateTime implements \JsonSerializable
10
  {
11
  /**
12
  * Create a new DateTimeResult from a unix timestamp.
13
- *
 
 
14
  * @param $unixTimestamp
15
  *
16
  * @return DateTimeResult
 
17
  */
18
  public static function fromEpoch($unixTimestamp)
19
  {
20
  return new self(gmdate('c', $unixTimestamp));
21
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22
  /**
23
  * Serialize the DateTimeResult as an ISO 8601 date string.
24
  *
2
 
3
  namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api;
4
 
5
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\Exception\ParserException;
6
+ use Exception;
7
  /**
8
  * DateTime overrides that make DateTime work more seamlessly as a string,
9
  * with JSON documents, and with JMESPath.
12
  {
13
  /**
14
  * Create a new DateTimeResult from a unix timestamp.
15
+ * The Unix epoch (or Unix time or POSIX time or Unix
16
+ * timestamp) is the number of seconds that have elapsed since
17
+ * January 1, 1970 (midnight UTC/GMT).
18
  * @param $unixTimestamp
19
  *
20
  * @return DateTimeResult
21
+ * @throws Exception
22
  */
23
  public static function fromEpoch($unixTimestamp)
24
  {
25
  return new self(gmdate('c', $unixTimestamp));
26
  }
27
+ /**
28
+ * @param $iso8601Timestamp
29
+ *
30
+ * @return DateTimeResult
31
+ */
32
+ public static function fromISO8601($iso8601Timestamp)
33
+ {
34
+ if (is_numeric($iso8601Timestamp) || !is_string($iso8601Timestamp)) {
35
+ throw new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\Exception\ParserException('Invalid timestamp value passed to DateTimeResult::fromISO8601');
36
+ }
37
+ return new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\DateTimeResult($iso8601Timestamp);
38
+ }
39
+ /**
40
+ * Create a new DateTimeResult from an unknown timestamp.
41
+ *
42
+ * @param $timestamp
43
+ *
44
+ * @return DateTimeResult
45
+ * @throws ParserException|Exception
46
+ */
47
+ public static function fromTimestamp($timestamp, $expectedFormat = null)
48
+ {
49
+ if (empty($timestamp)) {
50
+ return self::fromEpoch(0);
51
+ }
52
+ if (!(is_string($timestamp) || is_numeric($timestamp))) {
53
+ throw new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\Exception\ParserException('Invalid timestamp value passed to DateTimeResult::fromTimestamp');
54
+ }
55
+ try {
56
+ if ($expectedFormat == 'iso8601') {
57
+ try {
58
+ return self::fromISO8601($timestamp);
59
+ } catch (Exception $exception) {
60
+ return self::fromEpoch($timestamp);
61
+ }
62
+ } else {
63
+ if ($expectedFormat == 'unixTimestamp') {
64
+ try {
65
+ return self::fromEpoch($timestamp);
66
+ } catch (Exception $exception) {
67
+ return self::fromISO8601($timestamp);
68
+ }
69
+ } else {
70
+ if (\DeliciousBrains\WP_Offload_Media\Aws3\Aws\is_valid_epoch($timestamp)) {
71
+ return self::fromEpoch($timestamp);
72
+ }
73
+ }
74
+ }
75
+ return self::fromISO8601($timestamp);
76
+ } catch (Exception $exception) {
77
+ throw new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\Exception\ParserException('Invalid timestamp value passed to DateTimeResult::fromTimestamp');
78
+ }
79
+ }
80
  /**
81
  * Serialize the DateTimeResult as an ISO 8601 date string.
82
  *
vendor/Aws3/Aws/Api/ErrorParser/AbstractErrorParser.php CHANGED
@@ -46,6 +46,7 @@ abstract class AbstractErrorParser
46
  if ($data['code'] == $error['name'] && $error instanceof StructureShape) {
47
  $modeledError = $error;
48
  $data['body'] = $this->extractPayload($modeledError, $response);
 
49
  foreach ($error->getMembers() as $name => $member) {
50
  switch ($member['location']) {
51
  case 'header':
46
  if ($data['code'] == $error['name'] && $error instanceof StructureShape) {
47
  $modeledError = $error;
48
  $data['body'] = $this->extractPayload($modeledError, $response);
49
+ $data['error_shape'] = $modeledError;
50
  foreach ($error->getMembers() as $name => $member) {
51
  switch ($member['location']) {
52
  case 'header':
vendor/Aws3/Aws/Api/Parser/AbstractRestParser.php CHANGED
@@ -88,10 +88,7 @@ abstract class AbstractRestParser extends \DeliciousBrains\WP_Offload_Media\Aws3
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) {
97
  // If the value cannot be parsed, then do not add it to the
88
  break;
89
  case 'timestamp':
90
  try {
91
+ $value = \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\DateTimeResult::fromTimestamp($value, !empty($shape['timestampFormat']) ? $shape['timestampFormat'] : null);
 
 
 
92
  break;
93
  } catch (\Exception $e) {
94
  // If the value cannot be parsed, then do not add it to the
vendor/Aws3/Aws/Api/Parser/JsonParser.php CHANGED
@@ -39,13 +39,7 @@ class JsonParser
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).
48
- return \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\DateTimeResult::fromEpoch($value);
49
  case 'blob':
50
  return base64_decode($value);
51
  default:
39
  }
40
  return $target;
41
  case 'timestamp':
42
+ return \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\DateTimeResult::fromTimestamp($value, !empty($shape['timestampFormat']) ? $shape['timestampFormat'] : null);
 
 
 
 
 
 
43
  case 'blob':
44
  return base64_decode($value);
45
  default:
vendor/Aws3/Aws/Api/Parser/MetadataParserTrait.php CHANGED
@@ -29,10 +29,7 @@ trait MetadataParserTrait
29
  break;
30
  case 'timestamp':
31
  try {
32
- if (!empty($shape['timestampFormat']) && $shape['timestampFormat'] === 'unixTimestamp') {
33
- $value = \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\DateTimeResult::fromEpoch($value);
34
- }
35
- $value = new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\DateTimeResult($value);
36
  break;
37
  } catch (\Exception $e) {
38
  // If the value cannot be parsed, then do not add it to the
29
  break;
30
  case 'timestamp':
31
  try {
32
+ $value = \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\DateTimeResult::fromTimestamp($value, !empty($shape['timestampFormat']) ? $shape['timestampFormat'] : null);
 
 
 
33
  break;
34
  } catch (\Exception $e) {
35
  // If the value cannot be parsed, then do not add it to the
vendor/Aws3/Aws/Api/Parser/XmlParser.php CHANGED
@@ -5,6 +5,7 @@ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser;
5
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\DateTimeResult;
6
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\ListShape;
7
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\MapShape;
 
8
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Shape;
9
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\StructureShape;
10
  /**
@@ -99,10 +100,10 @@ class XmlParser
99
  }
100
  private function parse_timestamp(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Shape $shape, $value)
101
  {
102
- if (!empty($shape['timestampFormat']) && $shape['timestampFormat'] === 'unixTimestamp') {
103
- return \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\DateTimeResult::fromEpoch((string) $value);
104
  }
105
- return new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\DateTimeResult($value);
106
  }
107
  private function parse_xml_attribute(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Shape $shape, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Shape $memberShape, $value)
108
  {
5
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\DateTimeResult;
6
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\ListShape;
7
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\MapShape;
8
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\Exception\ParserException;
9
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Shape;
10
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\StructureShape;
11
  /**
100
  }
101
  private function parse_timestamp(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Shape $shape, $value)
102
  {
103
+ if (is_string($value) || is_int($value) || is_object($value) && method_exists($value, '__toString')) {
104
+ return \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\DateTimeResult::fromTimestamp((string) $value, !empty($shape['timestampFormat']) ? $shape['timestampFormat'] : null);
105
  }
106
+ throw new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\Exception\ParserException('Invalid timestamp value passed to XmlParser::parse_timestamp');
107
  }
108
  private function parse_xml_attribute(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Shape $shape, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Shape $memberShape, $value)
109
  {
vendor/Aws3/Aws/AwsClient.php CHANGED
@@ -101,9 +101,9 @@ class AwsClient implements \DeliciousBrains\WP_Offload_Media\Aws3\Aws\AwsClientI
101
  * Provide an instance of Aws\EndpointDiscovery\ConfigurationInterface,
102
  * an instance Aws\CacheInterface, a callable that provides a promise for
103
  * a Configuration object, or an associative array with the following
104
- * keys: enabled: (bool) Set to true to enable endpoint discovery,
105
- * defaults to false; cache_limit: (int) The maximum number of keys in the
106
- * endpoints cache, defaults to 1000.
107
  * - endpoint_provider: (callable) An optional PHP callable that
108
  * accepts a hash of options including a "service" and "region" key and
109
  * returns NULL or a hash of endpoint data, of which the "endpoint" key
@@ -136,8 +136,16 @@ class AwsClient implements \DeliciousBrains\WP_Offload_Media\Aws3\Aws\AwsClientI
136
  * - region: (string, required) Region to connect to. See
137
  * http://docs.aws.amazon.com/general/latest/gr/rande.html for a list of
138
  * available regions.
139
- * - retries: (int, default=int(3)) Configures the maximum number of
140
- * allowed retries for a client (pass 0 to disable retries).
 
 
 
 
 
 
 
 
141
  * - scheme: (string, default=string(5) "https") URI scheme to use when
142
  * connecting connect. The SDK will utilize "https" endpoints (i.e.,
143
  * utilize SSL/TLS connections) by default. You can attempt to connect to
@@ -152,6 +160,10 @@ class AwsClient implements \DeliciousBrains\WP_Offload_Media\Aws3\Aws\AwsClientI
152
  * signature version to use with a service (e.g., v4). Note that
153
  * per/operation signature version MAY override this requested signature
154
  * version.
 
 
 
 
155
  * - validate: (bool, default=bool(true)) Set to false to disable
156
  * client-side parameter validation.
157
  * - version: (string, required) The version of the webservice to
@@ -241,7 +253,7 @@ class AwsClient implements \DeliciousBrains\WP_Offload_Media\Aws3\Aws\AwsClientI
241
  *
242
  * @return callable
243
  */
244
- protected final function getSignatureProvider()
245
  {
246
  return $this->signatureProvider;
247
  }
101
  * Provide an instance of Aws\EndpointDiscovery\ConfigurationInterface,
102
  * an instance Aws\CacheInterface, a callable that provides a promise for
103
  * a Configuration object, or an associative array with the following
104
+ * keys: enabled: (bool) Set to true to enable endpoint discovery, false
105
+ * to explicitly disable it, defaults to false; cache_limit: (int) The
106
+ * maximum number of keys in the endpoints cache, defaults to 1000.
107
  * - endpoint_provider: (callable) An optional PHP callable that
108
  * accepts a hash of options including a "service" and "region" key and
109
  * returns NULL or a hash of endpoint data, of which the "endpoint" key
136
  * - region: (string, required) Region to connect to. See
137
  * http://docs.aws.amazon.com/general/latest/gr/rande.html for a list of
138
  * available regions.
139
+ * - retries: (int, Aws\Retry\ConfigurationInterface, Aws\CacheInterface,
140
+ * array, callable) Configures the retry mode and maximum number of
141
+ * allowed retries for a client (pass 0 to disable retries). Provide an
142
+ * integer for 'legacy' mode with the specified number of retries.
143
+ * Otherwise provide an instance of Aws\Retry\ConfigurationInterface, an
144
+ * instance of Aws\CacheInterface, a callable function, or an array with
145
+ * the following keys: mode: (string) Set to 'legacy', 'standard' (uses
146
+ * retry quota management), or 'adapative' (an experimental mode that adds
147
+ * client-side rate limiting to standard mode); max_attempts (int) The
148
+ * maximum number of attempts for a given request.
149
  * - scheme: (string, default=string(5) "https") URI scheme to use when
150
  * connecting connect. The SDK will utilize "https" endpoints (i.e.,
151
  * utilize SSL/TLS connections) by default. You can attempt to connect to
160
  * signature version to use with a service (e.g., v4). Note that
161
  * per/operation signature version MAY override this requested signature
162
  * version.
163
+ * - use_aws_shared_config_files: (bool, default=bool(true)) Set to false to
164
+ * disable checking for shared config file in '~/.aws/config' and
165
+ * '~/.aws/credentials'. This will override the AWS_CONFIG_FILE
166
+ * environment variable.
167
  * - validate: (bool, default=bool(true)) Set to false to disable
168
  * client-side parameter validation.
169
  * - version: (string, required) The version of the webservice to
253
  *
254
  * @return callable
255
  */
256
+ public final function getSignatureProvider()
257
  {
258
  return $this->signatureProvider;
259
  }
vendor/Aws3/Aws/ClientResolver.php CHANGED
@@ -14,6 +14,9 @@ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Endpoint\PartitionEndpointProvider
14
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\EndpointDiscovery\ConfigurationInterface;
15
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\EndpointDiscovery\ConfigurationProvider;
16
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\EndpointDiscovery\EndpointDiscoveryMiddleware;
 
 
 
17
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Signature\SignatureProvider;
18
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Endpoint\EndpointProvider;
19
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Credentials\CredentialProvider;
@@ -28,7 +31,7 @@ class ClientResolver
28
  private $argDefinitions;
29
  /** @var array Map of types to a corresponding function */
30
  private static $typeMap = ['resource' => 'is_resource', 'callable' => 'is_callable', 'int' => 'is_int', 'bool' => 'is_bool', 'string' => 'is_string', 'object' => 'is_object', 'array' => 'is_array'];
31
- 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' => [__CLASS__, '_default_credential_provider']], 'endpoint_discovery' => ['type' => 'value', 'valid' => [\DeliciousBrains\WP_Offload_Media\Aws3\Aws\EndpointDiscovery\ConfigurationInterface::class, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\CacheInterface::class, 'array', 'callable'], 'doc' => 'Specifies settings for endpoint discovery. Provide an instance of Aws\\EndpointDiscovery\\ConfigurationInterface, an instance Aws\\CacheInterface, a callable that provides a promise for a Configuration object, or an associative array with the following keys: enabled: (bool) Set to true to enable endpoint discovery. Defaults to false; cache_limit: (int) The maximum number of keys in the endpoints cache. Defaults to 1000.', 'fn' => [__CLASS__, '_apply_endpoint_discovery'], 'default' => [__CLASS__, '_default_endpoint_discovery_provider']], 'stats' => ['type' => 'value', 'valid' => ['bool', 'array'], 'default' => false, 'doc' => 'Set to true to gather transfer statistics on requests sent. Alternatively, you can provide an associative array with the following keys: retries: (bool) Set to false to disable reporting on retries attempted; http: (bool) Set to true to enable collecting statistics from lower level HTTP adapters (e.g., values returned in GuzzleHttp\\TransferStats). HTTP handlers must support an http_stats_receiver option for this to have an effect; timer: (bool) Set to true to enable a command timer that reports the total wall clock time spent on an operation in seconds.', 'fn' => [__CLASS__, '_apply_stats']], 'retries' => ['type' => 'value', 'valid' => ['int'], 'doc' => 'Configures the maximum number of allowed retries for a client (pass 0 to disable retries). ', 'fn' => [__CLASS__, '_apply_retries'], 'default' => 3], 'validate' => ['type' => 'value', 'valid' => ['bool', 'array'], 'default' => true, 'doc' => 'Set to false to disable client-side parameter validation. Set to true to utilize default validation constraints. Set to an associative array of validation options to enable specific validation constraints.', 'fn' => [__CLASS__, '_apply_validate']], 'debug' => ['type' => 'value', 'valid' => ['bool', 'array'], 'doc' => 'Set to true to display debug information when sending requests. Alternatively, you can provide an associative array with the following keys: logfn: (callable) Function that is invoked with log messages; stream_size: (int) When the size of a stream is greater than this number, the stream data will not be logged (set to "0" to not log any stream data); scrub_auth: (bool) Set to false to disable the scrubbing of auth data from the logged messages; http: (bool) Set to false to disable the "debug" feature of lower level HTTP adapters (e.g., verbose curl output).', 'fn' => [__CLASS__, '_apply_debug']], 'csm' => ['type' => 'value', 'valid' => [\DeliciousBrains\WP_Offload_Media\Aws3\Aws\ClientSideMonitoring\ConfigurationInterface::class, 'callable', 'array', 'bool'], 'doc' => 'CSM options for the client. Provides a callable wrapping a promise, a boolean "false", an instance of ConfigurationInterface, or an associative array of "enabled", "host", "port", and "client_id".', 'fn' => [__CLASS__, '_apply_csm'], 'default' => [\DeliciousBrains\WP_Offload_Media\Aws3\Aws\ClientSideMonitoring\ConfigurationProvider::class, 'defaultProvider']], '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']]];
32
  /**
33
  * Gets an array of default client arguments, each argument containing a
34
  * hash of the following:
@@ -187,9 +190,16 @@ class ClientResolver
187
  }
188
  public static function _apply_retries($value, array &$args, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\HandlerList $list)
189
  {
 
190
  if ($value) {
191
- $decider = \DeliciousBrains\WP_Offload_Media\Aws3\Aws\RetryMiddleware::createDefaultDecider($value);
192
- $list->appendSign(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Middleware::retry($decider, null, $args['stats']['retries']), 'retry');
 
 
 
 
 
 
193
  }
194
  }
195
  public static function _apply_credentials($value, array &$args)
@@ -237,6 +247,11 @@ class ClientResolver
237
  {
238
  if (!isset($args['endpoint'])) {
239
  $endpointPrefix = isset($args['api']['metadata']['endpointPrefix']) ? $args['api']['metadata']['endpointPrefix'] : $args['service'];
 
 
 
 
 
240
  // Invoke the endpoint provider and throw if it does not resolve.
241
  $result = \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Endpoint\EndpointProvider::resolve($value, ['service' => $endpointPrefix, 'region' => $args['region'], 'scheme' => $args['scheme'], 'options' => self::getEndpointProviderOptions($args)]);
242
  $args['endpoint'] = $result['endpoint'];
@@ -437,4 +452,14 @@ EOT;
437
  }
438
  return $options;
439
  }
 
 
 
 
 
 
 
 
 
 
440
  }
14
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\EndpointDiscovery\ConfigurationInterface;
15
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\EndpointDiscovery\ConfigurationProvider;
16
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\EndpointDiscovery\EndpointDiscoveryMiddleware;
17
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\InvalidRegionException;
18
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Retry\ConfigurationInterface as RetryConfigInterface;
19
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Retry\ConfigurationProvider as RetryConfigProvider;
20
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Signature\SignatureProvider;
21
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Endpoint\EndpointProvider;
22
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Credentials\CredentialProvider;
31
  private $argDefinitions;
32
  /** @var array Map of types to a corresponding function */
33
  private static $typeMap = ['resource' => 'is_resource', 'callable' => 'is_callable', 'int' => 'is_int', 'bool' => 'is_bool', 'string' => 'is_string', 'object' => 'is_object', 'array' => 'is_array'];
34
+ 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' => [__CLASS__, '_default_credential_provider']], 'endpoint_discovery' => ['type' => 'value', 'valid' => [\DeliciousBrains\WP_Offload_Media\Aws3\Aws\EndpointDiscovery\ConfigurationInterface::class, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\CacheInterface::class, 'array', 'callable'], 'doc' => 'Specifies settings for endpoint discovery. Provide an instance of Aws\\EndpointDiscovery\\ConfigurationInterface, an instance Aws\\CacheInterface, a callable that provides a promise for a Configuration object, or an associative array with the following keys: enabled: (bool) Set to true to enable endpoint discovery, false to explicitly disable it. Defaults to false; cache_limit: (int) The maximum number of keys in the endpoints cache. Defaults to 1000.', 'fn' => [__CLASS__, '_apply_endpoint_discovery'], 'default' => [__CLASS__, '_default_endpoint_discovery_provider']], 'stats' => ['type' => 'value', 'valid' => ['bool', 'array'], 'default' => false, 'doc' => 'Set to true to gather transfer statistics on requests sent. Alternatively, you can provide an associative array with the following keys: retries: (bool) Set to false to disable reporting on retries attempted; http: (bool) Set to true to enable collecting statistics from lower level HTTP adapters (e.g., values returned in GuzzleHttp\\TransferStats). HTTP handlers must support an http_stats_receiver option for this to have an effect; timer: (bool) Set to true to enable a command timer that reports the total wall clock time spent on an operation in seconds.', 'fn' => [__CLASS__, '_apply_stats']], 'retries' => ['type' => 'value', 'valid' => ['int', \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Retry\ConfigurationInterface::class, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\CacheInterface::class, 'callable', 'array'], 'doc' => "Configures the retry mode and maximum number of allowed retries for a client (pass 0 to disable retries). Provide an integer for 'legacy' mode with the specified number of retries. Otherwise provide an instance of Aws\\Retry\\ConfigurationInterface, an instance of Aws\\CacheInterface, a callable function, or an array with the following keys: mode: (string) Set to 'legacy', 'standard' (uses retry quota management), or 'adapative' (an experimental mode that adds client-side rate limiting to standard mode); max_attempts: (int) The maximum number of attempts for a given request. ", 'fn' => [__CLASS__, '_apply_retries'], 'default' => [\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Retry\ConfigurationProvider::class, 'defaultProvider']], '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']], 'csm' => ['type' => 'value', 'valid' => [\DeliciousBrains\WP_Offload_Media\Aws3\Aws\ClientSideMonitoring\ConfigurationInterface::class, 'callable', 'array', 'bool'], 'doc' => 'CSM options for the client. Provides a callable wrapping a promise, a boolean "false", an instance of ConfigurationInterface, or an associative array of "enabled", "host", "port", and "client_id".', 'fn' => [__CLASS__, '_apply_csm'], 'default' => [\DeliciousBrains\WP_Offload_Media\Aws3\Aws\ClientSideMonitoring\ConfigurationProvider::class, 'defaultProvider']], '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']], 'use_aws_shared_config_files' => ['type' => 'value', 'valid' => ['bool'], 'doc' => 'Set to false to disable checking for shared aws config files usually located in \'~/.aws/config\' and \'~/.aws/credentials\'.', 'default' => true]];
35
  /**
36
  * Gets an array of default client arguments, each argument containing a
37
  * hash of the following:
190
  }
191
  public static function _apply_retries($value, array &$args, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\HandlerList $list)
192
  {
193
+ // A value of 0 for the config option disables retries
194
  if ($value) {
195
+ $config = \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Retry\ConfigurationProvider::unwrap($value);
196
+ if ($config->getMode() === 'legacy') {
197
+ // # of retries is 1 less than # of attempts
198
+ $decider = \DeliciousBrains\WP_Offload_Media\Aws3\Aws\RetryMiddleware::createDefaultDecider($config->getMaxAttempts() - 1);
199
+ $list->appendSign(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Middleware::retry($decider, null, $args['stats']['retries']), 'retry');
200
+ } else {
201
+ $list->appendSign(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\RetryMiddlewareV2::wrap($config, ['collect_stats' => $args['stats']['retries']]), 'retry');
202
+ }
203
  }
204
  }
205
  public static function _apply_credentials($value, array &$args)
247
  {
248
  if (!isset($args['endpoint'])) {
249
  $endpointPrefix = isset($args['api']['metadata']['endpointPrefix']) ? $args['api']['metadata']['endpointPrefix'] : $args['service'];
250
+ // Check region is a valid host label when it is being used to
251
+ // generate an endpoint
252
+ if (!self::isValidRegion($args['region'])) {
253
+ throw new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\InvalidRegionException('Region must be a valid RFC' . ' host label.');
254
+ }
255
  // Invoke the endpoint provider and throw if it does not resolve.
256
  $result = \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Endpoint\EndpointProvider::resolve($value, ['service' => $endpointPrefix, 'region' => $args['region'], 'scheme' => $args['scheme'], 'options' => self::getEndpointProviderOptions($args)]);
257
  $args['endpoint'] = $result['endpoint'];
452
  }
453
  return $options;
454
  }
455
+ /**
456
+ * Validates a region to be used for endpoint construction
457
+ *
458
+ * @param $region
459
+ * @return bool
460
+ */
461
+ private static function isValidRegion($region)
462
+ {
463
+ return is_valid_hostlabel($region);
464
+ }
465
  }
vendor/Aws3/Aws/ClientSideMonitoring/ConfigurationProvider.php CHANGED
@@ -73,7 +73,11 @@ class ConfigurationProvider extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\A
73
  */
74
  public static function defaultProvider(array $config = [])
75
  {
76
- $configProviders = [self::env(), self::ini(), self::fallback()];
 
 
 
 
77
  $memo = self::memoize(call_user_func_array('self::chain', $configProviders));
78
  if (isset($config['csm']) && $config['csm'] instanceof CacheInterface) {
79
  return self::cache($memo, $config['csm'], self::$cacheKey);
73
  */
74
  public static function defaultProvider(array $config = [])
75
  {
76
+ $configProviders = [self::env()];
77
+ if (!isset($config['use_aws_shared_config_files']) || $config['use_aws_shared_config_files'] != false) {
78
+ $configProviders[] = self::ini();
79
+ }
80
+ $configProviders[] = self::fallback();
81
  $memo = self::memoize(call_user_func_array('self::chain', $configProviders));
82
  if (isset($config['csm']) && $config['csm'] instanceof CacheInterface) {
83
  return self::cache($memo, $config['csm'], self::$cacheKey);
vendor/Aws3/Aws/CloudFront/CloudFrontClient.php CHANGED
@@ -50,54 +50,82 @@ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\AwsClient;
50
  * @method \GuzzleHttp\Promise\Promise updateDistributionAsync(array $args = [])
51
  * @method \Aws\Result updateStreamingDistribution(array $args = [])
52
  * @method \GuzzleHttp\Promise\Promise updateStreamingDistributionAsync(array $args = [])
53
- * @method \Aws\Result createDistributionWithTags(array $args = []) (supported in versions 2016-08-01, 2016-08-20, 2016-09-07, 2016-09-29, 2016-11-25, 2017-03-25, 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26)
54
- * @method \GuzzleHttp\Promise\Promise createDistributionWithTagsAsync(array $args = []) (supported in versions 2016-08-01, 2016-08-20, 2016-09-07, 2016-09-29, 2016-11-25, 2017-03-25, 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26)
55
- * @method \Aws\Result createStreamingDistributionWithTags(array $args = []) (supported in versions 2016-08-01, 2016-08-20, 2016-09-07, 2016-09-29, 2016-11-25, 2017-03-25, 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26)
56
- * @method \GuzzleHttp\Promise\Promise createStreamingDistributionWithTagsAsync(array $args = []) (supported in versions 2016-08-01, 2016-08-20, 2016-09-07, 2016-09-29, 2016-11-25, 2017-03-25, 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26)
57
- * @method \Aws\Result listTagsForResource(array $args = []) (supported in versions 2016-08-01, 2016-08-20, 2016-09-07, 2016-09-29, 2016-11-25, 2017-03-25, 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26)
58
- * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = []) (supported in versions 2016-08-01, 2016-08-20, 2016-09-07, 2016-09-29, 2016-11-25, 2017-03-25, 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26)
59
- * @method \Aws\Result tagResource(array $args = []) (supported in versions 2016-08-01, 2016-08-20, 2016-09-07, 2016-09-29, 2016-11-25, 2017-03-25, 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26)
60
- * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = []) (supported in versions 2016-08-01, 2016-08-20, 2016-09-07, 2016-09-29, 2016-11-25, 2017-03-25, 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26)
61
- * @method \Aws\Result untagResource(array $args = []) (supported in versions 2016-08-01, 2016-08-20, 2016-09-07, 2016-09-29, 2016-11-25, 2017-03-25, 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26)
62
- * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = []) (supported in versions 2016-08-01, 2016-08-20, 2016-09-07, 2016-09-29, 2016-11-25, 2017-03-25, 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26)
63
  * @method \Aws\Result deleteServiceLinkedRole(array $args = []) (supported in versions 2017-03-25)
64
  * @method \GuzzleHttp\Promise\Promise deleteServiceLinkedRoleAsync(array $args = []) (supported in versions 2017-03-25)
65
- * @method \Aws\Result createFieldLevelEncryptionConfig(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26)
66
- * @method \GuzzleHttp\Promise\Promise createFieldLevelEncryptionConfigAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26)
67
- * @method \Aws\Result createFieldLevelEncryptionProfile(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26)
68
- * @method \GuzzleHttp\Promise\Promise createFieldLevelEncryptionProfileAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26)
69
- * @method \Aws\Result createPublicKey(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26)
70
- * @method \GuzzleHttp\Promise\Promise createPublicKeyAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26)
71
- * @method \Aws\Result deleteFieldLevelEncryptionConfig(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26)
72
- * @method \GuzzleHttp\Promise\Promise deleteFieldLevelEncryptionConfigAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26)
73
- * @method \Aws\Result deleteFieldLevelEncryptionProfile(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26)
74
- * @method \GuzzleHttp\Promise\Promise deleteFieldLevelEncryptionProfileAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26)
75
- * @method \Aws\Result deletePublicKey(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26)
76
- * @method \GuzzleHttp\Promise\Promise deletePublicKeyAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26)
77
- * @method \Aws\Result getFieldLevelEncryption(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26)
78
- * @method \GuzzleHttp\Promise\Promise getFieldLevelEncryptionAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26)
79
- * @method \Aws\Result getFieldLevelEncryptionConfig(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26)
80
- * @method \GuzzleHttp\Promise\Promise getFieldLevelEncryptionConfigAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26)
81
- * @method \Aws\Result getFieldLevelEncryptionProfile(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26)
82
- * @method \GuzzleHttp\Promise\Promise getFieldLevelEncryptionProfileAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26)
83
- * @method \Aws\Result getFieldLevelEncryptionProfileConfig(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26)
84
- * @method \GuzzleHttp\Promise\Promise getFieldLevelEncryptionProfileConfigAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26)
85
- * @method \Aws\Result getPublicKey(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26)
86
- * @method \GuzzleHttp\Promise\Promise getPublicKeyAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26)
87
- * @method \Aws\Result getPublicKeyConfig(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26)
88
- * @method \GuzzleHttp\Promise\Promise getPublicKeyConfigAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26)
89
- * @method \Aws\Result listFieldLevelEncryptionConfigs(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26)
90
- * @method \GuzzleHttp\Promise\Promise listFieldLevelEncryptionConfigsAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26)
91
- * @method \Aws\Result listFieldLevelEncryptionProfiles(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26)
92
- * @method \GuzzleHttp\Promise\Promise listFieldLevelEncryptionProfilesAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26)
93
- * @method \Aws\Result listPublicKeys(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26)
94
- * @method \GuzzleHttp\Promise\Promise listPublicKeysAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26)
95
- * @method \Aws\Result updateFieldLevelEncryptionConfig(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26)
96
- * @method \GuzzleHttp\Promise\Promise updateFieldLevelEncryptionConfigAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26)
97
- * @method \Aws\Result updateFieldLevelEncryptionProfile(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26)
98
- * @method \GuzzleHttp\Promise\Promise updateFieldLevelEncryptionProfileAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26)
99
- * @method \Aws\Result updatePublicKey(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26)
100
- * @method \GuzzleHttp\Promise\Promise updatePublicKeyAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
101
  */
102
  class CloudFrontClient extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\AwsClient
103
  {
50
  * @method \GuzzleHttp\Promise\Promise updateDistributionAsync(array $args = [])
51
  * @method \Aws\Result updateStreamingDistribution(array $args = [])
52
  * @method \GuzzleHttp\Promise\Promise updateStreamingDistributionAsync(array $args = [])
53
+ * @method \Aws\Result createDistributionWithTags(array $args = []) (supported in versions 2016-08-01, 2016-08-20, 2016-09-07, 2016-09-29, 2016-11-25, 2017-03-25, 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26, 2020-05-31)
54
+ * @method \GuzzleHttp\Promise\Promise createDistributionWithTagsAsync(array $args = []) (supported in versions 2016-08-01, 2016-08-20, 2016-09-07, 2016-09-29, 2016-11-25, 2017-03-25, 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26, 2020-05-31)
55
+ * @method \Aws\Result createStreamingDistributionWithTags(array $args = []) (supported in versions 2016-08-01, 2016-08-20, 2016-09-07, 2016-09-29, 2016-11-25, 2017-03-25, 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26, 2020-05-31)
56
+ * @method \GuzzleHttp\Promise\Promise createStreamingDistributionWithTagsAsync(array $args = []) (supported in versions 2016-08-01, 2016-08-20, 2016-09-07, 2016-09-29, 2016-11-25, 2017-03-25, 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26, 2020-05-31)
57
+ * @method \Aws\Result listTagsForResource(array $args = []) (supported in versions 2016-08-01, 2016-08-20, 2016-09-07, 2016-09-29, 2016-11-25, 2017-03-25, 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26, 2020-05-31)
58
+ * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = []) (supported in versions 2016-08-01, 2016-08-20, 2016-09-07, 2016-09-29, 2016-11-25, 2017-03-25, 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26, 2020-05-31)
59
+ * @method \Aws\Result tagResource(array $args = []) (supported in versions 2016-08-01, 2016-08-20, 2016-09-07, 2016-09-29, 2016-11-25, 2017-03-25, 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26, 2020-05-31)
60
+ * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = []) (supported in versions 2016-08-01, 2016-08-20, 2016-09-07, 2016-09-29, 2016-11-25, 2017-03-25, 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26, 2020-05-31)
61
+ * @method \Aws\Result untagResource(array $args = []) (supported in versions 2016-08-01, 2016-08-20, 2016-09-07, 2016-09-29, 2016-11-25, 2017-03-25, 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26, 2020-05-31)
62
+ * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = []) (supported in versions 2016-08-01, 2016-08-20, 2016-09-07, 2016-09-29, 2016-11-25, 2017-03-25, 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26, 2020-05-31)
63
  * @method \Aws\Result deleteServiceLinkedRole(array $args = []) (supported in versions 2017-03-25)
64
  * @method \GuzzleHttp\Promise\Promise deleteServiceLinkedRoleAsync(array $args = []) (supported in versions 2017-03-25)
65
+ * @method \Aws\Result createFieldLevelEncryptionConfig(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26, 2020-05-31)
66
+ * @method \GuzzleHttp\Promise\Promise createFieldLevelEncryptionConfigAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26, 2020-05-31)
67
+ * @method \Aws\Result createFieldLevelEncryptionProfile(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26, 2020-05-31)
68
+ * @method \GuzzleHttp\Promise\Promise createFieldLevelEncryptionProfileAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26, 2020-05-31)
69
+ * @method \Aws\Result createPublicKey(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26, 2020-05-31)
70
+ * @method \GuzzleHttp\Promise\Promise createPublicKeyAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26, 2020-05-31)
71
+ * @method \Aws\Result deleteFieldLevelEncryptionConfig(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26, 2020-05-31)
72
+ * @method \GuzzleHttp\Promise\Promise deleteFieldLevelEncryptionConfigAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26, 2020-05-31)
73
+ * @method \Aws\Result deleteFieldLevelEncryptionProfile(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26, 2020-05-31)
74
+ * @method \GuzzleHttp\Promise\Promise deleteFieldLevelEncryptionProfileAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26, 2020-05-31)
75
+ * @method \Aws\Result deletePublicKey(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26, 2020-05-31)
76
+ * @method \GuzzleHttp\Promise\Promise deletePublicKeyAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26, 2020-05-31)
77
+ * @method \Aws\Result getFieldLevelEncryption(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26, 2020-05-31)
78
+ * @method \GuzzleHttp\Promise\Promise getFieldLevelEncryptionAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26, 2020-05-31)
79
+ * @method \Aws\Result getFieldLevelEncryptionConfig(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26, 2020-05-31)
80
+ * @method \GuzzleHttp\Promise\Promise getFieldLevelEncryptionConfigAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26, 2020-05-31)
81
+ * @method \Aws\Result getFieldLevelEncryptionProfile(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26, 2020-05-31)
82
+ * @method \GuzzleHttp\Promise\Promise getFieldLevelEncryptionProfileAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26, 2020-05-31)
83
+ * @method \Aws\Result getFieldLevelEncryptionProfileConfig(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26, 2020-05-31)
84
+ * @method \GuzzleHttp\Promise\Promise getFieldLevelEncryptionProfileConfigAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26, 2020-05-31)
85
+ * @method \Aws\Result getPublicKey(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26, 2020-05-31)
86
+ * @method \GuzzleHttp\Promise\Promise getPublicKeyAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26, 2020-05-31)
87
+ * @method \Aws\Result getPublicKeyConfig(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26, 2020-05-31)
88
+ * @method \GuzzleHttp\Promise\Promise getPublicKeyConfigAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26, 2020-05-31)
89
+ * @method \Aws\Result listFieldLevelEncryptionConfigs(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26, 2020-05-31)
90
+ * @method \GuzzleHttp\Promise\Promise listFieldLevelEncryptionConfigsAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26, 2020-05-31)
91
+ * @method \Aws\Result listFieldLevelEncryptionProfiles(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26, 2020-05-31)
92
+ * @method \GuzzleHttp\Promise\Promise listFieldLevelEncryptionProfilesAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26, 2020-05-31)
93
+ * @method \Aws\Result listPublicKeys(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26, 2020-05-31)
94
+ * @method \GuzzleHttp\Promise\Promise listPublicKeysAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26, 2020-05-31)
95
+ * @method \Aws\Result updateFieldLevelEncryptionConfig(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26, 2020-05-31)
96
+ * @method \GuzzleHttp\Promise\Promise updateFieldLevelEncryptionConfigAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26, 2020-05-31)
97
+ * @method \Aws\Result updateFieldLevelEncryptionProfile(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26, 2020-05-31)
98
+ * @method \GuzzleHttp\Promise\Promise updateFieldLevelEncryptionProfileAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26, 2020-05-31)
99
+ * @method \Aws\Result updatePublicKey(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26, 2020-05-31)
100
+ * @method \GuzzleHttp\Promise\Promise updatePublicKeyAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26, 2020-05-31)
101
+ * @method \Aws\Result createCachePolicy(array $args = []) (supported in versions 2020-05-31)
102
+ * @method \GuzzleHttp\Promise\Promise createCachePolicyAsync(array $args = []) (supported in versions 2020-05-31)
103
+ * @method \Aws\Result createOriginRequestPolicy(array $args = []) (supported in versions 2020-05-31)
104
+ * @method \GuzzleHttp\Promise\Promise createOriginRequestPolicyAsync(array $args = []) (supported in versions 2020-05-31)
105
+ * @method \Aws\Result deleteCachePolicy(array $args = []) (supported in versions 2020-05-31)
106
+ * @method \GuzzleHttp\Promise\Promise deleteCachePolicyAsync(array $args = []) (supported in versions 2020-05-31)
107
+ * @method \Aws\Result deleteOriginRequestPolicy(array $args = []) (supported in versions 2020-05-31)
108
+ * @method \GuzzleHttp\Promise\Promise deleteOriginRequestPolicyAsync(array $args = []) (supported in versions 2020-05-31)
109
+ * @method \Aws\Result getCachePolicy(array $args = []) (supported in versions 2020-05-31)
110
+ * @method \GuzzleHttp\Promise\Promise getCachePolicyAsync(array $args = []) (supported in versions 2020-05-31)
111
+ * @method \Aws\Result getCachePolicyConfig(array $args = []) (supported in versions 2020-05-31)
112
+ * @method \GuzzleHttp\Promise\Promise getCachePolicyConfigAsync(array $args = []) (supported in versions 2020-05-31)
113
+ * @method \Aws\Result getOriginRequestPolicy(array $args = []) (supported in versions 2020-05-31)
114
+ * @method \GuzzleHttp\Promise\Promise getOriginRequestPolicyAsync(array $args = []) (supported in versions 2020-05-31)
115
+ * @method \Aws\Result getOriginRequestPolicyConfig(array $args = []) (supported in versions 2020-05-31)
116
+ * @method \GuzzleHttp\Promise\Promise getOriginRequestPolicyConfigAsync(array $args = []) (supported in versions 2020-05-31)
117
+ * @method \Aws\Result listCachePolicies(array $args = []) (supported in versions 2020-05-31)
118
+ * @method \GuzzleHttp\Promise\Promise listCachePoliciesAsync(array $args = []) (supported in versions 2020-05-31)
119
+ * @method \Aws\Result listDistributionsByCachePolicyId(array $args = []) (supported in versions 2020-05-31)
120
+ * @method \GuzzleHttp\Promise\Promise listDistributionsByCachePolicyIdAsync(array $args = []) (supported in versions 2020-05-31)
121
+ * @method \Aws\Result listDistributionsByOriginRequestPolicyId(array $args = []) (supported in versions 2020-05-31)
122
+ * @method \GuzzleHttp\Promise\Promise listDistributionsByOriginRequestPolicyIdAsync(array $args = []) (supported in versions 2020-05-31)
123
+ * @method \Aws\Result listOriginRequestPolicies(array $args = []) (supported in versions 2020-05-31)
124
+ * @method \GuzzleHttp\Promise\Promise listOriginRequestPoliciesAsync(array $args = []) (supported in versions 2020-05-31)
125
+ * @method \Aws\Result updateCachePolicy(array $args = []) (supported in versions 2020-05-31)
126
+ * @method \GuzzleHttp\Promise\Promise updateCachePolicyAsync(array $args = []) (supported in versions 2020-05-31)
127
+ * @method \Aws\Result updateOriginRequestPolicy(array $args = []) (supported in versions 2020-05-31)
128
+ * @method \GuzzleHttp\Promise\Promise updateOriginRequestPolicyAsync(array $args = []) (supported in versions 2020-05-31)
129
  */
130
  class CloudFrontClient extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\AwsClient
131
  {
vendor/Aws3/Aws/Credentials/CredentialProvider.php CHANGED
@@ -72,7 +72,11 @@ class CredentialProvider
72
  public static function defaultProvider(array $config = [])
73
  {
74
  $cacheable = ['web_identity', 'ecs', 'process_credentials', 'process_config', 'instance'];
75
- $defaultChain = ['env' => self::env(), 'web_identity' => self::assumeRoleWithWebIdentityCredentialProvider($config), 'ini' => self::ini(), 'ini_config' => self::ini('profile default', self::getHomeDir() . '/.aws/config')];
 
 
 
 
76
  if (!empty(getenv(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Credentials\EcsCredentialProvider::ENV_URI))) {
77
  $defaultChain['ecs'] = self::ecsCredentials($config);
78
  }
72
  public static function defaultProvider(array $config = [])
73
  {
74
  $cacheable = ['web_identity', 'ecs', 'process_credentials', 'process_config', 'instance'];
75
+ $defaultChain = ['env' => self::env(), 'web_identity' => self::assumeRoleWithWebIdentityCredentialProvider($config)];
76
+ if (!isset($config['use_aws_shared_config_files']) || $config['use_aws_shared_config_files'] !== false) {
77
+ $defaultChain['ini'] = self::ini();
78
+ $defaultChain['ini_config'] = self::ini('profile default', self::getHomeDir() . '/.aws/config');
79
+ }
80
  if (!empty(getenv(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Credentials\EcsCredentialProvider::ENV_URI))) {
81
  $defaultChain['ecs'] = self::ecsCredentials($config);
82
  }
vendor/Aws3/Aws/Crypto/AbstractCryptoClient.php CHANGED
@@ -6,11 +6,16 @@ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Cipher\CipherMethod;
6
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Cipher\Cbc;
7
  use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Psr7\Stream;
8
  /**
 
 
 
 
9
  * @internal
10
  */
11
  abstract class AbstractCryptoClient
12
  {
13
  public static $supportedCiphers = ['cbc', 'gcm'];
 
14
  /**
15
  * Returns if the passed cipher name is supported for encryption by the SDK.
16
  *
@@ -83,8 +88,8 @@ abstract class AbstractCryptoClient
83
  *
84
  * @param string $cipherText Plain-text data to be decrypted using the
85
  * materials, algorithm, and data provided.
86
- * @param MaterialsProvider $provider A provider to supply and encrypt
87
- * materials used in encryption.
88
  * @param MetadataEnvelope $envelope A storage envelope for encryption
89
  * metadata to be read from.
90
  * @param array $cipherOptions Additional verification options.
@@ -93,5 +98,5 @@ abstract class AbstractCryptoClient
93
  *
94
  * @internal
95
  */
96
- public abstract function decrypt($cipherText, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MaterialsProvider $provider, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope $envelope, array $cipherOptions = []);
97
  }
6
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Cipher\Cbc;
7
  use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Psr7\Stream;
8
  /**
9
+ * Legacy abstract encryption client. New workflows should use
10
+ * AbstractCryptoClientV2.
11
+ *
12
+ * @deprecated
13
  * @internal
14
  */
15
  abstract class AbstractCryptoClient
16
  {
17
  public static $supportedCiphers = ['cbc', 'gcm'];
18
+ public static $supportedKeyWraps = [\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\KmsMaterialsProvider::WRAP_ALGORITHM_NAME];
19
  /**
20
  * Returns if the passed cipher name is supported for encryption by the SDK.
21
  *
88
  *
89
  * @param string $cipherText Plain-text data to be decrypted using the
90
  * materials, algorithm, and data provided.
91
+ * @param MaterialsProviderInterface $provider A provider to supply and encrypt
92
+ * materials used in encryption.
93
  * @param MetadataEnvelope $envelope A storage envelope for encryption
94
  * metadata to be read from.
95
  * @param array $cipherOptions Additional verification options.
98
  *
99
  * @internal
100
  */
101
+ public abstract function decrypt($cipherText, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MaterialsProviderInterface $provider, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope $envelope, array $cipherOptions = []);
102
  }
vendor/Aws3/Aws/Crypto/AbstractCryptoClientV2.php ADDED
@@ -0,0 +1,98 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto;
4
+
5
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Cipher\CipherMethod;
6
+ use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Psr7\Stream;
7
+ /**
8
+ * @internal
9
+ */
10
+ abstract class AbstractCryptoClientV2
11
+ {
12
+ public static $supportedCiphers = ['gcm'];
13
+ public static $supportedKeyWraps = [\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\KmsMaterialsProviderV2::WRAP_ALGORITHM_NAME];
14
+ public static $supportedSecurityProfiles = ['V2', 'V2_AND_LEGACY'];
15
+ public static $legacySecurityProfiles = ['V2_AND_LEGACY'];
16
+ /**
17
+ * Returns if the passed cipher name is supported for encryption by the SDK.
18
+ *
19
+ * @param string $cipherName The name of a cipher to verify is registered.
20
+ *
21
+ * @return bool If the cipher passed is in our supported list.
22
+ */
23
+ public static function isSupportedCipher($cipherName)
24
+ {
25
+ return in_array($cipherName, self::$supportedCiphers, true);
26
+ }
27
+ /**
28
+ * Returns an identifier recognizable by `openssl_*` functions, such as
29
+ * `aes-256-gcm`
30
+ *
31
+ * @param string $cipherName Name of the cipher being used for encrypting
32
+ * or decrypting.
33
+ * @param int $keySize Size of the encryption key, in bits, that will be
34
+ * used.
35
+ *
36
+ * @return string
37
+ */
38
+ protected abstract function getCipherOpenSslName($cipherName, $keySize);
39
+ /**
40
+ * Constructs a CipherMethod for the given name, initialized with the other
41
+ * data passed for use in encrypting or decrypting.
42
+ *
43
+ * @param string $cipherName Name of the cipher to generate for encrypting.
44
+ * @param string $iv Base Initialization Vector for the cipher.
45
+ * @param int $keySize Size of the encryption key, in bits, that will be
46
+ * used.
47
+ *
48
+ * @return CipherMethod
49
+ *
50
+ * @internal
51
+ */
52
+ protected abstract function buildCipherMethod($cipherName, $iv, $keySize);
53
+ /**
54
+ * Performs a reverse lookup to get the openssl_* cipher name from the
55
+ * AESName passed in from the MetadataEnvelope.
56
+ *
57
+ * @param $aesName
58
+ *
59
+ * @return string
60
+ *
61
+ * @internal
62
+ */
63
+ protected abstract function getCipherFromAesName($aesName);
64
+ /**
65
+ * Dependency to provide an interface for building an encryption stream for
66
+ * data given cipher details, metadata, and materials to do so.
67
+ *
68
+ * @param Stream $plaintext Plain-text data to be encrypted using the
69
+ * materials, algorithm, and data provided.
70
+ * @param array $options Options for use in encryption.
71
+ * @param MaterialsProviderV2 $provider A provider to supply and encrypt
72
+ * materials used in encryption.
73
+ * @param MetadataEnvelope $envelope A storage envelope for encryption
74
+ * metadata to be added to.
75
+ *
76
+ * @return AesStreamInterface
77
+ *
78
+ * @internal
79
+ */
80
+ public abstract function encrypt(\DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Psr7\Stream $plaintext, array $options, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MaterialsProviderV2 $provider, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope $envelope);
81
+ /**
82
+ * Dependency to provide an interface for building a decryption stream for
83
+ * cipher text given metadata and materials to do so.
84
+ *
85
+ * @param string $cipherText Plain-text data to be decrypted using the
86
+ * materials, algorithm, and data provided.
87
+ * @param MaterialsProviderInterface $provider A provider to supply and encrypt
88
+ * materials used in encryption.
89
+ * @param MetadataEnvelope $envelope A storage envelope for encryption
90
+ * metadata to be read from.
91
+ * @param array $options Options used for decryption.
92
+ *
93
+ * @return AesStreamInterface
94
+ *
95
+ * @internal
96
+ */
97
+ public abstract function decrypt($cipherText, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MaterialsProviderInterfaceV2 $provider, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope $envelope, array $options = []);
98
+ }
vendor/Aws3/Aws/Crypto/AesGcmDecryptingStream.php CHANGED
@@ -2,10 +2,12 @@
2
 
3
  namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto;
4
 
 
5
  use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Psr7;
6
  use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Psr7\StreamDecoratorTrait;
7
  use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\StreamInterface;
8
- use RuntimeException;
 
9
  /**
10
  * @internal Represents a stream of data to be gcm decrypted.
11
  */
@@ -30,9 +32,6 @@ class AesGcmDecryptingStream implements \DeliciousBrains\WP_Offload_Media\Aws3\A
30
  */
31
  public function __construct(\DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\StreamInterface $cipherText, $key, $initializationVector, $tag, $aad = '', $tagLength = 128, $keySize = 256)
32
  {
33
- if (version_compare(PHP_VERSION, '7.1', '<')) {
34
- throw new \RuntimeException('AES-GCM decryption is only supported in PHP 7.1 or greater');
35
- }
36
  $this->cipherText = $cipherText;
37
  $this->key = $key;
38
  $this->initializationVector = $initializationVector;
@@ -55,7 +54,15 @@ class AesGcmDecryptingStream implements \DeliciousBrains\WP_Offload_Media\Aws3\A
55
  }
56
  public function createStream()
57
  {
58
- return \DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Psr7\stream_for(openssl_decrypt((string) $this->cipherText, $this->getOpenSslName(), $this->key, OPENSSL_RAW_DATA, $this->initializationVector, $this->tag, $this->aad));
 
 
 
 
 
 
 
 
59
  }
60
  public function isWritable()
61
  {
2
 
3
  namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto;
4
 
5
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\CryptoException;
6
  use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Psr7;
7
  use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Psr7\StreamDecoratorTrait;
8
  use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\StreamInterface;
9
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Polyfill\AesGcm;
10
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Polyfill\Key;
11
  /**
12
  * @internal Represents a stream of data to be gcm decrypted.
13
  */
32
  */
33
  public function __construct(\DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\StreamInterface $cipherText, $key, $initializationVector, $tag, $aad = '', $tagLength = 128, $keySize = 256)
34
  {
 
 
 
35
  $this->cipherText = $cipherText;
36
  $this->key = $key;
37
  $this->initializationVector = $initializationVector;
54
  }
55
  public function createStream()
56
  {
57
+ if (version_compare(PHP_VERSION, '7.1', '<')) {
58
+ return \DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Psr7\stream_for(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Polyfill\AesGcm::decrypt((string) $this->cipherText, $this->initializationVector, new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Polyfill\Key($this->key), $this->aad, $this->tag, $this->keySize));
59
+ } else {
60
+ $result = \openssl_decrypt((string) $this->cipherText, $this->getOpenSslName(), $this->key, OPENSSL_RAW_DATA, $this->initializationVector, $this->tag, $this->aad);
61
+ if ($result === false) {
62
+ throw new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\CryptoException('The requested object could not be' . ' decrypted due to an invalid authentication tag.');
63
+ }
64
+ return \DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Psr7\stream_for($result);
65
+ }
66
  }
67
  public function isWritable()
68
  {
vendor/Aws3/Aws/Crypto/AesGcmEncryptingStream.php CHANGED
@@ -2,6 +2,8 @@
2
 
3
  namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto;
4
 
 
 
5
  use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Psr7;
6
  use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Psr7\StreamDecoratorTrait;
7
  use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\StreamInterface;
@@ -9,7 +11,7 @@ use RuntimeException;
9
  /**
10
  * @internal Represents a stream of data to be gcm encrypted.
11
  */
12
- class AesGcmEncryptingStream implements \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\AesStreamInterface
13
  {
14
  use StreamDecoratorTrait;
15
  private $aad;
@@ -19,6 +21,16 @@ class AesGcmEncryptingStream implements \DeliciousBrains\WP_Offload_Media\Aws3\A
19
  private $plaintext;
20
  private $tag = '';
21
  private $tagLength;
 
 
 
 
 
 
 
 
 
 
22
  /**
23
  * @param StreamInterface $plaintext
24
  * @param string $key
@@ -29,9 +41,6 @@ class AesGcmEncryptingStream implements \DeliciousBrains\WP_Offload_Media\Aws3\A
29
  */
30
  public function __construct(\DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\StreamInterface $plaintext, $key, $initializationVector, $aad = '', $tagLength = 16, $keySize = 256)
31
  {
32
- if (version_compare(PHP_VERSION, '7.1', '<')) {
33
- throw new \RuntimeException('AES-GCM decryption is only supported in PHP 7.1 or greater');
34
- }
35
  $this->plaintext = $plaintext;
36
  $this->key = $key;
37
  $this->initializationVector = $initializationVector;
@@ -43,9 +52,14 @@ class AesGcmEncryptingStream implements \DeliciousBrains\WP_Offload_Media\Aws3\A
43
  {
44
  return "aes-{$this->keySize}-gcm";
45
  }
 
 
 
 
 
46
  public function getAesName()
47
  {
48
- return 'AES/GCM/NoPadding';
49
  }
50
  public function getCurrentIv()
51
  {
@@ -53,7 +67,11 @@ class AesGcmEncryptingStream implements \DeliciousBrains\WP_Offload_Media\Aws3\A
53
  }
54
  public function createStream()
55
  {
56
- return \DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Psr7\stream_for(openssl_encrypt((string) $this->plaintext, $this->getOpenSslName(), $this->key, OPENSSL_RAW_DATA, $this->initializationVector, $this->tag, $this->aad, $this->tagLength));
 
 
 
 
57
  }
58
  /**
59
  * @return string
2
 
3
  namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto;
4
 
5
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Polyfill\AesGcm;
6
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Polyfill\Key;
7
  use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Psr7;
8
  use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Psr7\StreamDecoratorTrait;
9
  use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\StreamInterface;
11
  /**
12
  * @internal Represents a stream of data to be gcm encrypted.
13
  */
14
+ class AesGcmEncryptingStream implements \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\AesStreamInterface, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\AesStreamInterfaceV2
15
  {
16
  use StreamDecoratorTrait;
17
  private $aad;
21
  private $plaintext;
22
  private $tag = '';
23
  private $tagLength;
24
+ /**
25
+ * Same as non-static 'getAesName' method, allowing calls in a static
26
+ * context.
27
+ *
28
+ * @return string
29
+ */
30
+ public static function getStaticAesName()
31
+ {
32
+ return 'AES/GCM/NoPadding';
33
+ }
34
  /**
35
  * @param StreamInterface $plaintext
36
  * @param string $key
41
  */
42
  public function __construct(\DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\StreamInterface $plaintext, $key, $initializationVector, $aad = '', $tagLength = 16, $keySize = 256)
43
  {
 
 
 
44
  $this->plaintext = $plaintext;
45
  $this->key = $key;
46
  $this->initializationVector = $initializationVector;
52
  {
53
  return "aes-{$this->keySize}-gcm";
54
  }
55
+ /**
56
+ * Same as static method and retained for backwards compatibility
57
+ *
58
+ * @return string
59
+ */
60
  public function getAesName()
61
  {
62
+ return self::getStaticAesName();
63
  }
64
  public function getCurrentIv()
65
  {
67
  }
68
  public function createStream()
69
  {
70
+ if (version_compare(PHP_VERSION, '7.1', '<')) {
71
+ return \DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Psr7\stream_for(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Polyfill\AesGcm::encrypt((string) $this->plaintext, $this->initializationVector, new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Polyfill\Key($this->key), $this->aad, $this->tag, $this->keySize));
72
+ } else {
73
+ return \DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Psr7\stream_for(\openssl_encrypt((string) $this->plaintext, $this->getOpenSslName(), $this->key, OPENSSL_RAW_DATA, $this->initializationVector, $this->tag, $this->aad, $this->tagLength));
74
+ }
75
  }
76
  /**
77
  * @return string
vendor/Aws3/Aws/Crypto/AesStreamInterfaceV2.php ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto;
4
+
5
+ use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\StreamInterface;
6
+ interface AesStreamInterfaceV2 extends StreamInterface
7
+ {
8
+ /**
9
+ * Returns an AES recognizable name, such as 'AES/GCM/NoPadding'. V2
10
+ * interface is accessible from a static context.
11
+ *
12
+ * @return string
13
+ */
14
+ public static function getStaticAesName();
15
+ /**
16
+ * Returns an identifier recognizable by `openssl_*` functions, such as
17
+ * `aes-256-cbc` or `aes-128-ctr`.
18
+ *
19
+ * @return string
20
+ */
21
+ public function getOpenSslName();
22
+ /**
23
+ * Returns the IV that should be used to initialize the next block in
24
+ * encrypt or decrypt.
25
+ *
26
+ * @return string
27
+ */
28
+ public function getCurrentIv();
29
+ }
vendor/Aws3/Aws/Crypto/Cipher/Cbc.php CHANGED
@@ -7,6 +7,12 @@ use LogicException;
7
  /**
8
  * An implementation of the CBC cipher for use with an AesEncryptingStream or
9
  * AesDecrypting stream.
 
 
 
 
 
 
10
  */
11
  class Cbc implements \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Cipher\CipherMethod
12
  {
7
  /**
8
  * An implementation of the CBC cipher for use with an AesEncryptingStream or
9
  * AesDecrypting stream.
10
+ *
11
+ * This cipher method is deprecated and in maintenance mode - no new updates will be
12
+ * released. Please see https://docs.aws.amazon.com/general/latest/gr/aws_sdk_cryptography.html
13
+ * for more information.
14
+ *
15
+ * @deprecated
16
  */
17
  class Cbc implements \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Cipher\CipherMethod
18
  {
vendor/Aws3/Aws/Crypto/Cipher/CipherBuilderTrait.php CHANGED
@@ -2,6 +2,7 @@
2
 
3
  namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Cipher;
4
 
 
5
  trait CipherBuilderTrait
6
  {
7
  /**
@@ -59,7 +60,7 @@ trait CipherBuilderTrait
59
  case 'AES/CBC/PKCS5Padding':
60
  return 'cbc';
61
  default:
62
- throw new \RuntimeException('Unrecognized or unsupported' . ' AESName for reverse lookup.');
63
  }
64
  }
65
  }
2
 
3
  namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Cipher;
4
 
5
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\CryptoException;
6
  trait CipherBuilderTrait
7
  {
8
  /**
60
  case 'AES/CBC/PKCS5Padding':
61
  return 'cbc';
62
  default:
63
+ throw new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\CryptoException('Unrecognized or unsupported' . ' AESName for reverse lookup.');
64
  }
65
  }
66
  }
vendor/Aws3/Aws/Crypto/DecryptionTrait.php CHANGED
@@ -34,12 +34,13 @@ trait DecryptionTrait
34
  protected abstract function buildCipherMethod($cipherName, $iv, $keySize);
35
  /**
36
  * Builds an AesStreamInterface using cipher options loaded from the
37
- * MetadataEnvelope and MaterialsProvider.
 
38
  *
39
  * @param string $cipherText Plain-text data to be encrypted using the
40
  * materials, algorithm, and data provided.
41
- * @param MaterialsProvider $provider A provider to supply and encrypt
42
- * materials used in encryption.
43
  * @param MetadataEnvelope $envelope A storage envelope for encryption
44
  * metadata to be read from.
45
  * @param array $cipherOptions Additional verification options.
@@ -51,7 +52,7 @@ trait DecryptionTrait
51
  *
52
  * @internal
53
  */
54
- public function decrypt($cipherText, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MaterialsProvider $provider, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope $envelope, array $cipherOptions = [])
55
  {
56
  $cipherOptions['Iv'] = base64_decode($envelope[\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope::IV_HEADER]);
57
  $cipherOptions['TagLength'] = $envelope[\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope::CRYPTO_TAG_LENGTH_HEADER] / 8;
34
  protected abstract function buildCipherMethod($cipherName, $iv, $keySize);
35
  /**
36
  * Builds an AesStreamInterface using cipher options loaded from the
37
+ * MetadataEnvelope and MaterialsProvider. Can decrypt data from both the
38
+ * legacy and V2 encryption client workflows.
39
  *
40
  * @param string $cipherText Plain-text data to be encrypted using the
41
  * materials, algorithm, and data provided.
42
+ * @param MaterialsProviderInterface $provider A provider to supply and encrypt
43
+ * materials used in encryption.
44
  * @param MetadataEnvelope $envelope A storage envelope for encryption
45
  * metadata to be read from.
46
  * @param array $cipherOptions Additional verification options.
52
  *
53
  * @internal
54
  */
55
+ public function decrypt($cipherText, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MaterialsProviderInterface $provider, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope $envelope, array $cipherOptions = [])
56
  {
57
  $cipherOptions['Iv'] = base64_decode($envelope[\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope::IV_HEADER]);
58
  $cipherOptions['TagLength'] = $envelope[\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope::CRYPTO_TAG_LENGTH_HEADER] / 8;
vendor/Aws3/Aws/Crypto/DecryptionTraitV2.php ADDED
@@ -0,0 +1,138 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto;
4
+
5
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\CryptoException;
6
+ use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Psr7;
7
+ use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Psr7\LimitStream;
8
+ use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\StreamInterface;
9
+ trait DecryptionTraitV2
10
+ {
11
+ /**
12
+ * Dependency to reverse lookup the openssl_* cipher name from the AESName
13
+ * in the MetadataEnvelope.
14
+ *
15
+ * @param $aesName
16
+ *
17
+ * @return string
18
+ *
19
+ * @internal
20
+ */
21
+ protected abstract function getCipherFromAesName($aesName);
22
+ /**
23
+ * Dependency to generate a CipherMethod from a set of inputs for loading
24
+ * in to an AesDecryptingStream.
25
+ *
26
+ * @param string $cipherName Name of the cipher to generate for decrypting.
27
+ * @param string $iv Base Initialization Vector for the cipher.
28
+ * @param int $keySize Size of the encryption key, in bits, that will be
29
+ * used.
30
+ *
31
+ * @return Cipher\CipherMethod
32
+ *
33
+ * @internal
34
+ */
35
+ protected abstract function buildCipherMethod($cipherName, $iv, $keySize);
36
+ /**
37
+ * Builds an AesStreamInterface using cipher options loaded from the
38
+ * MetadataEnvelope and MaterialsProvider. Can decrypt data from both the
39
+ * legacy and V2 encryption client workflows.
40
+ *
41
+ * @param string $cipherText Plain-text data to be encrypted using the
42
+ * materials, algorithm, and data provided.
43
+ * @param MaterialsProviderInterfaceV2 $provider A provider to supply and encrypt
44
+ * materials used in encryption.
45
+ * @param MetadataEnvelope $envelope A storage envelope for encryption
46
+ * metadata to be read from.
47
+ * @param array $options Options used for decryption.
48
+ *
49
+ * @return AesStreamInterface
50
+ *
51
+ * @throws \InvalidArgumentException Thrown when a value in $cipherOptions
52
+ * is not valid.
53
+ *
54
+ * @internal
55
+ */
56
+ public function decrypt($cipherText, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MaterialsProviderInterfaceV2 $provider, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope $envelope, array $options = [])
57
+ {
58
+ $options['@CipherOptions'] = !empty($options['@CipherOptions']) ? $options['@CipherOptions'] : [];
59
+ $options['@CipherOptions']['Iv'] = base64_decode($envelope[\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope::IV_HEADER]);
60
+ $options['@CipherOptions']['TagLength'] = $envelope[\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope::CRYPTO_TAG_LENGTH_HEADER] / 8;
61
+ $cek = $provider->decryptCek(base64_decode($envelope[\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope::CONTENT_KEY_V2_HEADER]), json_decode($envelope[\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope::MATERIALS_DESCRIPTION_HEADER], true), $options);
62
+ $options['@CipherOptions']['KeySize'] = strlen($cek) * 8;
63
+ $options['@CipherOptions']['Cipher'] = $this->getCipherFromAesName($envelope[\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope::CONTENT_CRYPTO_SCHEME_HEADER]);
64
+ $this->validateOptionsAndEnvelope($options, $envelope);
65
+ $decryptionSteam = $this->getDecryptingStream($cipherText, $cek, $options['@CipherOptions']);
66
+ unset($cek);
67
+ return $decryptionSteam;
68
+ }
69
+ private function getTagFromCiphertextStream(\DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\StreamInterface $cipherText, $tagLength)
70
+ {
71
+ $cipherTextSize = $cipherText->getSize();
72
+ if ($cipherTextSize == null || $cipherTextSize <= 0) {
73
+ throw new \RuntimeException('Cannot decrypt a stream of unknown' . ' size.');
74
+ }
75
+ return (string) new \DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Psr7\LimitStream($cipherText, $tagLength, $cipherTextSize - $tagLength);
76
+ }
77
+ private function getStrippedCiphertextStream(\DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\StreamInterface $cipherText, $tagLength)
78
+ {
79
+ $cipherTextSize = $cipherText->getSize();
80
+ if ($cipherTextSize == null || $cipherTextSize <= 0) {
81
+ throw new \RuntimeException('Cannot decrypt a stream of unknown' . ' size.');
82
+ }
83
+ return new \DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Psr7\LimitStream($cipherText, $cipherTextSize - $tagLength, 0);
84
+ }
85
+ private function validateOptionsAndEnvelope($options, $envelope)
86
+ {
87
+ $allowedCiphers = AbstractCryptoClientV2::$supportedCiphers;
88
+ $allowedKeywraps = AbstractCryptoClientV2::$supportedKeyWraps;
89
+ if ($options['@SecurityProfile'] == 'V2_AND_LEGACY') {
90
+ $allowedCiphers = array_unique(array_merge($allowedCiphers, AbstractCryptoClient::$supportedCiphers));
91
+ $allowedKeywraps = array_unique(array_merge($allowedKeywraps, AbstractCryptoClient::$supportedKeyWraps));
92
+ }
93
+ $v1SchemaException = new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\CryptoException("The requested object is encrypted" . " with V1 encryption schemas that have been disabled by" . " client configuration @SecurityProfile=V2. Retry with" . " V2_AND_LEGACY enabled or reencrypt the object.");
94
+ if (!in_array($options['@CipherOptions']['Cipher'], $allowedCiphers)) {
95
+ if (in_array($options['@CipherOptions']['Cipher'], AbstractCryptoClient::$supportedCiphers)) {
96
+ throw $v1SchemaException;
97
+ }
98
+ throw new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\CryptoException("The requested object is encrypted with" . " the cipher '{$options['@CipherOptions']['Cipher']}', which is not" . " supported for decryption with the selected security profile." . " This profile allows decryption with: " . implode(", ", $allowedCiphers));
99
+ }
100
+ if (!in_array($envelope[\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope::KEY_WRAP_ALGORITHM_HEADER], $allowedKeywraps)) {
101
+ if (in_array($envelope[\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope::KEY_WRAP_ALGORITHM_HEADER], AbstractCryptoClient::$supportedKeyWraps)) {
102
+ throw $v1SchemaException;
103
+ }
104
+ throw new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\CryptoException("The requested object is encrypted with" . " the keywrap schema '{$envelope[\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope::KEY_WRAP_ALGORITHM_HEADER]}'," . " which is not supported for decryption with the current security" . " profile.");
105
+ }
106
+ $matdesc = json_decode($envelope[\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope::MATERIALS_DESCRIPTION_HEADER], true);
107
+ if (isset($matdesc['aws:x-amz-cek-alg']) && $envelope[\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope::CONTENT_CRYPTO_SCHEME_HEADER] !== $matdesc['aws:x-amz-cek-alg']) {
108
+ throw new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\CryptoException("There is a mismatch in specified content" . " encryption algrithm between the materials description value" . " and the metadata envelope value: {$matdesc['aws:x-amz-cek-alg']}" . " vs. {$envelope[\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope::CONTENT_CRYPTO_SCHEME_HEADER]}.");
109
+ }
110
+ }
111
+ /**
112
+ * Generates a stream that wraps the cipher text with the proper cipher and
113
+ * uses the content encryption key (CEK) to decrypt the data when read.
114
+ *
115
+ * @param string $cipherText Plain-text data to be encrypted using the
116
+ * materials, algorithm, and data provided.
117
+ * @param string $cek A content encryption key for use by the stream for
118
+ * encrypting the plaintext data.
119
+ * @param array $cipherOptions Options for use in determining the cipher to
120
+ * be used for encrypting data.
121
+ *
122
+ * @return AesStreamInterface
123
+ *
124
+ * @internal
125
+ */
126
+ protected function getDecryptingStream($cipherText, $cek, $cipherOptions)
127
+ {
128
+ $cipherTextStream = \DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Psr7\stream_for($cipherText);
129
+ switch ($cipherOptions['Cipher']) {
130
+ case 'gcm':
131
+ $cipherOptions['Tag'] = $this->getTagFromCiphertextStream($cipherTextStream, $cipherOptions['TagLength']);
132
+ return new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\AesGcmDecryptingStream($this->getStrippedCiphertextStream($cipherTextStream, $cipherOptions['TagLength']), $cek, $cipherOptions['Iv'], $cipherOptions['Tag'], $cipherOptions['Aad'] = isset($cipherOptions['Aad']) ? $cipherOptions['Aad'] : null, $cipherOptions['TagLength'] ?: null, $cipherOptions['KeySize']);
133
+ default:
134
+ $cipherMethod = $this->buildCipherMethod($cipherOptions['Cipher'], $cipherOptions['Iv'], $cipherOptions['KeySize']);
135
+ return new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\AesDecryptingStream($cipherTextStream, $cek, $cipherMethod);
136
+ }
137
+ }
138
+ }
vendor/Aws3/Aws/Crypto/EncryptionTrait.php CHANGED
@@ -71,7 +71,6 @@ trait EncryptionTrait
71
  $envelope[\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope::KEY_WRAP_ALGORITHM_HEADER] = $provider->getWrapAlgorithmName();
72
  $envelope[\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope::CONTENT_CRYPTO_SCHEME_HEADER] = $aesName;
73
  $envelope[\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope::UNENCRYPTED_CONTENT_LENGTH_HEADER] = strlen($plaintext);
74
- $envelope[\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope::UNENCRYPTED_CONTENT_MD5_HEADER] = base64_encode(md5($plaintext));
75
  $envelope[\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope::MATERIALS_DESCRIPTION_HEADER] = json_encode($materialsDescription);
76
  if (!empty($cipherOptions['Tag'])) {
77
  $envelope[\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope::CRYPTO_TAG_LENGTH_HEADER] = strlen($cipherOptions['Tag']) * 8;
@@ -99,6 +98,9 @@ trait EncryptionTrait
99
  case 'gcm':
100
  $cipherOptions['TagLength'] = 16;
101
  $cipherTextStream = new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\AesGcmEncryptingStream($plaintext, $cek, $cipherOptions['Iv'], $cipherOptions['Aad'] = isset($cipherOptions['Aad']) ? $cipherOptions['Aad'] : null, $cipherOptions['TagLength'], $cipherOptions['KeySize']);
 
 
 
102
  $appendStream = new \DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Psr7\AppendStream([$cipherTextStream->createStream()]);
103
  $cipherOptions['Tag'] = $cipherTextStream->getTag();
104
  $appendStream->addStream(\DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Psr7\stream_for($cipherOptions['Tag']));
71
  $envelope[\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope::KEY_WRAP_ALGORITHM_HEADER] = $provider->getWrapAlgorithmName();
72
  $envelope[\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope::CONTENT_CRYPTO_SCHEME_HEADER] = $aesName;
73
  $envelope[\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope::UNENCRYPTED_CONTENT_LENGTH_HEADER] = strlen($plaintext);
 
74
  $envelope[\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope::MATERIALS_DESCRIPTION_HEADER] = json_encode($materialsDescription);
75
  if (!empty($cipherOptions['Tag'])) {
76
  $envelope[\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope::CRYPTO_TAG_LENGTH_HEADER] = strlen($cipherOptions['Tag']) * 8;
98
  case 'gcm':
99
  $cipherOptions['TagLength'] = 16;
100
  $cipherTextStream = new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\AesGcmEncryptingStream($plaintext, $cek, $cipherOptions['Iv'], $cipherOptions['Aad'] = isset($cipherOptions['Aad']) ? $cipherOptions['Aad'] : null, $cipherOptions['TagLength'], $cipherOptions['KeySize']);
101
+ if (!empty($cipherOptions['Aad'])) {
102
+ trigger_error("'Aad' has been supplied for content encryption" . " with " . $cipherTextStream->getAesName() . ". The" . " PHP SDK encryption client can decrypt an object" . " encrypted in this way, but other AWS SDKs may not be" . " able to.", E_USER_WARNING);
103
+ }
104
  $appendStream = new \DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Psr7\AppendStream([$cipherTextStream->createStream()]);
105
  $cipherOptions['Tag'] = $cipherTextStream->getTag();
106
  $appendStream->addStream(\DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Psr7\stream_for($cipherOptions['Tag']));
vendor/Aws3/Aws/Crypto/EncryptionTraitV2.php ADDED
@@ -0,0 +1,122 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto;
4
+
5
+ use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Psr7;
6
+ use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Psr7\AppendStream;
7
+ use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Psr7\Stream;
8
+ use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\StreamInterface;
9
+ trait EncryptionTraitV2
10
+ {
11
+ private static $allowedOptions = ['Cipher' => true, 'KeySize' => true, 'Aad' => true];
12
+ private static $encryptClasses = ['gcm' => \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\AesGcmEncryptingStream::class];
13
+ /**
14
+ * Dependency to generate a CipherMethod from a set of inputs for loading
15
+ * in to an AesEncryptingStream.
16
+ *
17
+ * @param string $cipherName Name of the cipher to generate for encrypting.
18
+ * @param string $iv Base Initialization Vector for the cipher.
19
+ * @param int $keySize Size of the encryption key, in bits, that will be
20
+ * used.
21
+ *
22
+ * @return Cipher\CipherMethod
23
+ *
24
+ * @internal
25
+ */
26
+ protected abstract function buildCipherMethod($cipherName, $iv, $keySize);
27
+ /**
28
+ * Builds an AesStreamInterface and populates encryption metadata into the
29
+ * supplied envelope.
30
+ *
31
+ * @param Stream $plaintext Plain-text data to be encrypted using the
32
+ * materials, algorithm, and data provided.
33
+ * @param array $options Options for use in encryption, including cipher
34
+ * options, and encryption context.
35
+ * @param MaterialsProviderV2 $provider A provider to supply and encrypt
36
+ * materials used in encryption.
37
+ * @param MetadataEnvelope $envelope A storage envelope for encryption
38
+ * metadata to be added to.
39
+ *
40
+ * @return StreamInterface
41
+ *
42
+ * @throws \InvalidArgumentException Thrown when a value in $options['@CipherOptions']
43
+ * is not valid.
44
+ *s
45
+ * @internal
46
+ */
47
+ public function encrypt(\DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Psr7\Stream $plaintext, array $options, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MaterialsProviderV2 $provider, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope $envelope)
48
+ {
49
+ $options = array_change_key_case($options);
50
+ $cipherOptions = array_intersect_key($options['@cipheroptions'], self::$allowedOptions);
51
+ if (empty($cipherOptions['Cipher'])) {
52
+ throw new \InvalidArgumentException('An encryption cipher must be' . ' specified in @CipherOptions["Cipher"].');
53
+ }
54
+ $cipherOptions['Cipher'] = strtolower($cipherOptions['Cipher']);
55
+ if (!self::isSupportedCipher($cipherOptions['Cipher'])) {
56
+ throw new \InvalidArgumentException('The cipher requested is not' . ' supported by the SDK.');
57
+ }
58
+ if (empty($cipherOptions['KeySize'])) {
59
+ $cipherOptions['KeySize'] = 256;
60
+ }
61
+ if (!is_int($cipherOptions['KeySize'])) {
62
+ throw new \InvalidArgumentException('The cipher "KeySize" must be' . ' an integer.');
63
+ }
64
+ if (!\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MaterialsProviderV2::isSupportedKeySize($cipherOptions['KeySize'])) {
65
+ throw new \InvalidArgumentException('The cipher "KeySize" requested' . ' is not supported by AES (128 or 256).');
66
+ }
67
+ $cipherOptions['Iv'] = $provider->generateIv($this->getCipherOpenSslName($cipherOptions['Cipher'], $cipherOptions['KeySize']));
68
+ $encryptClass = self::$encryptClasses[$cipherOptions['Cipher']];
69
+ $aesName = $encryptClass::getStaticAesName();
70
+ $materialsDescription = ['aws:x-amz-cek-alg' => $aesName];
71
+ $keys = $provider->generateCek($cipherOptions['KeySize'], $materialsDescription, $options);
72
+ // Some providers modify materials description based on options
73
+ if (isset($keys['UpdatedContext'])) {
74
+ $materialsDescription = $keys['UpdatedContext'];
75
+ }
76
+ $encryptingStream = $this->getEncryptingStream($plaintext, $keys['Plaintext'], $cipherOptions);
77
+ // Populate envelope data
78
+ $envelope[\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope::CONTENT_KEY_V2_HEADER] = $keys['Ciphertext'];
79
+ unset($keys);
80
+ $envelope[\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope::IV_HEADER] = base64_encode($cipherOptions['Iv']);
81
+ $envelope[\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope::KEY_WRAP_ALGORITHM_HEADER] = $provider->getWrapAlgorithmName();
82
+ $envelope[\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope::CONTENT_CRYPTO_SCHEME_HEADER] = $aesName;
83
+ $envelope[\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope::UNENCRYPTED_CONTENT_LENGTH_HEADER] = strlen($plaintext);
84
+ $envelope[\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope::MATERIALS_DESCRIPTION_HEADER] = json_encode($materialsDescription);
85
+ if (!empty($cipherOptions['Tag'])) {
86
+ $envelope[\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope::CRYPTO_TAG_LENGTH_HEADER] = strlen($cipherOptions['Tag']) * 8;
87
+ }
88
+ return $encryptingStream;
89
+ }
90
+ /**
91
+ * Generates a stream that wraps the plaintext with the proper cipher and
92
+ * uses the content encryption key (CEK) to encrypt the data when read.
93
+ *
94
+ * @param Stream $plaintext Plain-text data to be encrypted using the
95
+ * materials, algorithm, and data provided.
96
+ * @param string $cek A content encryption key for use by the stream for
97
+ * encrypting the plaintext data.
98
+ * @param array $cipherOptions Options for use in determining the cipher to
99
+ * be used for encrypting data.
100
+ *
101
+ * @return [AesStreamInterface, string]
102
+ *
103
+ * @internal
104
+ */
105
+ protected function getEncryptingStream(\DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Psr7\Stream $plaintext, $cek, &$cipherOptions)
106
+ {
107
+ switch ($cipherOptions['Cipher']) {
108
+ // Only 'gcm' is supported for encryption currently
109
+ case 'gcm':
110
+ $cipherOptions['TagLength'] = 16;
111
+ $encryptClass = self::$encryptClasses['gcm'];
112
+ $cipherTextStream = new $encryptClass($plaintext, $cek, $cipherOptions['Iv'], $cipherOptions['Aad'] = isset($cipherOptions['Aad']) ? $cipherOptions['Aad'] : '', $cipherOptions['TagLength'], $cipherOptions['KeySize']);
113
+ if (!empty($cipherOptions['Aad'])) {
114
+ trigger_error("'Aad' has been supplied for content encryption" . " with " . $cipherTextStream->getAesName() . ". The" . " PHP SDK encryption client can decrypt an object" . " encrypted in this way, but other AWS SDKs may not be" . " able to.", E_USER_WARNING);
115
+ }
116
+ $appendStream = new \DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Psr7\AppendStream([$cipherTextStream->createStream()]);
117
+ $cipherOptions['Tag'] = $cipherTextStream->getTag();
118
+ $appendStream->addStream(\DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Psr7\stream_for($cipherOptions['Tag']));
119
+ return $appendStream;
120
+ }
121
+ }
122
+ }
vendor/Aws3/Aws/Crypto/KmsMaterialsProvider.php CHANGED
@@ -5,9 +5,17 @@ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto;
5
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Kms\KmsClient;
6
  /**
7
  * Uses KMS to supply materials for encrypting and decrypting data.
 
 
 
 
 
 
 
8
  */
9
- class KmsMaterialsProvider extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MaterialsProvider
10
  {
 
11
  private $kmsClient;
12
  private $kmsKeyId;
13
  /**
@@ -24,13 +32,13 @@ class KmsMaterialsProvider extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Cr
24
  public function fromDecryptionEnvelope(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope $envelope)
25
  {
26
  if (empty($envelope[\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope::MATERIALS_DESCRIPTION_HEADER])) {
27
- throw new \RuntimeException('Not able to detect kms_cmk_id from an' . ' empty materials description.');
28
  }
29
  $materialsDescription = json_decode($envelope[\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope::MATERIALS_DESCRIPTION_HEADER], true);
30
- if (empty($materialsDescription['kms_cmk_id'])) {
31
- throw new \RuntimeException('Not able to detect kms_cmk_id from kms' . ' materials description.');
32
  }
33
- return new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\KmsMaterialsProvider($this->kmsClient, $materialsDescription['kms_cmk_id']);
34
  }
35
  /**
36
  * The KMS key id for use in matching this Provider to its keys,
@@ -44,7 +52,7 @@ class KmsMaterialsProvider extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Cr
44
  }
45
  public function getWrapAlgorithmName()
46
  {
47
- return 'kms';
48
  }
49
  /**
50
  * Takes a content encryption key (CEK) and description to return an encrypted
5
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Kms\KmsClient;
6
  /**
7
  * Uses KMS to supply materials for encrypting and decrypting data.
8
+ *
9
+ * Legacy implementation that supports legacy S3EncryptionClient and
10
+ * S3EncryptionMultipartUploader, which use an older encryption workflow. Use
11
+ * KmsMaterialsProviderV2 with S3EncryptionClientV2 or
12
+ * S3EncryptionMultipartUploaderV2 if possible.
13
+ *
14
+ * @deprecated
15
  */
16
+ class KmsMaterialsProvider extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MaterialsProvider implements \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MaterialsProviderInterface
17
  {
18
+ const WRAP_ALGORITHM_NAME = 'kms';
19
  private $kmsClient;
20
  private $kmsKeyId;
21
  /**
32
  public function fromDecryptionEnvelope(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope $envelope)
33
  {
34
  if (empty($envelope[\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope::MATERIALS_DESCRIPTION_HEADER])) {
35
+ throw new \RuntimeException('Not able to detect the materials description.');
36
  }
37
  $materialsDescription = json_decode($envelope[\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope::MATERIALS_DESCRIPTION_HEADER], true);
38
+ if (empty($materialsDescription['kms_cmk_id']) && empty($materialsDescription['aws:x-amz-cek-alg'])) {
39
+ throw new \RuntimeException('Not able to detect kms_cmk_id (legacy' . ' implementation) or aws:x-amz-cek-alg (current implementation)' . ' from kms materials description.');
40
  }
41
+ return new self($this->kmsClient, isset($materialsDescription['kms_cmk_id']) ? $materialsDescription['kms_cmk_id'] : null);
42
  }
43
  /**
44
  * The KMS key id for use in matching this Provider to its keys,
52
  }
53
  public function getWrapAlgorithmName()
54
  {
55
+ return self::WRAP_ALGORITHM_NAME;
56
  }
57
  /**
58
  * Takes a content encryption key (CEK) and description to return an encrypted
vendor/Aws3/Aws/Crypto/KmsMaterialsProviderV2.php ADDED
@@ -0,0 +1,69 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto;
4
+
5
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\CryptoException;
6
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Kms\KmsClient;
7
+ /**
8
+ * Uses KMS to supply materials for encrypting and decrypting data. This
9
+ * V2 implementation should be used with the V2 encryption clients (i.e.
10
+ * S3EncryptionClientV2).
11
+ */
12
+ class KmsMaterialsProviderV2 extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MaterialsProviderV2 implements \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MaterialsProviderInterfaceV2
13
+ {
14
+ const WRAP_ALGORITHM_NAME = 'kms+context';
15
+ private $kmsClient;
16
+ private $kmsKeyId;
17
+ /**
18
+ * @param KmsClient $kmsClient A KMS Client for use encrypting and
19
+ * decrypting keys.
20
+ * @param string $kmsKeyId The private KMS key id to be used for encrypting
21
+ * and decrypting keys.
22
+ */
23
+ public function __construct(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Kms\KmsClient $kmsClient, $kmsKeyId = null)
24
+ {
25
+ $this->kmsClient = $kmsClient;
26
+ $this->kmsKeyId = $kmsKeyId;
27
+ }
28
+ /**
29
+ * @inheritDoc
30
+ */
31
+ public function getWrapAlgorithmName()
32
+ {
33
+ return self::WRAP_ALGORITHM_NAME;
34
+ }
35
+ /**
36
+ * @inheritDoc
37
+ */
38
+ public function decryptCek($encryptedCek, $materialDescription, $options)
39
+ {
40
+ $params = ['CiphertextBlob' => $encryptedCek, 'EncryptionContext' => $materialDescription];
41
+ if (empty($options['@KmsAllowDecryptWithAnyCmk'])) {
42
+ if (empty($this->kmsKeyId)) {
43
+ throw new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\CryptoException('KMS CMK ID was not specified and the' . ' operation is not opted-in to attempting to use any valid' . ' CMK it discovers. Please specify a CMK ID, or explicitly' . ' enable attempts to use any valid KMS CMK with the' . ' @KmsAllowDecryptWithAnyCmk option.');
44
+ }
45
+ $params['KeyId'] = $this->kmsKeyId;
46
+ }
47
+ $result = $this->kmsClient->decrypt($params);
48
+ return $result['Plaintext'];
49
+ }
50
+ /**
51
+ * @inheritDoc
52
+ */
53
+ public function generateCek($keySize, $context, $options)
54
+ {
55
+ if (empty($this->kmsKeyId)) {
56
+ throw new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\CryptoException('A KMS key id is required for encryption' . ' with KMS keywrap. Use a KmsMaterialsProviderV2 that has been' . ' instantiated with a KMS key id.');
57
+ }
58
+ $options = array_change_key_case($options);
59
+ if (!isset($options['@kmsencryptioncontext']) || !is_array($options['@kmsencryptioncontext'])) {
60
+ throw new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\CryptoException("'@KmsEncryptionContext' is a" . " required argument when using KmsMaterialsProviderV2, and" . " must be an associative array (or empty array).");
61
+ }
62
+ if (isset($options['@kmsencryptioncontext']['aws:x-amz-cek-alg'])) {
63
+ throw new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\CryptoException("Conflict in reserved @KmsEncryptionContext" . " key aws:x-amz-cek-alg. This value is reserved for the S3" . " Encryption Client and cannot be set by the user.");
64
+ }
65
+ $context = array_merge($options['@kmsencryptioncontext'], $context);
66
+ $result = $this->kmsClient->generateDataKey(['KeyId' => $this->kmsKeyId, 'KeySpec' => "AES_{$keySize}", 'EncryptionContext' => $context]);
67
+ return ['Plaintext' => $result['Plaintext'], 'Ciphertext' => base64_encode($result['CiphertextBlob']), 'UpdatedContext' => $context];
68
+ }
69
+ }
vendor/Aws3/Aws/Crypto/MaterialsProvider.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto;
4
 
5
- abstract class MaterialsProvider
6
  {
7
  private static $supportedKeySizes = [128 => true, 192 => true, 256 => true];
8
  /**
2
 
3
  namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto;
4
 
5
+ abstract class MaterialsProvider implements \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MaterialsProviderInterface
6
  {
7
  private static $supportedKeySizes = [128 => true, 192 => true, 256 => true];
8
  /**
vendor/Aws3/Aws/Crypto/MaterialsProviderInterface.php ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto;
4
+
5
+ interface MaterialsProviderInterface
6
+ {
7
+ /**
8
+ * Returns if the requested size is supported by AES.
9
+ *
10
+ * @param int $keySize Size of the requested key in bits.
11
+ *
12
+ * @return bool
13
+ */
14
+ public static function isSupportedKeySize($keySize);
15
+ /**
16
+ * Performs further initialization of the MaterialsProvider based on the
17
+ * data inside the MetadataEnvelope.
18
+ *
19
+ * @param MetadataEnvelope $envelope A storage envelope for encryption
20
+ * metadata to be read from.
21
+ *
22
+ * @internal
23
+ */
24
+ public function fromDecryptionEnvelope(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope $envelope);
25
+ /**
26
+ * Returns the wrap algorithm name for this Provider.
27
+ *
28
+ * @return string
29
+ */
30
+ public function getWrapAlgorithmName();
31
+ /**
32
+ * Takes an encrypted content encryption key (CEK) and material description
33
+ * for use decrypting the key according to the Provider's specifications.
34
+ *
35
+ * @param string $encryptedCek Encrypted key to be decrypted by the Provider
36
+ * for use decrypting other data.
37
+ * @param string $materialDescription Material Description for use in
38
+ * encrypting the $cek.
39
+ *
40
+ * @return string
41
+ */
42
+ public function decryptCek($encryptedCek, $materialDescription);
43
+ /**
44
+ * @param string $keySize Length of a cipher key in bits for generating a
45
+ * random content encryption key (CEK).
46
+ *
47
+ * @return string
48
+ */
49
+ public function generateCek($keySize);
50
+ /**
51
+ * @param string $openSslName Cipher OpenSSL name to use for generating
52
+ * an initialization vector.
53
+ *
54
+ * @return string
55
+ */
56
+ public function generateIv($openSslName);
57
+ }
vendor/Aws3/Aws/Crypto/MaterialsProviderInterfaceV2.php ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto;
4
+
5
+ interface MaterialsProviderInterfaceV2
6
+ {
7
+ /**
8
+ * Returns if the requested size is supported by AES.
9
+ *
10
+ * @param int $keySize Size of the requested key in bits.
11
+ *
12
+ * @return bool
13
+ */
14
+ public static function isSupportedKeySize($keySize);
15
+ /**
16
+ * Returns the wrap algorithm name for this Provider.
17
+ *
18
+ * @return string
19
+ */
20
+ public function getWrapAlgorithmName();
21
+ /**
22
+ * Takes an encrypted content encryption key (CEK) and material description
23
+ * for use decrypting the key according to the Provider's specifications.
24
+ *
25
+ * @param string $encryptedCek Encrypted key to be decrypted by the Provider
26
+ * for use decrypting other data.
27
+ * @param string $materialDescription Material Description for use in
28
+ * decrypting the CEK.
29
+ * @param array $options Options for use in decrypting the CEK.
30
+ *
31
+ * @return string
32
+ */
33
+ public function decryptCek($encryptedCek, $materialDescription, $options);
34
+ /**
35
+ * @param string $keySize Length of a cipher key in bits for generating a
36
+ * random content encryption key (CEK).
37
+ * @param array $context Context map needed for key encryption
38
+ * @param array $options Additional options to be used in CEK generation
39
+ *
40
+ * @return array
41
+ */
42
+ public function generateCek($keySize, $context, $options);
43
+ /**
44
+ * @param string $openSslName Cipher OpenSSL name to use for generating
45
+ * an initialization vector.
46
+ *
47
+ * @return string
48
+ */
49
+ public function generateIv($openSslName);
50
+ }
vendor/Aws3/Aws/Crypto/MaterialsProviderV2.php ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto;
4
+
5
+ abstract class MaterialsProviderV2 implements \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MaterialsProviderInterfaceV2
6
+ {
7
+ private static $supportedKeySizes = [128 => true, 256 => true];
8
+ /**
9
+ * Returns if the requested size is supported by AES.
10
+ *
11
+ * @param int $keySize Size of the requested key in bits.
12
+ *
13
+ * @return bool
14
+ */
15
+ public static function isSupportedKeySize($keySize)
16
+ {
17
+ return isset(self::$supportedKeySizes[$keySize]);
18
+ }
19
+ /**
20
+ * Returns the wrap algorithm name for this Provider.
21
+ *
22
+ * @return string
23
+ */
24
+ public abstract function getWrapAlgorithmName();
25
+ /**
26
+ * Takes an encrypted content encryption key (CEK) and material description
27
+ * for use decrypting the key according to the Provider's specifications.
28
+ *
29
+ * @param string $encryptedCek Encrypted key to be decrypted by the Provider
30
+ * for use decrypting other data.
31
+ * @param string $materialDescription Material Description for use in
32
+ * decrypting the CEK.
33
+ * @param string $options Options for use in decrypting the CEK.
34
+ *
35
+ * @return string
36
+ */
37
+ public abstract function decryptCek($encryptedCek, $materialDescription, $options);
38
+ /**
39
+ * @param string $keySize Length of a cipher key in bits for generating a
40
+ * random content encryption key (CEK).
41
+ * @param array $context Context map needed for key encryption
42
+ * @param array $options Additional options to be used in CEK generation
43
+ *
44
+ * @return array
45
+ */
46
+ public abstract function generateCek($keySize, $context, $options);
47
+ /**
48
+ * @param string $openSslName Cipher OpenSSL name to use for generating
49
+ * an initialization vector.
50
+ *
51
+ * @return string
52
+ */
53
+ public function generateIv($openSslName)
54
+ {
55
+ return openssl_random_pseudo_bytes(openssl_cipher_iv_length($openSslName));
56
+ }
57
+ }
vendor/Aws3/Aws/Crypto/MetadataEnvelope.php CHANGED
@@ -21,7 +21,6 @@ class MetadataEnvelope implements \ArrayAccess, \IteratorAggregate, \JsonSeriali
21
  const KEY_WRAP_ALGORITHM_HEADER = 'x-amz-wrap-alg';
22
  const CONTENT_CRYPTO_SCHEME_HEADER = 'x-amz-cek-alg';
23
  const CRYPTO_TAG_LENGTH_HEADER = 'x-amz-tag-len';
24
- const UNENCRYPTED_CONTENT_MD5_HEADER = 'x-amz-unencrypted-content-md5';
25
  const UNENCRYPTED_CONTENT_LENGTH_HEADER = 'x-amz-unencrypted-content-length';
26
  private static $constants = [];
27
  public static function getConstantValues()
21
  const KEY_WRAP_ALGORITHM_HEADER = 'x-amz-wrap-alg';
22
  const CONTENT_CRYPTO_SCHEME_HEADER = 'x-amz-cek-alg';
23
  const CRYPTO_TAG_LENGTH_HEADER = 'x-amz-tag-len';
 
24
  const UNENCRYPTED_CONTENT_LENGTH_HEADER = 'x-amz-unencrypted-content-length';
25
  private static $constants = [];
26
  public static function getConstantValues()
vendor/Aws3/Aws/Crypto/Polyfill/AesGcm.php ADDED
@@ -0,0 +1,163 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Polyfill;
4
+
5
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\CryptoPolyfillException;
6
+ use InvalidArgumentException;
7
+ use RangeException;
8
+ /**
9
+ * Class AesGcm
10
+ *
11
+ * This provides a polyfill for AES-GCM encryption/decryption, with caveats:
12
+ *
13
+ * 1. Only 96-bit nonces are supported.
14
+ * 2. Only 128-bit authentication tags are supported. (i.e. non-truncated)
15
+ *
16
+ * Supports AES key sizes of 128-bit, 192-bit, and 256-bit.
17
+ *
18
+ * @package Aws\Crypto\Polyfill
19
+ */
20
+ class AesGcm
21
+ {
22
+ use NeedsTrait;
23
+ /** @var Key $aesKey */
24
+ private $aesKey;
25
+ /** @var int $keySize */
26
+ private $keySize;
27
+ /** @var int $blockSize */
28
+ protected $blockSize = 8192;
29
+ /**
30
+ * AesGcm constructor.
31
+ *
32
+ * @param Key $aesKey
33
+ * @param int $keySize
34
+ * @param int $blockSize
35
+ *
36
+ * @throws CryptoPolyfillException
37
+ * @throws InvalidArgumentException
38
+ * @throws RangeException
39
+ */
40
+ public function __construct(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Polyfill\Key $aesKey, $keySize = 256, $blockSize = 8192)
41
+ {
42
+ /* Preconditions: */
43
+ self::needs(\in_array($keySize, [128, 192, 256], true), "Key size must be 128, 192, or 256 bits; {$keySize} given", \InvalidArgumentException::class);
44
+ self::needs(\is_int($blockSize) && $blockSize > 0 && $blockSize <= PHP_INT_MAX, 'Block size must be a positive integer.', \RangeException::class);
45
+ self::needs($aesKey->length() << 3 === $keySize, 'Incorrect key size; expected ' . $keySize . ' bits, got ' . ($aesKey->length() << 3) . ' bits.');
46
+ $this->aesKey = $aesKey;
47
+ $this->keySize = $keySize;
48
+ }
49
+ /**
50
+ * Encryption interface for AES-GCM
51
+ *
52
+ * @param string $plaintext Message to be encrypted
53
+ * @param string $nonce Number to be used ONCE
54
+ * @param Key $key AES Key
55
+ * @param string $aad Additional authenticated data
56
+ * @param string &$tag Reference to variable to hold tag
57
+ * @param int $keySize Key size (bits)
58
+ * @param int $blockSize Block size (bytes) -- How much memory to buffer
59
+ * @return string
60
+ * @throws InvalidArgumentException
61
+ */
62
+ public static function encrypt($plaintext, $nonce, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Polyfill\Key $key, $aad, &$tag, $keySize = 256, $blockSize = 8192)
63
+ {
64
+ self::needs(self::strlen($nonce) === 12, 'Nonce must be exactly 12 bytes', \InvalidArgumentException::class);
65
+ $encryptor = new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Polyfill\AesGcm($key, $keySize, $blockSize);
66
+ list($aadLength, $gmac) = $encryptor->gmacInit($nonce, $aad);
67
+ $ciphertext = \openssl_encrypt($plaintext, "aes-{$encryptor->keySize}-ctr", $key->get(), OPENSSL_NO_PADDING | OPENSSL_RAW_DATA, $nonce . "\0\0\0\2");
68
+ /* Calculate auth tag in a streaming fashion to minimize memory usage: */
69
+ $ciphertextLength = self::strlen($ciphertext);
70
+ for ($i = 0; $i < $ciphertextLength; $i += $encryptor->blockSize) {
71
+ $cBlock = new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Polyfill\ByteArray(self::substr($ciphertext, $i, $encryptor->blockSize));
72
+ $gmac->update($cBlock);
73
+ }
74
+ $tag = $gmac->finish($aadLength, $ciphertextLength)->toString();
75
+ return $ciphertext;
76
+ }
77
+ /**
78
+ * Decryption interface for AES-GCM
79
+ *
80
+ * @param string $ciphertext Ciphertext to decrypt
81
+ * @param string $nonce Number to be used ONCE
82
+ * @param Key $key AES key
83
+ * @param string $aad Additional authenticated data
84
+ * @param string $tag Authentication tag
85
+ * @param int $keySize Key size (bits)
86
+ * @param int $blockSize Block size (bytes) -- How much memory to buffer
87
+ * @return string Plaintext
88
+ *
89
+ * @throws CryptoPolyfillException
90
+ * @throws InvalidArgumentException
91
+ */
92
+ public static function decrypt($ciphertext, $nonce, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Polyfill\Key $key, $aad, &$tag, $keySize = 256, $blockSize = 8192)
93
+ {
94
+ /* Precondition: */
95
+ self::needs(self::strlen($nonce) === 12, 'Nonce must be exactly 12 bytes', \InvalidArgumentException::class);
96
+ $encryptor = new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Polyfill\AesGcm($key, $keySize, $blockSize);
97
+ list($aadLength, $gmac) = $encryptor->gmacInit($nonce, $aad);
98
+ /* Calculate auth tag in a streaming fashion to minimize memory usage: */
99
+ $ciphertextLength = self::strlen($ciphertext);
100
+ for ($i = 0; $i < $ciphertextLength; $i += $encryptor->blockSize) {
101
+ $cBlock = new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Polyfill\ByteArray(self::substr($ciphertext, $i, $encryptor->blockSize));
102
+ $gmac->update($cBlock);
103
+ }
104
+ /* Validate auth tag in constant-time: */
105
+ $calc = $gmac->finish($aadLength, $ciphertextLength);
106
+ $expected = new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Polyfill\ByteArray($tag);
107
+ self::needs($calc->equals($expected), 'Invalid authentication tag');
108
+ /* Return plaintext if auth tag check succeeded: */
109
+ return \openssl_decrypt($ciphertext, "aes-{$encryptor->keySize}-ctr", $key->get(), OPENSSL_NO_PADDING | OPENSSL_RAW_DATA, $nonce . "\0\0\0\2");
110
+ }
111
+ /**
112
+ * Initialize a Gmac object with the nonce and this object's key.
113
+ *
114
+ * @param string $nonce Must be exactly 12 bytes long.
115
+ * @param string|null $aad
116
+ * @return array
117
+ */
118
+ protected function gmacInit($nonce, $aad = null)
119
+ {
120
+ $gmac = new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Polyfill\Gmac($this->aesKey, $nonce . "\0\0\0\1", $this->keySize);
121
+ $aadBlock = new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Polyfill\ByteArray($aad);
122
+ $aadLength = $aadBlock->count();
123
+ $gmac->update($aadBlock);
124
+ $gmac->flush();
125
+ return [$aadLength, $gmac];
126
+ }
127
+ /**
128
+ * Calculate the length of a string.
129
+ *
130
+ * Uses the appropriate PHP function without being brittle to
131
+ * mbstring.func_overload.
132
+ *
133
+ * @param string $string
134
+ * @return int
135
+ */
136
+ protected static function strlen($string)
137
+ {
138
+ if (\is_callable('\\mb_strlen')) {
139
+ return (int) \mb_strlen($string, '8bit');
140
+ }
141
+ return (int) \strlen($string);
142
+ }
143
+ /**
144
+ * Return a substring of the provided string.
145
+ *
146
+ * Uses the appropriate PHP function without being brittle to
147
+ * mbstring.func_overload.
148
+ *
149
+ * @param string $string
150
+ * @param int $offset
151
+ * @param int|null $length
152
+ * @return string
153
+ */
154
+ protected static function substr($string, $offset = 0, $length = null)
155
+ {
156
+ if (\is_callable('\\mb_substr')) {
157
+ return \mb_substr($string, $offset, $length, '8bit');
158
+ } elseif (!\is_null($length)) {
159
+ return \substr($string, $offset, $length);
160
+ }
161
+ return \substr($string, $offset);
162
+ }
163
+ }
vendor/Aws3/Aws/Crypto/Polyfill/ByteArray.php ADDED
@@ -0,0 +1,234 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Polyfill;
4
+
5
+ /**
6
+ * Class ByteArray
7
+ * @package Aws\Crypto\Polyfill
8
+ */
9
+ class ByteArray extends \SplFixedArray
10
+ {
11
+ use NeedsTrait;
12
+ /**
13
+ * ByteArray constructor.
14
+ *
15
+ * @param int|string|int[] $size
16
+ * If you pass in an integer, it creates a ByteArray of that size.
17
+ * If you pass in a string or array, it converts it to an array of
18
+ * integers between 0 and 255.
19
+ * @throws \InvalidArgumentException
20
+ */
21
+ public function __construct($size = 0)
22
+ {
23
+ $arr = null;
24
+ // Integer? This behaves just like SplFixedArray.
25
+ if (\is_array($size)) {
26
+ // Array? We need to pass the count to parent::__construct() then populate
27
+ $arr = $size;
28
+ $size = \count($arr);
29
+ } elseif (\is_string($size)) {
30
+ // We need to avoid mbstring.func_overload
31
+ if (\is_callable('\\mb_str_split')) {
32
+ $tmp = \mb_str_split($size, 1, '8bit');
33
+ } else {
34
+ $tmp = \str_split($size, 1);
35
+ }
36
+ // Let's convert each character to an 8-bit integer and store in $arr
37
+ $arr = [];
38
+ if (!empty($tmp)) {
39
+ foreach ($tmp as $t) {
40
+ if (strlen($t) < 1) {
41
+ continue;
42
+ }
43
+ $arr[] = \unpack('C', $t)[1] & 0xff;
44
+ }
45
+ }
46
+ $size = \count($arr);
47
+ } elseif ($size instanceof ByteArray) {
48
+ $arr = $size->toArray();
49
+ $size = $size->count();
50
+ } elseif (!\is_int($size)) {
51
+ throw new \InvalidArgumentException('Argument must be an integer, string, or array of integers.');
52
+ }
53
+ parent::__construct($size);
54
+ if (!empty($arr)) {
55
+ // Populate this object with values from constructor argument
56
+ foreach ($arr as $i => $v) {
57
+ $this->offsetSet($i, $v);
58
+ }
59
+ } else {
60
+ // Initialize to zero.
61
+ for ($i = 0; $i < $size; ++$i) {
62
+ $this->offsetSet($i, 0);
63
+ }
64
+ }
65
+ }
66
+ /**
67
+ * Encode an integer into a byte array. 32-bit (unsigned), big endian byte order.
68
+ *
69
+ * @param int $num
70
+ * @return self
71
+ */
72
+ public static function enc32be($num)
73
+ {
74
+ return new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Polyfill\ByteArray(\pack('N', $num));
75
+ }
76
+ /**
77
+ * @param ByteArray $other
78
+ * @return bool
79
+ */
80
+ public function equals(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Polyfill\ByteArray $other)
81
+ {
82
+ if ($this->count() !== $other->count()) {
83
+ return false;
84
+ }
85
+ $d = 0;
86
+ for ($i = $this->count() - 1; $i >= 0; --$i) {
87
+ $d |= $this[$i] ^ $other[$i];
88
+ }
89
+ return $d === 0;
90
+ }
91
+ /**
92
+ * @param ByteArray $array
93
+ * @return ByteArray
94
+ */
95
+ public function exclusiveOr(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Polyfill\ByteArray $array)
96
+ {
97
+ self::needs($this->count() === $array->count(), 'Both ByteArrays must be equal size for exclusiveOr()');
98
+ $out = clone $this;
99
+ for ($i = 0; $i < $this->count(); ++$i) {
100
+ $out[$i] = $array[$i] ^ $out[$i];
101
+ }
102
+ return $out;
103
+ }
104
+ /**
105
+ * Returns a new ByteArray incremented by 1 (big endian byte order).
106
+ *
107
+ * @param int $increase
108
+ * @return self
109
+ */
110
+ public function getIncremented($increase = 1)
111
+ {
112
+ $clone = clone $this;
113
+ $index = $clone->count();
114
+ while ($index > 0) {
115
+ --$index;
116
+ $tmp = $clone[$index] + $increase & PHP_INT_MAX;
117
+ $clone[$index] = $tmp & 0xff;
118
+ $increase = $tmp >> 8;
119
+ }
120
+ return $clone;
121
+ }
122
+ /**
123
+ * Sets a value. See SplFixedArray for more.
124
+ *
125
+ * @param int $index
126
+ * @param int $newval
127
+ * @return void
128
+ */
129
+ public function offsetSet($index, $newval)
130
+ {
131
+ parent::offsetSet($index, $newval & 0xff);
132
+ }
133
+ /**
134
+ * Return a copy of this ByteArray, bitshifted to the right by 1.
135
+ * Used in Gmac.
136
+ *
137
+ * @return self
138
+ */
139
+ public function rshift()
140
+ {
141
+ $out = clone $this;
142
+ for ($j = $this->count() - 1; $j > 0; --$j) {
143
+ $out[$j] = ($out[$j - 1] & 1) << 7 | $out[$j] >> 1;
144
+ }
145
+ $out[0] >>= 1;
146
+ return $out;
147
+ }
148
+ /**
149
+ * Constant-time conditional select. This is meant to read like a ternary operator.
150
+ *
151
+ * $z = ByteArray::select(1, $x, $y); // $z is equal to $x
152
+ * $z = ByteArray::select(0, $x, $y); // $z is equal to $y
153
+ *
154
+ * @param int $select
155
+ * @param ByteArray $left
156
+ * @param ByteArray $right
157
+ * @return ByteArray
158
+ */
159
+ public static function select($select, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Polyfill\ByteArray $left, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Polyfill\ByteArray $right)
160
+ {
161
+ self::needs($left->count() === $right->count(), 'Both ByteArrays must be equal size for select()');
162
+ $rightLength = $right->count();
163
+ $out = clone $right;
164
+ $mask = -($select & 1) & 0xff;
165
+ for ($i = 0; $i < $rightLength; $i++) {
166
+ $out[$i] = $out[$i] ^ ($left[$i] ^ $right[$i]) & $mask;
167
+ }
168
+ return $out;
169
+ }
170
+ /**
171
+ * Overwrite values of this ByteArray based on a separate ByteArray, with
172
+ * a given starting offset and length.
173
+ *
174
+ * See JavaScript's Uint8Array.set() for more information.
175
+ *
176
+ * @param ByteArray $input
177
+ * @param int $offset
178
+ * @param int|null $length
179
+ * @return self
180
+ */
181
+ public function set(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Polyfill\ByteArray $input, $offset = 0, $length = null)
182
+ {
183
+ self::needs(is_int($offset) && $offset >= 0, 'Offset must be a positive integer or zero');
184
+ if (is_null($length)) {
185
+ $length = $input->count();
186
+ }
187
+ $i = 0;
188
+ $j = $offset;
189
+ while ($i < $length && $j < $this->count()) {
190
+ $this[$j] = $input[$i];
191
+ ++$i;
192
+ ++$j;
193
+ }
194
+ return $this;
195
+ }
196
+ /**
197
+ * Returns a slice of this ByteArray.
198
+ *
199
+ * @param int $start
200
+ * @param null $length
201
+ * @return self
202
+ */
203
+ public function slice($start = 0, $length = null)
204
+ {
205
+ return new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Polyfill\ByteArray(\array_slice($this->toArray(), $start, $length));
206
+ }
207
+ /**
208
+ * Mutates the current state and sets all values to zero.
209
+ *
210
+ * @return void
211
+ */
212
+ public function zeroize()
213
+ {
214
+ for ($i = $this->count() - 1; $i >= 0; --$i) {
215
+ $this->offsetSet($i, 0);
216
+ }
217
+ }
218
+ /**
219
+ * Converts the ByteArray to a raw binary string.
220
+ *
221
+ * @return string
222
+ */
223
+ public function toString()
224
+ {
225
+ $count = $this->count();
226
+ if ($count === 0) {
227
+ return '';
228
+ }
229
+ $args = $this->toArray();
230
+ \array_unshift($args, \str_repeat('C', $count));
231
+ // constant-time, PHP <5.6 equivalent to pack('C*', ...$args);
232
+ return \call_user_func_array('\\pack', $args);
233
+ }
234
+ }
vendor/Aws3/Aws/Crypto/Polyfill/Gmac.php ADDED
@@ -0,0 +1,175 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Polyfill;
4
+
5
+ /**
6
+ * Class Gmac
7
+ *
8
+ * @package Aws\Crypto\Polyfill
9
+ */
10
+ class Gmac
11
+ {
12
+ use NeedsTrait;
13
+ const BLOCK_SIZE = 16;
14
+ /** @var ByteArray $buf */
15
+ protected $buf;
16
+ /** @var int $bufLength */
17
+ protected $bufLength = 0;
18
+ /** @var ByteArray $h */
19
+ protected $h;
20
+ /** @var ByteArray $hf */
21
+ protected $hf;
22
+ /** @var Key $key */
23
+ protected $key;
24
+ /** @var ByteArray $x */
25
+ protected $x;
26
+ /**
27
+ * Gmac constructor.
28
+ *
29
+ * @param Key $aesKey
30
+ * @param string $nonce
31
+ * @param int $keySize
32
+ */
33
+ public function __construct(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Polyfill\Key $aesKey, $nonce, $keySize = 256)
34
+ {
35
+ $this->buf = new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Polyfill\ByteArray(16);
36
+ $this->h = new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Polyfill\ByteArray(\openssl_encrypt(\str_repeat("\0", 16), "aes-{$keySize}-ecb", $aesKey->get(), OPENSSL_RAW_DATA | OPENSSL_NO_PADDING));
37
+ $this->key = $aesKey;
38
+ $this->x = new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Polyfill\ByteArray(16);
39
+ $this->hf = new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Polyfill\ByteArray(\openssl_encrypt($nonce, "aes-{$keySize}-ecb", $aesKey->get(), OPENSSL_RAW_DATA | OPENSSL_NO_PADDING));
40
+ }
41
+ /**
42
+ * Update the object with some data.
43
+ *
44
+ * This method mutates this Gmac object.
45
+ *
46
+ * @param ByteArray $blocks
47
+ * @return self
48
+ */
49
+ public function update(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Polyfill\ByteArray $blocks)
50
+ {
51
+ if ($blocks->count() + $this->bufLength < self::BLOCK_SIZE) {
52
+ // Write to internal buffer until we reach enough to write.
53
+ $this->buf->set($blocks, $this->bufLength);
54
+ $this->bufLength += $blocks->count();
55
+ return $this;
56
+ }
57
+ // Process internal buffer first.
58
+ if ($this->bufLength > 0) {
59
+ // 0 <= state.buf_len < BLOCK_SIZE is an invariant
60
+ $tmp = new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Polyfill\ByteArray(self::BLOCK_SIZE);
61
+ $tmp->set($this->buf->slice(0, $this->bufLength));
62
+ $remainingBlockLength = self::BLOCK_SIZE - $this->bufLength;
63
+ $tmp->set($blocks->slice(0, $remainingBlockLength), $this->bufLength);
64
+ $blocks = $blocks->slice($remainingBlockLength);
65
+ $this->bufLength = 0;
66
+ $this->x = $this->blockMultiply($this->x->exclusiveOr($tmp), $this->h);
67
+ }
68
+ // Process full blocks.
69
+ $numBlocks = $blocks->count() >> 4;
70
+ for ($i = 0; $i < $numBlocks; ++$i) {
71
+ $tmp = $blocks->slice($i << 4, self::BLOCK_SIZE);
72
+ $this->x = $this->blockMultiply($this->x->exclusiveOr($tmp), $this->h);
73
+ }
74
+ $last = $numBlocks << 4;
75
+ // Zero-fill buffer
76
+ for ($i = 0; $i < 16; ++$i) {
77
+ $this->buf[$i] = 0;
78
+ }
79
+ // Feed leftover into buffer.
80
+ if ($last < $blocks->count()) {
81
+ $tmp = $blocks->slice($last);
82
+ $this->buf->set($tmp);
83
+ $this->bufLength += $blocks->count() - $last;
84
+ }
85
+ return $this;
86
+ }
87
+ /**
88
+ * Finish processing the authentication tag.
89
+ *
90
+ * This method mutates this Gmac object (effectively resetting it).
91
+ *
92
+ * @param int $aadLength
93
+ * @param int $ciphertextLength
94
+ * @return ByteArray
95
+ */
96
+ public function finish($aadLength, $ciphertextLength)
97
+ {
98
+ $lengthBlock = new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Polyfill\ByteArray(16);
99
+ $state = $this->flush();
100
+ // AES-GCM expects bit lengths, not byte lengths.
101
+ $lengthBlock->set(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Polyfill\ByteArray::enc32be($aadLength >> 29), 0);
102
+ $lengthBlock->set(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Polyfill\ByteArray::enc32be($aadLength << 3), 4);
103
+ $lengthBlock->set(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Polyfill\ByteArray::enc32be($ciphertextLength >> 29), 8);
104
+ $lengthBlock->set(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Polyfill\ByteArray::enc32be($ciphertextLength << 3), 12);
105
+ $state->update($lengthBlock);
106
+ $output = $state->x->exclusiveOr($state->hf);
107
+ // Zeroize the internal values as a best-effort.
108
+ $state->buf->zeroize();
109
+ $state->x->zeroize();
110
+ $state->h->zeroize();
111
+ $state->hf->zeroize();
112
+ return $output;
113
+ }
114
+ /**
115
+ * Get a specific bit from the provided array, at the given index.
116
+ *
117
+ * [01234567], 8+[01234567], 16+[01234567], ...
118
+ *
119
+ * @param ByteArray $x
120
+ * @param int $i
121
+ * @return int
122
+ */
123
+ protected function bit(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Polyfill\ByteArray $x, $i)
124
+ {
125
+ $byte = $i >> 3;
126
+ return $x[$byte] >> (7 - $i & 7) & 1;
127
+ }
128
+ /**
129
+ * Galois Field Multiplication
130
+ *
131
+ * This function is the critical path that must be constant-time in order to
132
+ * avoid timing side-channels against AES-GCM.
133
+ *
134
+ * The contents of each are always calculated, regardless of the branching
135
+ * condition, to prevent another kind of timing leak.
136
+ *
137
+ * @param ByteArray $x
138
+ * @param ByteArray $y
139
+ * @return ByteArray
140
+ */
141
+ protected function blockMultiply(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Polyfill\ByteArray $x, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Polyfill\ByteArray $y)
142
+ {
143
+ static $fieldPolynomial = null;
144
+ if (!$fieldPolynomial) {
145
+ $fieldPolynomial = new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Polyfill\ByteArray([0xe1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);
146
+ }
147
+ self::needs($x->count() === 16, 'Argument 1 must be a ByteArray of exactly 16 bytes');
148
+ self::needs($y->count() === 16, 'Argument 2 must be a ByteArray of exactly 16 bytes');
149
+ $v = clone $y;
150
+ $z = new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Polyfill\ByteArray(16);
151
+ for ($i = 0; $i < 128; ++$i) {
152
+ // if ($b) $z = $z->exclusiveOr($v);
153
+ $b = $this->bit($x, $i);
154
+ $z = \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Polyfill\ByteArray::select($b, $z->exclusiveOr($v), $z);
155
+ // if ($b) $v = $v->exclusiveOr($fieldPolynomial);
156
+ $b = $v[15] & 1;
157
+ $v = $v->rshift();
158
+ $v = \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Polyfill\ByteArray::select($b, $v->exclusiveOr($fieldPolynomial), $v);
159
+ }
160
+ return $z;
161
+ }
162
+ /**
163
+ * Finish processing any leftover bytes in the internal buffer.
164
+ *
165
+ * @return self
166
+ */
167
+ public function flush()
168
+ {
169
+ if ($this->bufLength !== 0) {
170
+ $this->x = $this->blockMultiply($this->x->exclusiveOr($this->buf), $this->h);
171
+ $this->bufLength = 0;
172
+ }
173
+ return $this;
174
+ }
175
+ }
vendor/Aws3/Aws/Crypto/Polyfill/Key.php ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Polyfill;
4
+
5
+ /**
6
+ * Class Key
7
+ *
8
+ * Wraps a string to keep it hidden from stack traces.
9
+ *
10
+ * @package Aws\Crypto\Polyfill
11
+ */
12
+ class Key
13
+ {
14
+ /**
15
+ * @var string $internalString
16
+ */
17
+ private $internalString;
18
+ /**
19
+ * Hide contents of
20
+ *
21
+ * @return array
22
+ */
23
+ public function __debugInfo()
24
+ {
25
+ return [];
26
+ }
27
+ /**
28
+ * Key constructor.
29
+ * @param string $str
30
+ */
31
+ public function __construct($str)
32
+ {
33
+ $this->internalString = $str;
34
+ }
35
+ /**
36
+ * Defense in depth:
37
+ *
38
+ * PHP 7.2 includes the Sodium cryptography library, which (among other things)
39
+ * exposes a function called sodium_memzero() that we can use to zero-fill strings
40
+ * to minimize the risk of sensitive cryptographic materials persisting in memory.
41
+ *
42
+ * If this function is not available, we XOR the string in-place with itself as a
43
+ * best-effort attempt.
44
+ */
45
+ public function __destruct()
46
+ {
47
+ if (extension_loaded('sodium') && function_exists('sodium_memzero')) {
48
+ try {
49
+ \sodium_memzero($this->internalString);
50
+ } catch (\SodiumException $ex) {
51
+ // This is a best effort, but does not provide the same guarantees as sodium_memzero():
52
+ $this->internalString ^= $this->internalString;
53
+ }
54
+ }
55
+ }
56
+ /**
57
+ * @return string
58
+ */
59
+ public function get()
60
+ {
61
+ return $this->internalString;
62
+ }
63
+ /**
64
+ * @return int
65
+ */
66
+ public function length()
67
+ {
68
+ if (\is_callable('\\mb_strlen')) {
69
+ return (int) \mb_strlen($this->internalString, '8bit');
70
+ }
71
+ return (int) \strlen($this->internalString);
72
+ }
73
+ }
vendor/Aws3/Aws/Crypto/Polyfill/NeedsTrait.php ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Polyfill;
4
+
5
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\CryptoPolyfillException;
6
+ /**
7
+ * Trait NeedsTrait
8
+ * @package Aws\Crypto\Polyfill
9
+ */
10
+ trait NeedsTrait
11
+ {
12
+ /**
13
+ * Preconditions, postconditions, and loop invariants are very
14
+ * useful for safe programing. They also document the specifications.
15
+ * This function is to help simplify the semantic burden of parsing
16
+ * these constructions.
17
+ *
18
+ * Instead of constructions like
19
+ * if (!(GOOD CONDITION)) {
20
+ * throw new \Exception('condition not true');
21
+ * }
22
+ *
23
+ * you can write:
24
+ * needs(GOOD CONDITION, 'condition not true');
25
+ * @param $condition
26
+ * @param $errorMessage
27
+ * @param null $exceptionClass
28
+ */
29
+ public static function needs($condition, $errorMessage, $exceptionClass = null)
30
+ {
31
+ if (!$condition) {
32
+ if (!$exceptionClass) {
33
+ $exceptionClass = \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\CryptoPolyfillException::class;
34
+ }
35
+ throw new $exceptionClass($errorMessage);
36
+ }
37
+ }
38
+ }
vendor/Aws3/Aws/Endpoint/PartitionEndpointProvider.php CHANGED
@@ -98,10 +98,10 @@ class PartitionEndpointProvider
98
  $prefixGroups = $prefixData['prefix-groups'];
99
  foreach ($data["partitions"] as $index => $partition) {
100
  foreach ($prefixGroups as $current => $old) {
101
- $serviceData = \DeliciousBrains\WP_Offload_Media\Aws3\JmesPath\Env::search("services.{$current}", $partition);
102
  if (!empty($serviceData)) {
103
  foreach ($old as $prefix) {
104
- if (empty(\DeliciousBrains\WP_Offload_Media\Aws3\JmesPath\Env::search("services.{$prefix}", $partition))) {
105
  $data["partitions"][$index]["services"][$prefix] = $serviceData;
106
  }
107
  }
98
  $prefixGroups = $prefixData['prefix-groups'];
99
  foreach ($data["partitions"] as $index => $partition) {
100
  foreach ($prefixGroups as $current => $old) {
101
+ $serviceData = \DeliciousBrains\WP_Offload_Media\Aws3\JmesPath\Env::search("services.\"{$current}\"", $partition);
102
  if (!empty($serviceData)) {
103
  foreach ($old as $prefix) {
104
+ if (empty(\DeliciousBrains\WP_Offload_Media\Aws3\JmesPath\Env::search("services.\"{$prefix}\"", $partition))) {
105
  $data["partitions"][$index]["services"][$prefix] = $serviceData;
106
  }
107
  }
vendor/Aws3/Aws/EndpointDiscovery/ConfigurationProvider.php CHANGED
@@ -69,7 +69,11 @@ class ConfigurationProvider extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\A
69
  */
70
  public static function defaultProvider(array $config = [])
71
  {
72
- $configProviders = [self::env(), self::ini(), self::fallback()];
 
 
 
 
73
  $memo = self::memoize(call_user_func_array('self::chain', $configProviders));
74
  if (isset($config['endpoint_discovery']) && $config['endpoint_discovery'] instanceof CacheInterface) {
75
  return self::cache($memo, $config['endpoint_discovery'], self::$cacheKey);
@@ -97,14 +101,30 @@ class ConfigurationProvider extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\A
97
  };
98
  }
99
  /**
100
- * Fallback config options when other sources are not set.
 
 
 
101
  *
 
102
  * @return callable
103
  */
104
- public static function fallback()
105
  {
106
- return function () {
107
- return \DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Promise\promise_for(new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\EndpointDiscovery\Configuration(self::DEFAULT_ENABLED, self::DEFAULT_CACHE_LIMIT));
 
 
 
 
 
 
 
 
 
 
 
 
108
  };
109
  }
110
  /**
69
  */
70
  public static function defaultProvider(array $config = [])
71
  {
72
+ $configProviders = [self::env()];
73
+ if (!isset($config['use_aws_shared_config_files']) || $config['use_aws_shared_config_files'] != false) {
74
+ $configProviders[] = self::ini();
75
+ }
76
+ $configProviders[] = self::fallback($config);
77
  $memo = self::memoize(call_user_func_array('self::chain', $configProviders));
78
  if (isset($config['endpoint_discovery']) && $config['endpoint_discovery'] instanceof CacheInterface) {
79
  return self::cache($memo, $config['endpoint_discovery'], self::$cacheKey);
101
  };
102
  }
103
  /**
104
+ * Fallback config options when other sources are not set. Will check the
105
+ * service model for any endpoint discovery required operations, and enable
106
+ * endpoint discovery in that case. If no required operations found, will use
107
+ * the class default values.
108
  *
109
+ * @param array $config
110
  * @return callable
111
  */
112
+ public static function fallback($config = [])
113
  {
114
+ $enabled = self::DEFAULT_ENABLED;
115
+ if (!empty($config['api_provider']) && !empty($config['service']) && !empty($config['version'])) {
116
+ $provider = $config['api_provider'];
117
+ $apiData = $provider('api', $config['service'], $config['version']);
118
+ if (!empty($apiData['operations'])) {
119
+ foreach ($apiData['operations'] as $operation) {
120
+ if (!empty($operation['endpointdiscovery']['required'])) {
121
+ $enabled = true;
122
+ }
123
+ }
124
+ }
125
+ }
126
+ return function () use($enabled) {
127
+ return \DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Promise\promise_for(new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\EndpointDiscovery\Configuration($enabled, self::DEFAULT_CACHE_LIMIT));
128
  };
129
  }
130
  /**
vendor/Aws3/Aws/EndpointDiscovery/EndpointDiscoveryMiddleware.php CHANGED
@@ -47,8 +47,11 @@ class EndpointDiscoveryMiddleware
47
  if (isset($op['endpointdiscovery'])) {
48
  $config = \DeliciousBrains\WP_Offload_Media\Aws3\Aws\EndpointDiscovery\ConfigurationProvider::unwrap($this->config);
49
  $isRequired = !empty($op['endpointdiscovery']['required']);
50
- // Continue only if required by operation or enabled by config
51
- if ($isRequired || $config->isEnabled()) {
 
 
 
52
  if (isset($op['endpointoperation'])) {
53
  throw new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\UnresolvedEndpointException('This operation is ' . 'contradictorily marked both as using endpoint discovery ' . 'and being the endpoint discovery operation. Please ' . 'verify the accuracy of your model files.');
54
  }
47
  if (isset($op['endpointdiscovery'])) {
48
  $config = \DeliciousBrains\WP_Offload_Media\Aws3\Aws\EndpointDiscovery\ConfigurationProvider::unwrap($this->config);
49
  $isRequired = !empty($op['endpointdiscovery']['required']);
50
+ if ($isRequired && !$config->isEnabled()) {
51
+ throw new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\UnresolvedEndpointException('This operation ' . 'requires the use of endpoint discovery, but this has ' . 'been disabled in the configuration. Enable endpoint ' . 'discovery or use a different operation.');
52
+ }
53
+ // Continue only if enabled by config
54
+ if ($config->isEnabled()) {
55
  if (isset($op['endpointoperation'])) {
56
  throw new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\UnresolvedEndpointException('This operation is ' . 'contradictorily marked both as using endpoint discovery ' . 'and being the endpoint discovery operation. Please ' . 'verify the accuracy of your model files.');
57
  }
vendor/Aws3/Aws/Exception/AwsException.php CHANGED
@@ -2,6 +2,7 @@
2
 
3
  namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception;
4
 
 
5
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface;
6
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\HasDataTrait;
7
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\HasMonitoringEventsTrait;
@@ -26,6 +27,7 @@ class AwsException extends \RuntimeException implements \DeliciousBrains\WP_Offl
26
  private $requestId;
27
  private $errorType;
28
  private $errorCode;
 
29
  private $connectionError;
30
  private $transferInfo;
31
  private $errorMessage;
@@ -45,6 +47,7 @@ class AwsException extends \RuntimeException implements \DeliciousBrains\WP_Offl
45
  $this->requestId = isset($context['request_id']) ? $context['request_id'] : null;
46
  $this->errorType = isset($context['type']) ? $context['type'] : null;
47
  $this->errorCode = isset($context['code']) ? $context['code'] : null;
 
48
  $this->connectionError = !empty($context['connection_error']);
49
  $this->result = isset($context['result']) ? $context['result'] : null;
50
  $this->transferInfo = isset($context['transfer_stats']) ? $context['transfer_stats'] : [];
@@ -158,6 +161,15 @@ class AwsException extends \RuntimeException implements \DeliciousBrains\WP_Offl
158
  {
159
  return $this->errorCode;
160
  }
 
 
 
 
 
 
 
 
 
161
  /**
162
  * Get all transfer information as an associative array if no $name
163
  * argument is supplied, or gets a specific transfer statistic if
2
 
3
  namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception;
4
 
5
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Shape;
6
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface;
7
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\HasDataTrait;
8
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\HasMonitoringEventsTrait;
27
  private $requestId;
28
  private $errorType;
29
  private $errorCode;
30
+ private $errorShape;
31
  private $connectionError;
32
  private $transferInfo;
33
  private $errorMessage;
47
  $this->requestId = isset($context['request_id']) ? $context['request_id'] : null;
48
  $this->errorType = isset($context['type']) ? $context['type'] : null;
49
  $this->errorCode = isset($context['code']) ? $context['code'] : null;
50
+ $this->errorShape = isset($context['error_shape']) ? $context['error_shape'] : null;
51
  $this->connectionError = !empty($context['connection_error']);
52
  $this->result = isset($context['result']) ? $context['result'] : null;
53
  $this->transferInfo = isset($context['transfer_stats']) ? $context['transfer_stats'] : [];
161
  {
162
  return $this->errorCode;
163
  }
164
+ /**
165
+ * Get the AWS error shape.
166
+ *
167
+ * @return Shape|null Returns null if no response was received
168
+ */
169
+ public function getAwsErrorShape()
170
+ {
171
+ return $this->errorShape;
172
+ }
173
  /**
174
  * Get all transfer information as an associative array if no $name
175
  * argument is supplied, or gets a specific transfer statistic if
vendor/Aws3/Aws/Exception/CryptoException.php ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception;
4
+
5
+ /**
6
+ * This class represents exceptions related to logic surrounding client-side
7
+ * encryption usage.
8
+ */
9
+ class CryptoException extends \RuntimeException
10
+ {
11
+ }
vendor/Aws3/Aws/Exception/CryptoPolyfillException.php ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception;
4
+
5
+ /**
6
+ * Class CryptoPolyfillException
7
+ * @package Aws\Exception
8
+ */
9
+ class CryptoPolyfillException extends \RuntimeException
10
+ {
11
+ }
vendor/Aws3/Aws/Retry/Configuration.php ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Retry;
4
+
5
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Retry\Exception\ConfigurationException;
6
+ class Configuration implements \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Retry\ConfigurationInterface
7
+ {
8
+ private $mode;
9
+ private $maxAttempts;
10
+ private $validModes = ['legacy', 'standard', 'adaptive'];
11
+ public function __construct($mode = 'legacy', $maxAttempts = 3)
12
+ {
13
+ $mode = strtolower($mode);
14
+ if (!in_array($mode, $this->validModes)) {
15
+ throw new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Retry\Exception\ConfigurationException("'{$mode}' is not a valid mode." . " The mode has to be 'legacy', 'standard', or 'adaptive'.");
16
+ }
17
+ if (!is_numeric($maxAttempts) || intval($maxAttempts) != $maxAttempts || $maxAttempts < 1) {
18
+ throw new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Retry\Exception\ConfigurationException("The 'maxAttempts' parameter has" . " to be an integer >= 1.");
19
+ }
20
+ $this->mode = $mode;
21
+ $this->maxAttempts = intval($maxAttempts);
22
+ }
23
+ /**
24
+ * {@inheritdoc}
25
+ */
26
+ public function getMode()
27
+ {
28
+ return $this->mode;
29
+ }
30
+ /**
31
+ * {@inheritdoc}
32
+ */
33
+ public function getMaxAttempts()
34
+ {
35
+ return $this->maxAttempts;
36
+ }
37
+ /**
38
+ * {@inheritdoc}
39
+ */
40
+ public function toArray()
41
+ {
42
+ return ['mode' => $this->getMode(), 'max_attempts' => $this->getMaxAttempts()];
43
+ }
44
+ }
vendor/Aws3/Aws/Retry/ConfigurationInterface.php ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Retry;
4
+
5
+ /**
6
+ * Provides access to retry configuration
7
+ */
8
+ interface ConfigurationInterface
9
+ {
10
+ /**
11
+ * Returns the retry mode. Available modes include 'legacy', 'standard', and
12
+ * 'adapative'.
13
+ *
14
+ * @return string
15
+ */
16
+ public function getMode();
17
+ /**
18
+ * Returns the maximum number of attempts that will be used for a request
19
+ *
20
+ * @return string
21
+ */
22
+ public function getMaxAttempts();
23
+ /**
24
+ * Returns the configuration as an associative array
25
+ *
26
+ * @return array
27
+ */
28
+ public function toArray();
29
+ }
vendor/Aws3/Aws/Retry/ConfigurationProvider.php ADDED
@@ -0,0 +1,177 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Retry;
4
+
5
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\AbstractConfigurationProvider;
6
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\CacheInterface;
7
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\ConfigurationProviderInterface;
8
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Retry\Exception\ConfigurationException;
9
+ use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Promise;
10
+ use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Promise\PromiseInterface;
11
+ /**
12
+ * A configuration provider is a function that returns a promise that is
13
+ * fulfilled with a {@see \Aws\Retry\ConfigurationInterface}
14
+ * or rejected with an {@see \Aws\Retry\Exception\ConfigurationException}.
15
+ *
16
+ * <code>
17
+ * use Aws\Sts\RegionalEndpoints\ConfigurationProvider;
18
+ * $provider = ConfigurationProvider::defaultProvider();
19
+ * // Returns a ConfigurationInterface or throws.
20
+ * $config = $provider()->wait();
21
+ * </code>
22
+ *
23
+ * Configuration providers can be composed to create configuration using
24
+ * conditional logic that can create different configurations in different
25
+ * environments. You can compose multiple providers into a single provider using
26
+ * {@see \Aws\Retry\ConfigurationProvider::chain}. This function
27
+ * accepts providers as variadic arguments and returns a new function that will
28
+ * invoke each provider until a successful configuration is returned.
29
+ *
30
+ * <code>
31
+ * // First try an INI file at this location.
32
+ * $a = ConfigurationProvider::ini(null, '/path/to/file.ini');
33
+ * // Then try an INI file at this location.
34
+ * $b = ConfigurationProvider::ini(null, '/path/to/other-file.ini');
35
+ * // Then try loading from environment variables.
36
+ * $c = ConfigurationProvider::env();
37
+ * // Combine the three providers together.
38
+ * $composed = ConfigurationProvider::chain($a, $b, $c);
39
+ * // Returns a promise that is fulfilled with a configuration or throws.
40
+ * $promise = $composed();
41
+ * // Wait on the configuration to resolve.
42
+ * $config = $promise->wait();
43
+ * </code>
44
+ */
45
+ class ConfigurationProvider extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\AbstractConfigurationProvider implements \DeliciousBrains\WP_Offload_Media\Aws3\Aws\ConfigurationProviderInterface
46
+ {
47
+ const DEFAULT_MAX_ATTEMPTS = 3;
48
+ const DEFAULT_MODE = 'legacy';
49
+ const ENV_MAX_ATTEMPTS = 'AWS_MAX_ATTEMPTS';
50
+ const ENV_MODE = 'AWS_RETRY_MODE';
51
+ const ENV_PROFILE = 'AWS_PROFILE';
52
+ const INI_MAX_ATTEMPTS = 'max_attempts';
53
+ const INI_MODE = 'retry_mode';
54
+ public static $cacheKey = 'aws_retries_config';
55
+ protected static $interfaceClass = \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Retry\ConfigurationInterface::class;
56
+ protected static $exceptionClass = \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Retry\Exception\ConfigurationException::class;
57
+ /**
58
+ * Create a default config provider that first checks for environment
59
+ * variables, then checks for a specified profile in the environment-defined
60
+ * config file location (env variable is 'AWS_CONFIG_FILE', file location
61
+ * defaults to ~/.aws/config), then checks for the "default" profile in the
62
+ * environment-defined config file location, and failing those uses a default
63
+ * fallback set of configuration options.
64
+ *
65
+ * This provider is automatically wrapped in a memoize function that caches
66
+ * previously provided config options.
67
+ *
68
+ * @param array $config
69
+ *
70
+ * @return callable
71
+ */
72
+ public static function defaultProvider(array $config = [])
73
+ {
74
+ $configProviders = [self::env()];
75
+ if (!isset($config['use_aws_shared_config_files']) || $config['use_aws_shared_config_files'] != false) {
76
+ $configProviders[] = self::ini();
77
+ }
78
+ $configProviders[] = self::fallback();
79
+ $memo = self::memoize(call_user_func_array('self::chain', $configProviders));
80
+ if (isset($config['retries']) && $config['retries'] instanceof CacheInterface) {
81
+ return self::cache($memo, $config['retries'], self::$cacheKey);
82
+ }
83
+ return $memo;
84
+ }
85
+ /**
86
+ * Provider that creates config from environment variables.
87
+ *
88
+ * @return callable
89
+ */
90
+ public static function env()
91
+ {
92
+ return function () {
93
+ // Use config from environment variables, if available
94
+ $mode = getenv(self::ENV_MODE);
95
+ $maxAttempts = getenv(self::ENV_MAX_ATTEMPTS) ? getenv(self::ENV_MAX_ATTEMPTS) : self::DEFAULT_MAX_ATTEMPTS;
96
+ if (!empty($mode)) {
97
+ return \DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Promise\promise_for(new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Retry\Configuration($mode, $maxAttempts));
98
+ }
99
+ return self::reject('Could not find environment variable config' . ' in ' . self::ENV_MODE);
100
+ };
101
+ }
102
+ /**
103
+ * Fallback config options when other sources are not set.
104
+ *
105
+ * @return callable
106
+ */
107
+ public static function fallback()
108
+ {
109
+ return function () {
110
+ return \DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Promise\promise_for(new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Retry\Configuration(self::DEFAULT_MODE, self::DEFAULT_MAX_ATTEMPTS));
111
+ };
112
+ }
113
+ /**
114
+ * Config provider that creates config using a config file whose location
115
+ * is specified by an environment variable 'AWS_CONFIG_FILE', defaulting to
116
+ * ~/.aws/config if not specified
117
+ *
118
+ * @param string|null $profile Profile to use. If not specified will use
119
+ * the "default" profile.
120
+ * @param string|null $filename If provided, uses a custom filename rather
121
+ * than looking in the default directory.
122
+ *
123
+ * @return callable
124
+ */
125
+ public static function ini($profile = null, $filename = null)
126
+ {
127
+ $filename = $filename ?: self::getDefaultConfigFilename();
128
+ $profile = $profile ?: (getenv(self::ENV_PROFILE) ?: 'default');
129
+ return function () use($profile, $filename) {
130
+ if (!is_readable($filename)) {
131
+ return self::reject("Cannot read configuration from {$filename}");
132
+ }
133
+ $data = \DeliciousBrains\WP_Offload_Media\Aws3\Aws\parse_ini_file($filename, true);
134
+ if ($data === false) {
135
+ return self::reject("Invalid config file: {$filename}");
136
+ }
137
+ if (!isset($data[$profile])) {
138
+ return self::reject("'{$profile}' not found in config file");
139
+ }
140
+ if (!isset($data[$profile][self::INI_MODE])) {
141
+ return self::reject("Required retry config values\n not present in INI profile '{$profile}' ({$filename})");
142
+ }
143
+ $maxAttempts = isset($data[$profile][self::INI_MAX_ATTEMPTS]) ? $data[$profile][self::INI_MAX_ATTEMPTS] : self::DEFAULT_MAX_ATTEMPTS;
144
+ return \DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Promise\promise_for(new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Retry\Configuration($data[$profile][self::INI_MODE], $maxAttempts));
145
+ };
146
+ }
147
+ /**
148
+ * Unwraps a configuration object in whatever valid form it is in,
149
+ * always returning a ConfigurationInterface object.
150
+ *
151
+ * @param mixed $config
152
+ * @return ConfigurationInterface
153
+ * @throws \InvalidArgumentException
154
+ */
155
+ public static function unwrap($config)
156
+ {
157
+ if (is_callable($config)) {
158
+ $config = $config();
159
+ }
160
+ if ($config instanceof PromiseInterface) {
161
+ $config = $config->wait();
162
+ }
163
+ if ($config instanceof ConfigurationInterface) {
164
+ return $config;
165
+ }
166
+ // An integer value for this config indicates the legacy 'retries'
167
+ // config option, which is incremented to translate to max attempts
168
+ if (is_int($config)) {
169
+ return new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Retry\Configuration('legacy', $config + 1);
170
+ }
171
+ if (is_array($config) && isset($config['mode'])) {
172
+ $maxAttempts = isset($config['max_attempts']) ? $config['max_attempts'] : self::DEFAULT_MAX_ATTEMPTS;
173
+ return new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Retry\Configuration($config['mode'], $maxAttempts);
174
+ }
175
+ throw new \InvalidArgumentException('Not a valid retry configuration' . ' argument.');
176
+ }
177
+ }
vendor/Aws3/Aws/Retry/Exception/ConfigurationException.php ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Retry\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 retry configuration
9
+ */
10
+ class ConfigurationException extends \RuntimeException implements \DeliciousBrains\WP_Offload_Media\Aws3\Aws\MonitoringEventsInterface
11
+ {
12
+ use HasMonitoringEventsTrait;
13
+ }
vendor/Aws3/Aws/Retry/QuotaManager.php ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Retry;
4
+
5
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\AwsException;
6
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\ResultInterface;
7
+ /**
8
+ * @internal
9
+ */
10
+ class QuotaManager
11
+ {
12
+ private $availableCapacity;
13
+ private $capacityAmount;
14
+ private $initialRetryTokens;
15
+ private $maxCapacity;
16
+ private $noRetryIncrement;
17
+ private $retryCost;
18
+ private $timeoutRetryCost;
19
+ public function __construct($config = [])
20
+ {
21
+ $this->initialRetryTokens = isset($config['initial_retry_tokens']) ? $config['initial_retry_tokens'] : 500;
22
+ $this->noRetryIncrement = isset($config['no_retry_increment']) ? $config['no_retry_increment'] : 1;
23
+ $this->retryCost = isset($config['retry_cost']) ? $config['retry_cost'] : 5;
24
+ $this->timeoutRetryCost = isset($config['timeout_retry_cost']) ? $config['timeout_retry_cost'] : 10;
25
+ $this->maxCapacity = $this->initialRetryTokens;
26
+ $this->availableCapacity = $this->initialRetryTokens;
27
+ }
28
+ public function hasRetryQuota($result)
29
+ {
30
+ if ($result instanceof AwsException && $result->isConnectionError()) {
31
+ $this->capacityAmount = $this->timeoutRetryCost;
32
+ } else {
33
+ $this->capacityAmount = $this->retryCost;
34
+ }
35
+ if ($this->capacityAmount > $this->availableCapacity) {
36
+ return false;
37
+ }
38
+ $this->availableCapacity -= $this->capacityAmount;
39
+ return true;
40
+ }
41
+ public function releaseToQuota($result)
42
+ {
43
+ if ($result instanceof AwsException) {
44
+ $statusCode = (int) $result->getStatusCode();
45
+ } elseif ($result instanceof ResultInterface) {
46
+ $statusCode = isset($result['@metadata']['statusCode']) ? (int) $result['@metadata']['statusCode'] : null;
47
+ }
48
+ if (!empty($statusCode) && $statusCode >= 200 && $statusCode < 300) {
49
+ if (isset($this->capacityAmount)) {
50
+ $amount = $this->capacityAmount;
51
+ $this->availableCapacity += $amount;
52
+ unset($this->capacityAmount);
53
+ } else {
54
+ $amount = $this->noRetryIncrement;
55
+ $this->availableCapacity += $amount;
56
+ }
57
+ $this->availableCapacity = min($this->availableCapacity, $this->maxCapacity);
58
+ }
59
+ return isset($amount) ? $amount : 0;
60
+ }
61
+ public function getAvailableCapacity()
62
+ {
63
+ return $this->availableCapacity;
64
+ }
65
+ }
vendor/Aws3/Aws/Retry/RateLimiter.php ADDED
@@ -0,0 +1,143 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Retry;
4
+
5
+ /**
6
+ * @internal
7
+ */
8
+ class RateLimiter
9
+ {
10
+ // User-configurable constants
11
+ private $beta;
12
+ private $minCapacity;
13
+ private $minFillRate;
14
+ private $scaleConstant;
15
+ private $smooth;
16
+ // Optional callable time provider
17
+ private $timeProvider;
18
+ // Pre-set state variables
19
+ private $currentCapacity = 0;
20
+ private $enabled = false;
21
+ private $lastMaxRate = 0;
22
+ private $measuredTxRate = 0;
23
+ private $requestCount = 0;
24
+ // Other state variables
25
+ private $fillRate;
26
+ private $lastThrottleTime;
27
+ private $lastTimestamp;
28
+ private $lastTxRateBucket;
29
+ private $maxCapacity;
30
+ private $timeWindow;
31
+ public function __construct($options = [])
32
+ {
33
+ $this->beta = isset($options['beta']) ? $options['beta'] : 0.7;
34
+ $this->minCapacity = isset($options['min_capacity']) ? $options['min_capacity'] : 1;
35
+ $this->minFillRate = isset($options['min_fill_rate']) ? $options['min_fill_rate'] : 0.5;
36
+ $this->scaleConstant = isset($options['scale_constant']) ? $options['scale_constant'] : 0.4;
37
+ $this->smooth = isset($options['smooth']) ? $options['smooth'] : 0.8;
38
+ $this->timeProvider = isset($options['time_provider']) ? $options['time_provider'] : null;
39
+ $this->lastTxRateBucket = floor($this->time());
40
+ $this->lastThrottleTime = $this->time();
41
+ }
42
+ public function isEnabled()
43
+ {
44
+ return $this->enabled;
45
+ }
46
+ public function getSendToken()
47
+ {
48
+ $this->acquireToken(1);
49
+ }
50
+ public function updateSendingRate($isThrottled)
51
+ {
52
+ $this->updateMeasuredRate();
53
+ if ($isThrottled) {
54
+ if (!$this->isEnabled()) {
55
+ $rateToUse = $this->measuredTxRate;
56
+ } else {
57
+ $rateToUse = min($this->measuredTxRate, $this->fillRate);
58
+ }
59
+ $this->lastMaxRate = $rateToUse;
60
+ $this->calculateTimeWindow();
61
+ $this->lastThrottleTime = $this->time();
62
+ $calculatedRate = $this->cubicThrottle($rateToUse);
63
+ $this->enableTokenBucket();
64
+ } else {
65
+ $this->calculateTimeWindow();
66
+ $calculatedRate = $this->cubicSuccess($this->time());
67
+ }
68
+ $newRate = min($calculatedRate, 2 * $this->measuredTxRate);
69
+ $this->updateTokenBucketRate($newRate);
70
+ return $newRate;
71
+ }
72
+ private function acquireToken($amount)
73
+ {
74
+ if (!$this->enabled) {
75
+ return true;
76
+ }
77
+ $this->refillTokenBucket();
78
+ if ($amount > $this->currentCapacity) {
79
+ usleep(1000000 * ($amount - $this->currentCapacity) / $this->fillRate);
80
+ }
81
+ $this->currentCapacity -= $amount;
82
+ return true;
83
+ }
84
+ private function calculateTimeWindow()
85
+ {
86
+ $this->timeWindow = pow($this->lastMaxRate * (1 - $this->beta) / $this->scaleConstant, 0.333);
87
+ }
88
+ private function cubicSuccess($timestamp)
89
+ {
90
+ $dt = $timestamp - $this->lastThrottleTime;
91
+ return $this->scaleConstant * pow($dt - $this->timeWindow, 3) + $this->lastMaxRate;
92
+ }
93
+ private function cubicThrottle($rateToUse)
94
+ {
95
+ return $rateToUse * $this->beta;
96
+ }
97
+ private function enableTokenBucket()
98
+ {
99
+ $this->enabled = true;
100
+ }
101
+ private function refillTokenBucket()
102
+ {
103
+ $timestamp = $this->time();
104
+ if (!isset($this->lastTimestamp)) {
105
+ $this->lastTimestamp = $timestamp;
106
+ return;
107
+ }
108
+ $fillAmount = ($timestamp - $this->lastTimestamp) * $this->fillRate;
109
+ $this->currentCapacity = $this->currentCapacity + $fillAmount;
110
+ if (!is_null($this->maxCapacity)) {
111
+ $this->currentCapacity = min($this->maxCapacity, $this->currentCapacity);
112
+ }
113
+ $this->lastTimestamp = $timestamp;
114
+ }
115
+ private function time()
116
+ {
117
+ if (is_callable($this->timeProvider)) {
118
+ $provider = $this->timeProvider;
119
+ $time = $provider();
120
+ return $time;
121
+ }
122
+ return microtime(true);
123
+ }
124
+ private function updateMeasuredRate()
125
+ {
126
+ $timestamp = $this->time();
127
+ $timeBucket = floor(round($timestamp, 3) * 2) / 2;
128
+ $this->requestCount++;
129
+ if ($timeBucket > $this->lastTxRateBucket) {
130
+ $currentRate = $this->requestCount / ($timeBucket - $this->lastTxRateBucket);
131
+ $this->measuredTxRate = $currentRate * $this->smooth + $this->measuredTxRate * (1 - $this->smooth);
132
+ $this->requestCount = 0;
133
+ $this->lastTxRateBucket = $timeBucket;
134
+ }
135
+ }
136
+ private function updateTokenBucketRate($newRps)
137
+ {
138
+ $this->refillTokenBucket();
139
+ $this->fillRate = max($newRps, $this->minFillRate);
140
+ $this->maxCapacity = max($newRps, $this->minCapacity);
141
+ $this->currentCapacity = min($this->currentCapacity, $this->maxCapacity);
142
+ }
143
+ }
vendor/Aws3/Aws/Retry/RetryHelperTrait.php ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Retry;
4
+
5
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\AwsException;
6
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\ResultInterface;
7
+ trait RetryHelperTrait
8
+ {
9
+ private function addRetryHeader($request, $retries, $delayBy)
10
+ {
11
+ return $request->withHeader('aws-sdk-retry', "{$retries}/{$delayBy}");
12
+ }
13
+ private function updateStats($retries, $delay, array &$stats)
14
+ {
15
+ if (!isset($stats['total_retry_delay'])) {
16
+ $stats['total_retry_delay'] = 0;
17
+ }
18
+ $stats['total_retry_delay'] += $delay;
19
+ $stats['retries_attempted'] = $retries;
20
+ }
21
+ private function updateHttpStats($value, array &$stats)
22
+ {
23
+ if (empty($stats['http'])) {
24
+ $stats['http'] = [];
25
+ }
26
+ if ($value instanceof AwsException) {
27
+ $resultStats = $value->getTransferInfo();
28
+ $stats['http'][] = $resultStats;
29
+ } elseif ($value instanceof ResultInterface) {
30
+ $resultStats = isset($value['@metadata']['transferStats']['http'][0]) ? $value['@metadata']['transferStats']['http'][0] : [];
31
+ $stats['http'][] = $resultStats;
32
+ }
33
+ }
34
+ private function bindStatsToReturn($return, array $stats)
35
+ {
36
+ if ($return instanceof ResultInterface) {
37
+ if (!isset($return['@metadata'])) {
38
+ $return['@metadata'] = [];
39
+ }
40
+ $return['@metadata']['transferStats'] = $stats;
41
+ } elseif ($return instanceof AwsException) {
42
+ $return->setTransferInfo($stats);
43
+ }
44
+ return $return;
45
+ }
46
+ }
vendor/Aws3/Aws/RetryMiddleware.php CHANGED
@@ -3,15 +3,19 @@
3
  namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws;
4
 
5
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\AwsException;
 
6
  use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Exception\RequestException;
7
  use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\RequestInterface;
8
  use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Promise\PromiseInterface;
9
  use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Promise;
10
  /**
11
- * @internal Middleware that retries failures.
 
 
12
  */
13
  class RetryMiddleware
14
  {
 
15
  private static $retryStatusCodes = [500 => true, 502 => true, 503 => true, 504 => true];
16
  private static $retryCodes = [
17
  // Throttling error
@@ -41,7 +45,7 @@ class RetryMiddleware
41
  /**
42
  * Creates a default AWS retry decider function.
43
  *
44
- * The optional $additionalRetryConfig parameter is an associative array
45
  * that specifies additional retry conditions on top of the ones specified
46
  * by default by the Aws\RetryMiddleware class, with the following keys:
47
  *
@@ -53,19 +57,19 @@ class RetryMiddleware
53
  * these should be valid Curl constants. Optional.
54
  *
55
  * @param int $maxRetries
56
- * @param array $additionalRetryConfig
57
  * @return callable
58
  */
59
- public static function createDefaultDecider($maxRetries = 3, $additionalRetryConfig = [])
60
  {
61
  $retryCurlErrors = [];
62
  if (extension_loaded('curl')) {
63
  $retryCurlErrors[CURLE_RECV_ERROR] = true;
64
  }
65
- 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) {
66
  // Allow command-level options to override this value
67
  $maxRetries = null !== $command['@retries'] ? $command['@retries'] : $maxRetries;
68
- $isRetryable = self::isRetryable($result, $error, $retryCurlErrors, $additionalRetryConfig);
69
  if ($retries >= $maxRetries) {
70
  if (!empty($error) && $error instanceof AwsException && $isRetryable) {
71
  $error->setMaxRetriesExceeded();
@@ -75,22 +79,22 @@ class RetryMiddleware
75
  return $isRetryable;
76
  };
77
  }
78
- private static function isRetryable($result, $error, $retryCurlErrors, $additionalRetryConfig = [])
79
  {
80
  $errorCodes = self::$retryCodes;
81
- if (!empty($additionalRetryConfig['errorCodes']) && is_array($additionalRetryConfig['errorCodes'])) {
82
- foreach ($additionalRetryConfig['errorCodes'] as $code) {
83
  $errorCodes[$code] = true;
84
  }
85
  }
86
  $statusCodes = self::$retryStatusCodes;
87
- if (!empty($additionalRetryConfig['statusCodes']) && is_array($additionalRetryConfig['statusCodes'])) {
88
- foreach ($additionalRetryConfig['statusCodes'] as $code) {
89
  $statusCodes[$code] = true;
90
  }
91
  }
92
- if (!empty($additionalRetryConfig['curlErrors']) && is_array($additionalRetryConfig['curlErrors'])) {
93
- foreach ($additionalRetryConfig['curlErrors'] as $code) {
94
  $retryCurlErrors[$code] = true;
95
  }
96
  }
@@ -184,41 +188,4 @@ class RetryMiddleware
184
  };
185
  return $handler($command, $request)->then($g, $g);
186
  }
187
- private function addRetryHeader($request, $retries, $delayBy)
188
- {
189
- return $request->withHeader('aws-sdk-retry', "{$retries}/{$delayBy}");
190
- }
191
- private function updateStats($retries, $delay, array &$stats)
192
- {
193
- if (!isset($stats['total_retry_delay'])) {
194
- $stats['total_retry_delay'] = 0;
195
- }
196
- $stats['total_retry_delay'] += $delay;
197
- $stats['retries_attempted'] = $retries;
198
- }
199
- private function updateHttpStats($value, array &$stats)
200
- {
201
- if (empty($stats['http'])) {
202
- $stats['http'] = [];
203
- }
204
- if ($value instanceof AwsException) {
205
- $resultStats = isset($value->getTransferInfo('http')[0]) ? $value->getTransferInfo('http')[0] : [];
206
- $stats['http'][] = $resultStats;
207
- } elseif ($value instanceof ResultInterface) {
208
- $resultStats = isset($value['@metadata']['transferStats']['http'][0]) ? $value['@metadata']['transferStats']['http'][0] : [];
209
- $stats['http'][] = $resultStats;
210
- }
211
- }
212
- private function bindStatsToReturn($return, array $stats)
213
- {
214
- if ($return instanceof ResultInterface) {
215
- if (!isset($return['@metadata'])) {
216
- $return['@metadata'] = [];
217
- }
218
- $return['@metadata']['transferStats'] = $stats;
219
- } elseif ($return instanceof AwsException) {
220
- $return->setTransferInfo($stats);
221
- }
222
- return $return;
223
- }
224
  }
3
  namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws;
4
 
5
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\AwsException;
6
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Retry\RetryHelperTrait;
7
  use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Exception\RequestException;
8
  use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\RequestInterface;
9
  use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Promise\PromiseInterface;
10
  use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Promise;
11
  /**
12
+ * Middleware that retries failures. V1 implemention that supports 'legacy' mode.
13
+ *
14
+ * @internal
15
  */
16
  class RetryMiddleware
17
  {
18
+ use RetryHelperTrait;
19
  private static $retryStatusCodes = [500 => true, 502 => true, 503 => true, 504 => true];
20
  private static $retryCodes = [
21
  // Throttling error
45
  /**
46
  * Creates a default AWS retry decider function.
47
  *
48
+ * The optional $extraConfig parameter is an associative array
49
  * that specifies additional retry conditions on top of the ones specified
50
  * by default by the Aws\RetryMiddleware class, with the following keys:
51
  *
57
  * these should be valid Curl constants. Optional.
58
  *
59
  * @param int $maxRetries
60
+ * @param array $extraConfig
61
  * @return callable
62
  */
63
+ public static function createDefaultDecider($maxRetries = 3, $extraConfig = [])
64
  {
65
  $retryCurlErrors = [];
66
  if (extension_loaded('curl')) {
67
  $retryCurlErrors[CURLE_RECV_ERROR] = true;
68
  }
69
+ 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, $extraConfig) {
70
  // Allow command-level options to override this value
71
  $maxRetries = null !== $command['@retries'] ? $command['@retries'] : $maxRetries;
72
+ $isRetryable = self::isRetryable($result, $error, $retryCurlErrors, $extraConfig);
73
  if ($retries >= $maxRetries) {
74
  if (!empty($error) && $error instanceof AwsException && $isRetryable) {
75
  $error->setMaxRetriesExceeded();
79
  return $isRetryable;
80
  };
81
  }
82
+ private static function isRetryable($result, $error, $retryCurlErrors, $extraConfig = [])
83
  {
84
  $errorCodes = self::$retryCodes;
85
+ if (!empty($extraConfig['error_codes']) && is_array($extraConfig['error_codes'])) {
86
+ foreach ($extraConfig['error_codes'] as $code) {
87
  $errorCodes[$code] = true;
88
  }
89
  }
90
  $statusCodes = self::$retryStatusCodes;
91
+ if (!empty($extraConfig['status_codes']) && is_array($extraConfig['status_codes'])) {
92
+ foreach ($extraConfig['status_codes'] as $code) {
93
  $statusCodes[$code] = true;
94
  }
95
  }
96
+ if (!empty($extraConfig['curl_errors']) && is_array($extraConfig['curl_errors'])) {
97
+ foreach ($extraConfig['curl_errors'] as $code) {
98
  $retryCurlErrors[$code] = true;
99
  }
100
  }
188
  };
189
  return $handler($command, $request)->then($g, $g);
190
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
191
  }
vendor/Aws3/Aws/RetryMiddlewareV2.php ADDED
@@ -0,0 +1,235 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws;
4
+
5
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\AwsException;
6
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Retry\ConfigurationInterface;
7
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Retry\QuotaManager;
8
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Retry\RateLimiter;
9
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Retry\RetryHelperTrait;
10
+ use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Exception\RequestException;
11
+ use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Promise;
12
+ use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\RequestInterface;
13
+ /**
14
+ * Middleware that retries failures. V2 implementation that supports 'standard'
15
+ * and 'adaptive' modes.
16
+ *
17
+ * @internal
18
+ */
19
+ class RetryMiddlewareV2
20
+ {
21
+ use RetryHelperTrait;
22
+ private static $standardThrottlingErrors = ['Throttling' => true, 'ThrottlingException' => true, 'ThrottledException' => true, 'RequestThrottledException' => true, 'TooManyRequestsException' => true, 'ProvisionedThroughputExceededException' => true, 'TransactionInProgressException' => true, 'RequestLimitExceeded' => true, 'BandwidthLimitExceeded' => true, 'LimitExceededException' => true, 'RequestThrottled' => true, 'SlowDown' => true, 'PriorRequestNotComplete' => true, 'EC2ThrottledException' => true];
23
+ private static $standardTransientErrors = ['RequestTimeout' => true, 'RequestTimeoutException' => true];
24
+ private static $standardTransientStatusCodes = [500 => true, 502 => true, 503 => true, 504 => true];
25
+ private $collectStats;
26
+ private $decider;
27
+ private $delayer;
28
+ private $maxAttempts;
29
+ private $maxBackoff;
30
+ private $mode;
31
+ private $nextHandler;
32
+ private $options;
33
+ private $quotaManager;
34
+ private $rateLimiter;
35
+ public static function wrap($config, $options)
36
+ {
37
+ return function (callable $handler) use($config, $options) {
38
+ return new static($config, $handler, $options);
39
+ };
40
+ }
41
+ public static function createDefaultDecider(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Retry\QuotaManager $quotaManager, $maxAttempts = 3, $options = [])
42
+ {
43
+ $retryCurlErrors = [];
44
+ if (extension_loaded('curl')) {
45
+ $retryCurlErrors[CURLE_RECV_ERROR] = true;
46
+ }
47
+ return function ($attempts, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface $command, $result) use($options, $quotaManager, $retryCurlErrors, $maxAttempts) {
48
+ // Release retry tokens back to quota on a successful result
49
+ $quotaManager->releaseToQuota($result);
50
+ // Allow command-level option to override this value
51
+ // # of attempts = # of retries + 1
52
+ $maxAttempts = null !== $command['@retries'] ? $command['@retries'] + 1 : $maxAttempts;
53
+ $isRetryable = self::isRetryable($result, $retryCurlErrors, $options);
54
+ if ($isRetryable) {
55
+ // Retrieve retry tokens and check if quota has been exceeded
56
+ if (!$quotaManager->hasRetryQuota($result)) {
57
+ return false;
58
+ }
59
+ if ($attempts >= $maxAttempts) {
60
+ if (!empty($result) && $result instanceof AwsException) {
61
+ $result->setMaxRetriesExceeded();
62
+ }
63
+ return false;
64
+ }
65
+ }
66
+ return $isRetryable;
67
+ };
68
+ }
69
+ public function __construct(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Retry\ConfigurationInterface $config, callable $handler, $options = [])
70
+ {
71
+ $this->options = $options;
72
+ $this->maxAttempts = $config->getMaxAttempts();
73
+ $this->mode = $config->getMode();
74
+ $this->nextHandler = $handler;
75
+ $this->quotaManager = new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Retry\QuotaManager();
76
+ $this->maxBackoff = isset($options['max_backoff']) ? $options['max_backoff'] : 20000;
77
+ $this->collectStats = isset($options['collect_stats']) ? (bool) $options['collect_stats'] : false;
78
+ $this->decider = isset($options['decider']) ? $options['decider'] : self::createDefaultDecider($this->quotaManager, $this->maxAttempts, $options);
79
+ $this->delayer = isset($options['delayer']) ? $options['delayer'] : function ($attempts) {
80
+ return $this->exponentialDelayWithJitter($attempts);
81
+ };
82
+ if ($this->mode === 'adaptive') {
83
+ $this->rateLimiter = isset($options['rate_limiter']) ? $options['rate_limiter'] : new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Retry\RateLimiter();
84
+ }
85
+ }
86
+ public function __invoke(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface $cmd, \DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\RequestInterface $req)
87
+ {
88
+ $decider = $this->decider;
89
+ $delayer = $this->delayer;
90
+ $handler = $this->nextHandler;
91
+ $attempts = 1;
92
+ $monitoringEvents = [];
93
+ $requestStats = [];
94
+ $req = $this->addRetryHeader($req, 0, 0);
95
+ $callback = function ($value) use($handler, $cmd, $req, $decider, $delayer, &$attempts, &$requestStats, &$monitoringEvents, &$callback) {
96
+ if ($this->mode === 'adaptive') {
97
+ $this->rateLimiter->updateSendingRate($this->isThrottlingError($value));
98
+ }
99
+ $this->updateHttpStats($value, $requestStats);
100
+ if ($value instanceof MonitoringEventsInterface) {
101
+ $reversedEvents = array_reverse($monitoringEvents);
102
+ $monitoringEvents = array_merge($monitoringEvents, $value->getMonitoringEvents());
103
+ foreach ($reversedEvents as $event) {
104
+ $value->prependMonitoringEvent($event);
105
+ }
106
+ }
107
+ if ($value instanceof \Exception || $value instanceof \Throwable) {
108
+ if (!$decider($attempts, $cmd, $value)) {
109
+ return \DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Promise\rejection_for($this->bindStatsToReturn($value, $requestStats));
110
+ }
111
+ } elseif ($value instanceof ResultInterface && !$decider($attempts, $cmd, $value)) {
112
+ return $this->bindStatsToReturn($value, $requestStats);
113
+ }
114
+ $delayBy = $delayer($attempts++);
115
+ $cmd['@http']['delay'] = $delayBy;
116
+ if ($this->collectStats) {
117
+ $this->updateStats($attempts - 1, $delayBy, $requestStats);
118
+ }
119
+ // Update retry header with retry count and delayBy
120
+ $req = $this->addRetryHeader($req, $attempts - 1, $delayBy);
121
+ // Get token from rate limiter, which will sleep if necessary
122
+ if ($this->mode === 'adaptive') {
123
+ $this->rateLimiter->getSendToken();
124
+ }
125
+ return $handler($cmd, $req)->then($callback, $callback);
126
+ };
127
+ // Get token from rate limiter, which will sleep if necessary
128
+ if ($this->mode === 'adaptive') {
129
+ $this->rateLimiter->getSendToken();
130
+ }
131
+ return $handler($cmd, $req)->then($callback, $callback);
132
+ }
133
+ /**
134
+ * Amount of milliseconds to delay as a function of attempt number
135
+ *
136
+ * @param $attempts
137
+ * @return mixed
138
+ */
139
+ public function exponentialDelayWithJitter($attempts)
140
+ {
141
+ $rand = mt_rand() / mt_getrandmax();
142
+ return min(1000 * $rand * pow(2, $attempts), $this->maxBackoff);
143
+ }
144
+ private static function isRetryable($result, $retryCurlErrors, $options = [])
145
+ {
146
+ $errorCodes = self::$standardThrottlingErrors + self::$standardTransientErrors;
147
+ if (!empty($options['transient_error_codes']) && is_array($options['transient_error_codes'])) {
148
+ foreach ($options['transient_error_codes'] as $code) {
149
+ $errorCodes[$code] = true;
150
+ }
151
+ }
152
+ if (!empty($options['throttling_error_codes']) && is_array($options['throttling_error_codes'])) {
153
+ foreach ($options['throttling_error_codes'] as $code) {
154
+ $errorCodes[$code] = true;
155
+ }
156
+ }
157
+ $statusCodes = self::$standardTransientStatusCodes;
158
+ if (!empty($options['status_codes']) && is_array($options['status_codes'])) {
159
+ foreach ($options['status_codes'] as $code) {
160
+ $statusCodes[$code] = true;
161
+ }
162
+ }
163
+ if (!empty($options['curl_errors']) && is_array($options['curl_errors'])) {
164
+ foreach ($options['curl_errors'] as $code) {
165
+ $retryCurlErrors[$code] = true;
166
+ }
167
+ }
168
+ if ($result instanceof \Exception || $result instanceof \Throwable) {
169
+ $isError = true;
170
+ } else {
171
+ $isError = false;
172
+ }
173
+ if (!$isError) {
174
+ if (!isset($result['@metadata']['statusCode'])) {
175
+ return false;
176
+ }
177
+ return isset($statusCodes[$result['@metadata']['statusCode']]);
178
+ }
179
+ if (!$result instanceof AwsException) {
180
+ return false;
181
+ }
182
+ if ($result->isConnectionError()) {
183
+ return true;
184
+ }
185
+ if (!empty($errorCodes[$result->getAwsErrorCode()])) {
186
+ return true;
187
+ }
188
+ if (!empty($statusCodes[$result->getStatusCode()])) {
189
+ return true;
190
+ }
191
+ if (count($retryCurlErrors) && ($previous = $result->getPrevious()) && $previous instanceof RequestException) {
192
+ if (method_exists($previous, 'getHandlerContext')) {
193
+ $context = $previous->getHandlerContext();
194
+ return !empty($context['errno']) && isset($retryCurlErrors[$context['errno']]);
195
+ }
196
+ $message = $previous->getMessage();
197
+ foreach (array_keys($retryCurlErrors) as $curlError) {
198
+ if (strpos($message, 'cURL error ' . $curlError . ':') === 0) {
199
+ return true;
200
+ }
201
+ }
202
+ }
203
+ // Check error shape for the retryable trait
204
+ if (!empty($errorShape = $result->getAwsErrorShape())) {
205
+ $definition = $errorShape->toArray();
206
+ if (!empty($definition['retryable'])) {
207
+ return true;
208
+ }
209
+ }
210
+ return false;
211
+ }
212
+ private function isThrottlingError($result)
213
+ {
214
+ if ($result instanceof AwsException) {
215
+ // Check pre-defined throttling errors
216
+ $throttlingErrors = self::$standardThrottlingErrors;
217
+ if (!empty($this->options['throttling_error_codes']) && is_array($this->options['throttling_error_codes'])) {
218
+ foreach ($this->options['throttling_error_codes'] as $code) {
219
+ $throttlingErrors[$code] = true;
220
+ }
221
+ }
222
+ if (!empty($result->getAwsErrorCode()) && !empty($throttlingErrors[$result->getAwsErrorCode()])) {
223
+ return true;
224
+ }
225
+ // Check error shape for the throttling trait
226
+ if (!empty($errorShape = $result->getAwsErrorShape())) {
227
+ $definition = $errorShape->toArray();
228
+ if (!empty($definition['retryable']['throttling'])) {
229
+ return true;
230
+ }
231
+ }
232
+ }
233
+ return false;
234
+ }
235
+ }
vendor/Aws3/Aws/S3/AmbiguousSuccessParser.php CHANGED
@@ -3,6 +3,7 @@
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;
@@ -15,7 +16,7 @@ use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\StreamInterface;
15
  */
16
  class AmbiguousSuccessParser extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\AbstractParser
17
  {
18
- private static $ambiguousSuccesses = ['UploadPartCopy' => true, 'CopyObject' => true, 'CompleteMultipartUpload' => true];
19
  /** @var callable */
20
  private $errorParser;
21
  /** @var string */
@@ -30,7 +31,11 @@ class AmbiguousSuccessParser extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\
30
  {
31
  if (200 === $response->getStatusCode() && isset(self::$ambiguousSuccesses[$command->getName()])) {
32
  $errorParser = $this->errorParser;
33
- $parsed = $errorParser($response);
 
 
 
 
34
  if (isset($parsed['code']) && isset($parsed['message'])) {
35
  throw new $this->exceptionClass($parsed['message'], $command, ['connection_error' => true]);
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\Parser\Exception\ParserException;
7
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\StructureShape;
8
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface;
9
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\AwsException;
16
  */
17
  class AmbiguousSuccessParser extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Parser\AbstractParser
18
  {
19
+ private static $ambiguousSuccesses = ['UploadPart' => true, 'UploadPartCopy' => true, 'CopyObject' => true, 'CompleteMultipartUpload' => true];
20
  /** @var callable */
21
  private $errorParser;
22
  /** @var string */
31
  {
32
  if (200 === $response->getStatusCode() && isset(self::$ambiguousSuccesses[$command->getName()])) {
33
  $errorParser = $this->errorParser;
34
+ try {
35
+ $parsed = $errorParser($response);
36
+ } catch (ParserException $e) {
37
+ $parsed = ['code' => 'ConnectionError', 'message' => "An error connecting to the service occurred" . " while performing the " . $command->getName() . " operation."];
38
+ }
39
  if (isset($parsed['code']) && isset($parsed['message'])) {
40
  throw new $this->exceptionClass($parsed['message'], $command, ['connection_error' => true]);
41
  }
vendor/Aws3/Aws/S3/ApplyChecksumMiddleware.php CHANGED
@@ -2,6 +2,8 @@
2
 
3
  namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3;
4
 
 
 
5
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface;
6
  use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Psr7;
7
  use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\RequestInterface;
@@ -14,22 +16,25 @@ 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', 'PutObjectLegalHold', 'PutObjectRetention', 'PutObjectLockConfiguration'];
18
  private static $sha256 = ['PutObject', 'UploadPart'];
 
 
19
  private $nextHandler;
20
  /**
21
  * Create a middleware wrapper function.
22
  *
 
23
  * @return callable
24
  */
25
- public static function wrap()
26
  {
27
- return function (callable $handler) {
28
- return new self($handler);
29
  };
30
  }
31
- public function __construct(callable $nextHandler)
32
  {
 
33
  $this->nextHandler = $nextHandler;
34
  }
35
  public function __invoke(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface $command, \DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\RequestInterface $request)
@@ -37,7 +42,8 @@ class ApplyChecksumMiddleware
37
  $next = $this->nextHandler;
38
  $name = $command->getName();
39
  $body = $request->getBody();
40
- if (in_array($name, self::$md5) && !$request->hasHeader('Content-MD5')) {
 
41
  // Set the content MD5 header for operations that require it.
42
  $request = $request->withHeader('Content-MD5', base64_encode(\DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Psr7\hash($body, 'md5', true)));
43
  } elseif (in_array($name, self::$sha256) && $command['ContentSHA256']) {
2
 
3
  namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3;
4
 
5
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\ApiProvider;
6
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Service;
7
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface;
8
  use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Psr7;
9
  use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\RequestInterface;
16
  */
17
  class ApplyChecksumMiddleware
18
  {
 
19
  private static $sha256 = ['PutObject', 'UploadPart'];
20
+ /** @var Service */
21
+ private $api;
22
  private $nextHandler;
23
  /**
24
  * Create a middleware wrapper function.
25
  *
26
+ * @param Service $api
27
  * @return callable
28
  */
29
+ public static function wrap(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Service $api)
30
  {
31
+ return function (callable $handler) use($api) {
32
+ return new self($handler, $api);
33
  };
34
  }
35
+ public function __construct(callable $nextHandler, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Api\Service $api)
36
  {
37
+ $this->api = $api;
38
  $this->nextHandler = $nextHandler;
39
  }
40
  public function __invoke(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface $command, \DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\RequestInterface $request)
42
  $next = $this->nextHandler;
43
  $name = $command->getName();
44
  $body = $request->getBody();
45
+ $op = $this->api->getOperation($command->getName());
46
+ if (!empty($op['httpChecksumRequired']) && !$request->hasHeader('Content-MD5')) {
47
  // Set the content MD5 header for operations that require it.
48
  $request = $request->withHeader('Content-MD5', base64_encode(\DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Psr7\hash($body, 'md5', true)));
49
  } elseif (in_array($name, self::$sha256) && $command['ContentSHA256']) {
vendor/Aws3/Aws/S3/Crypto/CryptoParamsTraitV2.php ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3\Crypto;
4
+
5
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MaterialsProviderInterfaceV2;
6
+ trait CryptoParamsTraitV2
7
+ {
8
+ use CryptoParamsTrait;
9
+ protected function getMaterialsProvider(array $args)
10
+ {
11
+ if ($args['@MaterialsProvider'] instanceof MaterialsProviderInterfaceV2) {
12
+ return $args['@MaterialsProvider'];
13
+ }
14
+ throw new \InvalidArgumentException('An instance of MaterialsProviderInterfaceV2' . ' must be passed in the "MaterialsProvider" field.');
15
+ }
16
+ }
vendor/Aws3/Aws/S3/Crypto/HeadersMetadataStrategy.php CHANGED
@@ -7,7 +7,7 @@ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope;
7
  class HeadersMetadataStrategy implements \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataStrategyInterface
8
  {
9
  /**
10
- * Places the information in the MetadataEnvelope in to the Meatadata for
11
  * the PutObject request of the encrypted object.
12
  *
13
  * @param MetadataEnvelope $envelope Encryption data to save according to
@@ -25,7 +25,7 @@ class HeadersMetadataStrategy implements \DeliciousBrains\WP_Offload_Media\Aws3\
25
  return $args;
26
  }
27
  /**
28
- * Generates a MetadataEnvelope according to the Metadata headers from the
29
  * GetObject result.
30
  *
31
  * @param array $args Arguments from Command and Result that contains
7
  class HeadersMetadataStrategy implements \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataStrategyInterface
8
  {
9
  /**
10
+ * Places the information in the MetadataEnvelope in to the metadata for
11
  * the PutObject request of the encrypted object.
12
  *
13
  * @param MetadataEnvelope $envelope Encryption data to save according to
25
  return $args;
26
  }
27
  /**
28
+ * Generates a MetadataEnvelope according to the metadata headers from the
29
  * GetObject result.
30
  *
31
  * @param array $args Arguments from Command and Result that contains
vendor/Aws3/Aws/S3/Crypto/S3EncryptionClient.php CHANGED
@@ -2,11 +2,11 @@
2
 
3
  namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3\Crypto;
4
 
 
5
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\HashingStream;
6
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\PhpHash;
7
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\AbstractCryptoClient;
8
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\EncryptionTrait;
9
- use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\DecryptionTrait;
10
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope;
11
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MaterialsProvider;
12
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Cipher\CipherBuilderTrait;
@@ -17,10 +17,25 @@ use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Psr7;
17
  /**
18
  * Provides a wrapper for an S3Client that supplies functionality to encrypt
19
  * data on putObject[Async] calls and decrypt data on getObject[Async] calls.
 
 
 
 
 
 
 
 
 
 
20
  */
21
  class S3EncryptionClient extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\AbstractCryptoClient
22
  {
23
- use EncryptionTrait, DecryptionTrait, CipherBuilderTrait, CryptoParamsTrait;
 
 
 
 
 
24
  private $client;
25
  private $instructionFileSuffix;
26
  /**
@@ -33,6 +48,7 @@ class S3EncryptionClient extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Cryp
33
  */
34
  public function __construct(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3\S3Client $client, $instructionFileSuffix = null)
35
  {
 
36
  $this->client = $client;
37
  $this->instructionFileSuffix = $instructionFileSuffix;
38
  }
@@ -54,12 +70,15 @@ class S3EncryptionClient extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Cryp
54
  * - @CipherOptions: (array) Cipher options for encrypting data. Only the
55
  * Cipher option is required. Accepts the following:
56
  * - Cipher: (string) cbc|gcm
57
- * See also: AbstractCryptoClient::$supportedCiphers
 
58
  * - KeySize: (int) 128|192|256
59
  * See also: MaterialsProvider::$supportedKeySizes
60
  * - Aad: (string) Additional authentication data. This option is
61
  * passed directly to OpenSSL when using gcm. It is ignored when
62
- * using cbc.
 
 
63
  *
64
  * The optional configuration arguments are as follows:
65
  *
@@ -122,12 +141,15 @@ class S3EncryptionClient extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Cryp
122
  * - @CipherOptions: (array) Cipher options for encrypting data. A Cipher
123
  * is required. Accepts the following options:
124
  * - Cipher: (string) cbc|gcm
125
- * See also: AbstractCryptoClient::$supportedCiphers
 
126
  * - KeySize: (int) 128|192|256
127
  * See also: MaterialsProvider::$supportedKeySizes
128
  * - Aad: (string) Additional authentication data. This option is
129
  * passed directly to OpenSSL when using gcm. It is ignored when
130
- * using cbc.
 
 
131
  *
132
  * The optional configuration arguments are as follows:
133
  *
2
 
3
  namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3\Crypto;
4
 
5
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\DecryptionTrait;
6
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\HashingStream;
7
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\PhpHash;
8
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\AbstractCryptoClient;
9
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\EncryptionTrait;
 
10
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope;
11
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MaterialsProvider;
12
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Cipher\CipherBuilderTrait;
17
  /**
18
  * Provides a wrapper for an S3Client that supplies functionality to encrypt
19
  * data on putObject[Async] calls and decrypt data on getObject[Async] calls.
20
+ *
21
+ * Legacy implementation using older encryption workflow.
22
+ *
23
+ * AWS strongly recommends the upgrade to the S3EncryptionClientV2 (over the
24
+ * S3EncryptionClient), as it offers updated data security best practices to our
25
+ * customers who upgrade. S3EncryptionClientV2 contains breaking changes, so this
26
+ * will require planning by engineering teams to migrate. New workflows should
27
+ * just start with S3EncryptionClientV2.
28
+ *
29
+ * @deprecated
30
  */
31
  class S3EncryptionClient extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\AbstractCryptoClient
32
  {
33
+ use CipherBuilderTrait;
34
+ use CryptoParamsTrait;
35
+ use DecryptionTrait;
36
+ use EncryptionTrait;
37
+ use UserAgentTrait;
38
+ const CRYPTO_VERSION = '1n';
39
  private $client;
40
  private $instructionFileSuffix;
41
  /**
48
  */
49
  public function __construct(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3\S3Client $client, $instructionFileSuffix = null)
50
  {
51
+ $this->appendUserAgent($client, 'S3CryptoV' . self::CRYPTO_VERSION);
52
  $this->client = $client;
53
  $this->instructionFileSuffix = $instructionFileSuffix;
54
  }
70
  * - @CipherOptions: (array) Cipher options for encrypting data. Only the
71
  * Cipher option is required. Accepts the following:
72
  * - Cipher: (string) cbc|gcm
73
+ * See also: AbstractCryptoClient::$supportedCiphers. Note that
74
+ * cbc is deprecated and gcm should be used when possible.
75
  * - KeySize: (int) 128|192|256
76
  * See also: MaterialsProvider::$supportedKeySizes
77
  * - Aad: (string) Additional authentication data. This option is
78
  * passed directly to OpenSSL when using gcm. It is ignored when
79
+ * using cbc. Note if you pass in Aad for gcm encryption, the
80
+ * PHP SDK will be able to decrypt the resulting object, but other
81
+ * AWS SDKs may not be able to do so.
82
  *
83
  * The optional configuration arguments are as follows:
84
  *
141
  * - @CipherOptions: (array) Cipher options for encrypting data. A Cipher
142
  * is required. Accepts the following options:
143
  * - Cipher: (string) cbc|gcm
144
+ * See also: AbstractCryptoClient::$supportedCiphers. Note that
145
+ * cbc is deprecated and gcm should be used when possible.
146
  * - KeySize: (int) 128|192|256
147
  * See also: MaterialsProvider::$supportedKeySizes
148
  * - Aad: (string) Additional authentication data. This option is
149
  * passed directly to OpenSSL when using gcm. It is ignored when
150
+ * using cbc. Note if you pass in Aad for gcm encryption, the
151
+ * PHP SDK will be able to decrypt the resulting object, but other
152
+ * AWS SDKs may not be able to do so.
153
  *
154
  * The optional configuration arguments are as follows:
155
  *
vendor/Aws3/Aws/S3/Crypto/S3EncryptionClientV2.php ADDED
@@ -0,0 +1,371 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3\Crypto;
4
+
5
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\DecryptionTraitV2;
6
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\CryptoException;
7
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\HashingStream;
8
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\PhpHash;
9
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\AbstractCryptoClientV2;
10
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\EncryptionTraitV2;
11
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope;
12
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MaterialsProvider;
13
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Cipher\CipherBuilderTrait;
14
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3\S3Client;
15
+ use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Promise;
16
+ use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Promise\PromiseInterface;
17
+ use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Psr7;
18
+ /**
19
+ * Provides a wrapper for an S3Client that supplies functionality to encrypt
20
+ * data on putObject[Async] calls and decrypt data on getObject[Async] calls.
21
+ *
22
+ * AWS strongly recommends the upgrade to the S3EncryptionClientV2 (over the
23
+ * S3EncryptionClient), as it offers updated data security best practices to our
24
+ * customers who upgrade. S3EncryptionClientV2 contains breaking changes, so this
25
+ * will require planning by engineering teams to migrate. New workflows should
26
+ * just start with S3EncryptionClientV2.
27
+ *
28
+ * Note that for PHP versions of < 7.1, this class uses an AES-GCM polyfill
29
+ * for encryption since there is no native PHP support. The performance for large
30
+ * inputs will be a lot slower than for PHP 7.1+, so upgrading older PHP version
31
+ * environments may be necessary to use this effectively.
32
+ *
33
+ * Example write path:
34
+ *
35
+ * <code>
36
+ * use Aws\Crypto\KmsMaterialsProviderV2;
37
+ * use Aws\S3\Crypto\S3EncryptionClientV2;
38
+ * use Aws\S3\S3Client;
39
+ *
40
+ * $encryptionClient = new S3EncryptionClientV2(
41
+ * new S3Client([
42
+ * 'region' => 'us-west-2',
43
+ * 'version' => 'latest'
44
+ * ])
45
+ * );
46
+ * $materialsProvider = new KmsMaterialsProviderV2(
47
+ * new KmsClient([
48
+ * 'profile' => 'default',
49
+ * 'region' => 'us-east-1',
50
+ * 'version' => 'latest',
51
+ * ],
52
+ * 'your-kms-key-id'
53
+ * );
54
+ *
55
+ * $encryptionClient->putObject([
56
+ * '@MaterialsProvider' => $materialsProvider,
57
+ * '@CipherOptions' => [
58
+ * 'Cipher' => 'gcm',
59
+ * 'KeySize' => 256,
60
+ * ],
61
+ * '@KmsEncryptionContext' => ['foo' => 'bar'],
62
+ * 'Bucket' => 'your-bucket',
63
+ * 'Key' => 'your-key',
64
+ * 'Body' => 'your-encrypted-data',
65
+ * ]);
66
+ * </code>
67
+ *
68
+ * Example read call (using objects from previous example):
69
+ *
70
+ * <code>
71
+ * $encryptionClient->getObject([
72
+ * '@MaterialsProvider' => $materialsProvider,
73
+ * '@CipherOptions' => [
74
+ * 'Cipher' => 'gcm',
75
+ * 'KeySize' => 256,
76
+ * ],
77
+ * 'Bucket' => 'your-bucket',
78
+ * 'Key' => 'your-key',
79
+ * ]);
80
+ * </code>
81
+ */
82
+ class S3EncryptionClientV2 extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\AbstractCryptoClientV2
83
+ {
84
+ use CipherBuilderTrait;
85
+ use CryptoParamsTraitV2;
86
+ use DecryptionTraitV2;
87
+ use EncryptionTraitV2;
88
+ use UserAgentTrait;
89
+ const CRYPTO_VERSION = '2.1';
90
+ private $client;
91
+ private $instructionFileSuffix;
92
+ private $legacyWarningCount;
93
+ /**
94
+ * @param S3Client $client The S3Client to be used for true uploading and
95
+ * retrieving objects from S3 when using the
96
+ * encryption client.
97
+ * @param string|null $instructionFileSuffix Suffix for a client wide
98
+ * default when using instruction
99
+ * files for metadata storage.
100
+ */
101
+ public function __construct(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3\S3Client $client, $instructionFileSuffix = null)
102
+ {
103
+ $this->appendUserAgent($client, 'S3CryptoV' . self::CRYPTO_VERSION);
104
+ $this->client = $client;
105
+ $this->instructionFileSuffix = $instructionFileSuffix;
106
+ $this->legacyWarningCount = 0;
107
+ }
108
+ private static function getDefaultStrategy()
109
+ {
110
+ return new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3\Crypto\HeadersMetadataStrategy();
111
+ }
112
+ /**
113
+ * Encrypts the data in the 'Body' field of $args and promises to upload it
114
+ * to the specified location on S3.
115
+ *
116
+ * Note that for PHP versions of < 7.1, this operation uses an AES-GCM
117
+ * polyfill for encryption since there is no native PHP support. The
118
+ * performance for large inputs will be a lot slower than for PHP 7.1+, so
119
+ * upgrading older PHP version environments may be necessary to use this
120
+ * effectively.
121
+ *
122
+ * @param array $args Arguments for encrypting an object and uploading it
123
+ * to S3 via PutObject.
124
+ *
125
+ * The required configuration arguments are as follows:
126
+ *
127
+ * - @MaterialsProvider: (MaterialsProviderV2) Provides Cek, Iv, and Cek
128
+ * encrypting/decrypting for encryption metadata.
129
+ * - @CipherOptions: (array) Cipher options for encrypting data. Only the
130
+ * Cipher option is required. Accepts the following:
131
+ * - Cipher: (string) gcm
132
+ * See also: AbstractCryptoClientV2::$supportedCiphers
133
+ * - KeySize: (int) 128|256
134
+ * See also: MaterialsProvider::$supportedKeySizes
135
+ * - Aad: (string) Additional authentication data. This option is
136
+ * passed directly to OpenSSL when using gcm. Note if you pass in
137
+ * Aad, the PHP SDK will be able to decrypt the resulting object,
138
+ * but other AWS SDKs may not be able to do so.
139
+ * - @KmsEncryptionContext: (array) Only required if using
140
+ * KmsMaterialsProviderV2. An associative array of key-value
141
+ * pairs to be added to the encryption context for KMS key encryption. An
142
+ * empty array may be passed if no additional context is desired.
143
+ *
144
+ * The optional configuration arguments are as follows:
145
+ *
146
+ * - @MetadataStrategy: (MetadataStrategy|string|null) Strategy for storing
147
+ * MetadataEnvelope information. Defaults to using a
148
+ * HeadersMetadataStrategy. Can either be a class implementing
149
+ * MetadataStrategy, a class name of a predefined strategy, or empty/null
150
+ * to default.
151
+ * - @InstructionFileSuffix: (string|null) Suffix used when writing to an
152
+ * instruction file if using an InstructionFileMetadataHandler.
153
+ *
154
+ * @return PromiseInterface
155
+ *
156
+ * @throws \InvalidArgumentException Thrown when arguments above are not
157
+ * passed or are passed incorrectly.
158
+ */
159
+ public function putObjectAsync(array $args)
160
+ {
161
+ $provider = $this->getMaterialsProvider($args);
162
+ unset($args['@MaterialsProvider']);
163
+ $instructionFileSuffix = $this->getInstructionFileSuffix($args);
164
+ unset($args['@InstructionFileSuffix']);
165
+ $strategy = $this->getMetadataStrategy($args, $instructionFileSuffix);
166
+ unset($args['@MetadataStrategy']);
167
+ $envelope = new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope();
168
+ return \DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Promise\promise_for($this->encrypt(\DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Psr7\stream_for($args['Body']), $args, $provider, $envelope))->then(function ($encryptedBodyStream) use($args) {
169
+ $hash = new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\PhpHash('sha256');
170
+ $hashingEncryptedBodyStream = new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\HashingStream($encryptedBodyStream, $hash, self::getContentShaDecorator($args));
171
+ return [$hashingEncryptedBodyStream, $args];
172
+ })->then(function ($putObjectContents) use($strategy, $envelope) {
173
+ list($bodyStream, $args) = $putObjectContents;
174
+ if ($strategy === null) {
175
+ $strategy = self::getDefaultStrategy();
176
+ }
177
+ $updatedArgs = $strategy->save($envelope, $args);
178
+ $updatedArgs['Body'] = $bodyStream;
179
+ return $updatedArgs;
180
+ })->then(function ($args) {
181
+ unset($args['@CipherOptions']);
182
+ return $this->client->putObjectAsync($args);
183
+ });
184
+ }
185
+ private static function getContentShaDecorator(&$args)
186
+ {
187
+ return function ($hash) use(&$args) {
188
+ $args['ContentSHA256'] = bin2hex($hash);
189
+ };
190
+ }
191
+ /**
192
+ * Encrypts the data in the 'Body' field of $args and uploads it to the
193
+ * specified location on S3.
194
+ *
195
+ * Note that for PHP versions of < 7.1, this operation uses an AES-GCM
196
+ * polyfill for encryption since there is no native PHP support. The
197
+ * performance for large inputs will be a lot slower than for PHP 7.1+, so
198
+ * upgrading older PHP version environments may be necessary to use this
199
+ * effectively.
200
+ *
201
+ * @param array $args Arguments for encrypting an object and uploading it
202
+ * to S3 via PutObject.
203
+ *
204
+ * The required configuration arguments are as follows:
205
+ *
206
+ * - @MaterialsProvider: (MaterialsProvider) Provides Cek, Iv, and Cek
207
+ * encrypting/decrypting for encryption metadata.
208
+ * - @CipherOptions: (array) Cipher options for encrypting data. A Cipher
209
+ * is required. Accepts the following options:
210
+ * - Cipher: (string) gcm
211
+ * See also: AbstractCryptoClientV2::$supportedCiphers
212
+ * - KeySize: (int) 128|256
213
+ * See also: MaterialsProvider::$supportedKeySizes
214
+ * - Aad: (string) Additional authentication data. This option is
215
+ * passed directly to OpenSSL when using gcm. Note if you pass in
216
+ * Aad, the PHP SDK will be able to decrypt the resulting object,
217
+ * but other AWS SDKs may not be able to do so.
218
+ * - @KmsEncryptionContext: (array) Only required if using
219
+ * KmsMaterialsProviderV2. An associative array of key-value
220
+ * pairs to be added to the encryption context for KMS key encryption. An
221
+ * empty array may be passed if no additional context is desired.
222
+ *
223
+ * The optional configuration arguments are as follows:
224
+ *
225
+ * - @MetadataStrategy: (MetadataStrategy|string|null) Strategy for storing
226
+ * MetadataEnvelope information. Defaults to using a
227
+ * HeadersMetadataStrategy. Can either be a class implementing
228
+ * MetadataStrategy, a class name of a predefined strategy, or empty/null
229
+ * to default.
230
+ * - @InstructionFileSuffix: (string|null) Suffix used when writing to an
231
+ * instruction file if an using an InstructionFileMetadataHandler was
232
+ * determined.
233
+ *
234
+ * @return \Aws\Result PutObject call result with the details of uploading
235
+ * the encrypted file.
236
+ *
237
+ * @throws \InvalidArgumentException Thrown when arguments above are not
238
+ * passed or are passed incorrectly.
239
+ */
240
+ public function putObject(array $args)
241
+ {
242
+ return $this->putObjectAsync($args)->wait();
243
+ }
244
+ /**
245
+ * Promises to retrieve an object from S3 and decrypt the data in the
246
+ * 'Body' field.
247
+ *
248
+ * @param array $args Arguments for retrieving an object from S3 via
249
+ * GetObject and decrypting it.
250
+ *
251
+ * The required configuration argument is as follows:
252
+ *
253
+ * - @MaterialsProvider: (MaterialsProviderInterface) Provides Cek, Iv, and Cek
254
+ * encrypting/decrypting for decryption metadata. May have data loaded
255
+ * from the MetadataEnvelope upon decryption.
256
+ * - @SecurityProfile: (string) Must be set to 'V2' or 'V2_AND_LEGACY'.
257
+ * - 'V2' indicates that only objects encrypted with S3EncryptionClientV2
258
+ * content encryption and key wrap schemas are able to be decrypted.
259
+ * - 'V2_AND_LEGACY' indicates that objects encrypted with both
260
+ * S3EncryptionClientV2 and older legacy encryption clients are able
261
+ * to be decrypted.
262
+ *
263
+ * The optional configuration arguments are as follows:
264
+ *
265
+ * - SaveAs: (string) The path to a file on disk to save the decrypted
266
+ * object data. This will be handled by file_put_contents instead of the
267
+ * Guzzle sink.
268
+ *
269
+ * - @MetadataStrategy: (MetadataStrategy|string|null) Strategy for reading
270
+ * MetadataEnvelope information. Defaults to determining based on object
271
+ * response headers. Can either be a class implementing MetadataStrategy,
272
+ * a class name of a predefined strategy, or empty/null to default.
273
+ * - @InstructionFileSuffix: (string) Suffix used when looking for an
274
+ * instruction file if an InstructionFileMetadataHandler is being used.
275
+ * - @CipherOptions: (array) Cipher options for decrypting data. A Cipher
276
+ * is required. Accepts the following options:
277
+ * - Aad: (string) Additional authentication data. This option is
278
+ * passed directly to OpenSSL when using gcm. It is ignored when
279
+ * using cbc.
280
+ * - @KmsAllowDecryptWithAnyCmk: (bool) This allows decryption with
281
+ * KMS materials for any KMS key ID, instead of needing the KMS key ID to
282
+ * be specified and provided to the decrypt operation. Ignored for non-KMS
283
+ * materials providers. Defaults to false.
284
+ *
285
+ * @return PromiseInterface
286
+ *
287
+ * @throws \InvalidArgumentException Thrown when required arguments are not
288
+ * passed or are passed incorrectly.
289
+ */
290
+ public function getObjectAsync(array $args)
291
+ {
292
+ $provider = $this->getMaterialsProvider($args);
293
+ unset($args['@MaterialsProvider']);
294
+ $instructionFileSuffix = $this->getInstructionFileSuffix($args);
295
+ unset($args['@InstructionFileSuffix']);
296
+ $strategy = $this->getMetadataStrategy($args, $instructionFileSuffix);
297
+ unset($args['@MetadataStrategy']);
298
+ if (!isset($args['@SecurityProfile']) || !in_array($args['@SecurityProfile'], self::$supportedSecurityProfiles)) {
299
+ throw new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\CryptoException("@SecurityProfile is required and must be" . " set to 'V2' or 'V2_AND_LEGACY'");
300
+ }
301
+ // Only throw this legacy warning once per client
302
+ if (in_array($args['@SecurityProfile'], self::$legacySecurityProfiles) && $this->legacyWarningCount < 1) {
303
+ $this->legacyWarningCount++;
304
+ trigger_error("This S3 Encryption Client operation is configured to" . " read encrypted data with legacy encryption modes. If you" . " don't have objects encrypted with these legacy modes," . " you should disable support for them to enhance security. ", E_USER_WARNING);
305
+ }
306
+ $saveAs = null;
307
+ if (!empty($args['SaveAs'])) {
308
+ $saveAs = $args['SaveAs'];
309
+ }
310
+ $promise = $this->client->getObjectAsync($args)->then(function ($result) use($provider, $instructionFileSuffix, $strategy, $args) {
311
+ if ($strategy === null) {
312
+ $strategy = $this->determineGetObjectStrategy($result, $instructionFileSuffix);
313
+ }
314
+ $envelope = $strategy->load($args + ['Metadata' => $result['Metadata']]);
315
+ $result['Body'] = $this->decrypt($result['Body'], $provider, $envelope, $args);
316
+ return $result;
317
+ })->then(function ($result) use($saveAs) {
318
+ if (!empty($saveAs)) {
319
+ file_put_contents($saveAs, (string) $result['Body'], LOCK_EX);
320
+ }
321
+ return $result;
322
+ });
323
+ return $promise;
324
+ }
325
+ /**
326
+ * Retrieves an object from S3 and decrypts the data in the 'Body' field.
327
+ *
328
+ * @param array $args Arguments for retrieving an object from S3 via
329
+ * GetObject and decrypting it.
330
+ *
331
+ * The required configuration argument is as follows:
332
+ *
333
+ * - @MaterialsProvider: (MaterialsProviderInterface) Provides Cek, Iv, and Cek
334
+ * encrypting/decrypting for decryption metadata. May have data loaded
335
+ * from the MetadataEnvelope upon decryption.
336
+ * - @SecurityProfile: (string) Must be set to 'V2' or 'V2_AND_LEGACY'.
337
+ * - 'V2' indicates that only objects encrypted with S3EncryptionClientV2
338
+ * content encryption and key wrap schemas are able to be decrypted.
339
+ * - 'V2_AND_LEGACY' indicates that objects encrypted with both
340
+ * S3EncryptionClientV2 and older legacy encryption clients are able
341
+ * to be decrypted.
342
+ *
343
+ * The optional configuration arguments are as follows:
344
+ *
345
+ * - SaveAs: (string) The path to a file on disk to save the decrypted
346
+ * object data. This will be handled by file_put_contents instead of the
347
+ * Guzzle sink.
348
+ * - @InstructionFileSuffix: (string|null) Suffix used when looking for an
349
+ * instruction file if an InstructionFileMetadataHandler was detected.
350
+ * - @CipherOptions: (array) Cipher options for encrypting data. A Cipher
351
+ * is required. Accepts the following options:
352
+ * - Aad: (string) Additional authentication data. This option is
353
+ * passed directly to OpenSSL when using gcm. It is ignored when
354
+ * using cbc.
355
+ * - @KmsAllowDecryptWithAnyCmk: (bool) This allows decryption with
356
+ * KMS materials for any KMS key ID, instead of needing the KMS key ID to
357
+ * be specified and provided to the decrypt operation. Ignored for non-KMS
358
+ * materials providers. Defaults to false.
359
+ *
360
+ * @return \Aws\Result GetObject call result with the 'Body' field
361
+ * wrapped in a decryption stream with its metadata
362
+ * information.
363
+ *
364
+ * @throws \InvalidArgumentException Thrown when arguments above are not
365
+ * passed or are passed incorrectly.
366
+ */
367
+ public function getObject(array $args)
368
+ {
369
+ return $this->getObjectAsync($args)->wait();
370
+ }
371
+ }
vendor/Aws3/Aws/S3/Crypto/S3EncryptionMultipartUploader.php CHANGED
@@ -11,10 +11,19 @@ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3\S3ClientInterface;
11
  use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Promise;
12
  /**
13
  * Encapsulates the execution of a multipart upload of an encrypted object to S3.
 
 
 
 
 
14
  */
15
  class S3EncryptionMultipartUploader extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3\MultipartUploader
16
  {
17
- use EncryptionTrait, CipherBuilderTrait, CryptoParamsTrait;
 
 
 
 
18
  /**
19
  * Returns if the passed cipher name is supported for encryption by the SDK.
20
  *
@@ -39,7 +48,8 @@ class S3EncryptionMultipartUploader extends \DeliciousBrains\WP_Offload_Media\Aw
39
  * - @CipherOptions: (array) Cipher options for encrypting data. A Cipher
40
  * is required. Accepts the following options:
41
  * - Cipher: (string) cbc|gcm
42
- * See also: AbstractCryptoClient::$supportedCiphers
 
43
  * - KeySize: (int) 128|192|256
44
  * See also: MaterialsProvider::$supportedKeySizes
45
  * - Aad: (string) Additional authentication data. This option is
@@ -90,6 +100,7 @@ class S3EncryptionMultipartUploader extends \DeliciousBrains\WP_Offload_Media\Aw
90
  */
91
  public function __construct(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3\S3ClientInterface $client, $source, array $config = [])
92
  {
 
93
  $this->client = $client;
94
  $config['params'] = [];
95
  if (!empty($config['bucket'])) {
11
  use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Promise;
12
  /**
13
  * Encapsulates the execution of a multipart upload of an encrypted object to S3.
14
+ *
15
+ * Legacy implementation using older encryption workflow. Use
16
+ * S3EncryptionMultipartUploaderV2 if possible.
17
+ *
18
+ * @deprecated
19
  */
20
  class S3EncryptionMultipartUploader extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3\MultipartUploader
21
  {
22
+ use CipherBuilderTrait;
23
+ use CryptoParamsTrait;
24
+ use EncryptionTrait;
25
+ use UserAgentTrait;
26
+ const CRYPTO_VERSION = '1n';
27
  /**
28
  * Returns if the passed cipher name is supported for encryption by the SDK.
29
  *
48
  * - @CipherOptions: (array) Cipher options for encrypting data. A Cipher
49
  * is required. Accepts the following options:
50
  * - Cipher: (string) cbc|gcm
51
+ * See also: AbstractCryptoClient::$supportedCiphers. Note that
52
+ * cbc is deprecated and gcm should be used when possible.
53
  * - KeySize: (int) 128|192|256
54
  * See also: MaterialsProvider::$supportedKeySizes
55
  * - Aad: (string) Additional authentication data. This option is
100
  */
101
  public function __construct(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3\S3ClientInterface $client, $source, array $config = [])
102
  {
103
+ $this->appendUserAgent($client, 'S3CryptoV' . self::CRYPTO_VERSION);
104
  $this->client = $client;
105
  $config['params'] = [];
106
  if (!empty($config['bucket'])) {
vendor/Aws3/Aws/S3/Crypto/S3EncryptionMultipartUploaderV2.php ADDED
@@ -0,0 +1,148 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3\Crypto;
4
+
5
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\AbstractCryptoClientV2;
6
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\EncryptionTraitV2;
7
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope;
8
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\Cipher\CipherBuilderTrait;
9
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3\MultipartUploader;
10
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3\S3ClientInterface;
11
+ use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Promise;
12
+ /**
13
+ * Encapsulates the execution of a multipart upload of an encrypted object to S3.
14
+ *
15
+ * Note that for PHP versions of < 7.1, this class uses an AES-GCM polyfill
16
+ * for encryption since there is no native PHP support. The performance for large
17
+ * inputs will be a lot slower than for PHP 7.1+, so upgrading older PHP version
18
+ * environments may be necessary to use this effectively.
19
+ */
20
+ class S3EncryptionMultipartUploaderV2 extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3\MultipartUploader
21
+ {
22
+ use CipherBuilderTrait;
23
+ use CryptoParamsTraitV2;
24
+ use EncryptionTraitV2;
25
+ use UserAgentTrait;
26
+ const CRYPTO_VERSION = '2.1';
27
+ /**
28
+ * Returns if the passed cipher name is supported for encryption by the SDK.
29
+ *
30
+ * @param string $cipherName The name of a cipher to verify is registered.
31
+ *
32
+ * @return bool If the cipher passed is in our supported list.
33
+ */
34
+ public static function isSupportedCipher($cipherName)
35
+ {
36
+ return in_array($cipherName, AbstractCryptoClientV2::$supportedCiphers);
37
+ }
38
+ private $provider;
39
+ private $instructionFileSuffix;
40
+ private $strategy;
41
+ /**
42
+ * Creates a multipart upload for an S3 object after encrypting it.
43
+ *
44
+ * Note that for PHP versions of < 7.1, this class uses an AES-GCM polyfill
45
+ * for encryption since there is no native PHP support. The performance for
46
+ * large inputs will be a lot slower than for PHP 7.1+, so upgrading older
47
+ * PHP version environments may be necessary to use this effectively.
48
+ *
49
+ * The required configuration options are as follows:
50
+ *
51
+ * - @MaterialsProvider: (MaterialsProviderV2) Provides Cek, Iv, and Cek
52
+ * encrypting/decrypting for encryption metadata.
53
+ * - @CipherOptions: (array) Cipher options for encrypting data. A Cipher
54
+ * is required. Accepts the following options:
55
+ * - Cipher: (string) gcm
56
+ * See also: AbstractCryptoClientV2::$supportedCiphers
57
+ * - KeySize: (int) 128|256
58
+ * See also: MaterialsProvider::$supportedKeySizes
59
+ * - Aad: (string) Additional authentication data. This option is
60
+ * passed directly to OpenSSL when using gcm.
61
+ * - @KmsEncryptionContext: (array) Only required if using
62
+ * KmsMaterialsProviderV2. An associative array of key-value
63
+ * pairs to be added to the encryption context for KMS key encryption. An
64
+ * empty array may be passed if no additional context is desired.
65
+ * - bucket: (string) Name of the bucket to which the object is
66
+ * being uploaded.
67
+ * - key: (string) Key to use for the object being uploaded.
68
+ *
69
+ * The optional configuration arguments are as follows:
70
+ *
71
+ * - @MetadataStrategy: (MetadataStrategy|string|null) Strategy for storing
72
+ * MetadataEnvelope information. Defaults to using a
73
+ * HeadersMetadataStrategy. Can either be a class implementing
74
+ * MetadataStrategy, a class name of a predefined strategy, or empty/null
75
+ * to default.
76
+ * - @InstructionFileSuffix: (string|null) Suffix used when writing to an
77
+ * instruction file if an using an InstructionFileMetadataHandler was
78
+ * determined.
79
+ * - acl: (string) ACL to set on the object being upload. Objects are
80
+ * private by default.
81
+ * - before_complete: (callable) Callback to invoke before the
82
+ * `CompleteMultipartUpload` operation. The callback should have a
83
+ * function signature like `function (Aws\Command $command) {...}`.
84
+ * - before_initiate: (callable) Callback to invoke before the
85
+ * `CreateMultipartUpload` operation. The callback should have a function
86
+ * signature like `function (Aws\Command $command) {...}`.
87
+ * - before_upload: (callable) Callback to invoke before any `UploadPart`
88
+ * operations. The callback should have a function signature like
89
+ * `function (Aws\Command $command) {...}`.
90
+ * - concurrency: (int, default=int(5)) Maximum number of concurrent
91
+ * `UploadPart` operations allowed during the multipart upload.
92
+ * - params: (array) An array of key/value parameters that will be applied
93
+ * to each of the sub-commands run by the uploader as a base.
94
+ * Auto-calculated options will override these parameters. If you need
95
+ * more granularity over parameters to each sub-command, use the before_*
96
+ * options detailed above to update the commands directly.
97
+ * - part_size: (int, default=int(5242880)) Part size, in bytes, to use when
98
+ * doing a multipart upload. This must between 5 MB and 5 GB, inclusive.
99
+ * - state: (Aws\Multipart\UploadState) An object that represents the state
100
+ * of the multipart upload and that is used to resume a previous upload.
101
+ * When this option is provided, the `bucket`, `key`, and `part_size`
102
+ * options are ignored.
103
+ *
104
+ * @param S3ClientInterface $client Client used for the upload.
105
+ * @param mixed $source Source of the data to upload.
106
+ * @param array $config Configuration used to perform the upload.
107
+ */
108
+ public function __construct(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3\S3ClientInterface $client, $source, array $config = [])
109
+ {
110
+ $this->appendUserAgent($client, 'S3CryptoV' . self::CRYPTO_VERSION);
111
+ $this->client = $client;
112
+ $config['params'] = [];
113
+ if (!empty($config['bucket'])) {
114
+ $config['params']['Bucket'] = $config['bucket'];
115
+ }
116
+ if (!empty($config['key'])) {
117
+ $config['params']['Key'] = $config['key'];
118
+ }
119
+ $this->provider = $this->getMaterialsProvider($config);
120
+ unset($config['@MaterialsProvider']);
121
+ $this->instructionFileSuffix = $this->getInstructionFileSuffix($config);
122
+ unset($config['@InstructionFileSuffix']);
123
+ $this->strategy = $this->getMetadataStrategy($config, $this->instructionFileSuffix);
124
+ if ($this->strategy === null) {
125
+ $this->strategy = self::getDefaultStrategy();
126
+ }
127
+ unset($config['@MetadataStrategy']);
128
+ $config['prepare_data_source'] = $this->getEncryptingDataPreparer();
129
+ parent::__construct($client, $source, $config);
130
+ }
131
+ private static function getDefaultStrategy()
132
+ {
133
+ return new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3\Crypto\HeadersMetadataStrategy();
134
+ }
135
+ private function getEncryptingDataPreparer()
136
+ {
137
+ return function () {
138
+ // Defer encryption work until promise is executed
139
+ $envelope = new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Crypto\MetadataEnvelope();
140
+ list($this->source, $params) = \DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Promise\promise_for($this->encrypt($this->source, $this->config ?: [], $this->provider, $envelope))->then(function ($bodyStream) use($envelope) {
141
+ $params = $this->strategy->save($envelope, $this->config['params']);
142
+ return [$bodyStream, $params];
143
+ })->wait();
144
+ $this->source->rewind();
145
+ $this->config['params'] = $params;
146
+ };
147
+ }
148
+ }
vendor/Aws3/Aws/S3/Crypto/UserAgentTrait.php ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3\Crypto;
4
+
5
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\AwsClientInterface;
6
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Middleware;
7
+ use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\RequestInterface;
8
+ trait UserAgentTrait
9
+ {
10
+ private function appendUserAgent(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\AwsClientInterface $client, $agentString)
11
+ {
12
+ $list = $client->getHandlerList();
13
+ $list->appendBuild(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Middleware::mapRequest(function (\DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\RequestInterface $req) use($agentString) {
14
+ if (!empty($req->getHeader('User-Agent')) && !empty($req->getHeader('User-Agent')[0])) {
15
+ $userAgent = $req->getHeader('User-Agent')[0];
16
+ if (strpos($userAgent, $agentString) === false) {
17
+ $userAgent .= " {$agentString}";
18
+ }
19
+ } else {
20
+ $userAgent = $agentString;
21
+ }
22
+ $req = $req->withHeader('User-Agent', $userAgent);
23
+ return $req;
24
+ }));
25
+ }
26
+ }
vendor/Aws3/Aws/S3/MultipartCopy.php CHANGED
@@ -49,9 +49,9 @@ class MultipartCopy extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Multipart
49
  * result of executing a HeadObject command on the copy source.
50
  *
51
  * @param S3ClientInterface $client Client used for the upload.
52
- * @param string $source Location of the data to be copied
53
  * (in the form /<bucket>/<key>).
54
- * @param array $config Configuration used to perform the upload.
55
  */
56
  public function __construct(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3\S3ClientInterface $client, $source, array $config = [])
57
  {
@@ -97,7 +97,8 @@ class MultipartCopy extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Multipart
97
  foreach ($params as $k => $v) {
98
  $data[$k] = $v;
99
  }
100
- $data['CopySource'] = $this->source;
 
101
  $data['PartNumber'] = $partNumber;
102
  $defaultPartSize = $this->determinePartSize();
103
  $startByte = $defaultPartSize * ($partNumber - 1);
49
  * result of executing a HeadObject command on the copy source.
50
  *
51
  * @param S3ClientInterface $client Client used for the upload.
52
+ * @param string $source Location of the data to be copied
53
  * (in the form /<bucket>/<key>).
54
+ * @param array $config Configuration used to perform the upload.
55
  */
56
  public function __construct(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3\S3ClientInterface $client, $source, array $config = [])
57
  {
97
  foreach ($params as $k => $v) {
98
  $data[$k] = $v;
99
  }
100
+ list($bucket, $key) = explode('/', ltrim($this->source, '/'), 2);
101
+ $data['CopySource'] = '/' . $bucket . '/' . rawurlencode(implode('/', array_map('urlencode', explode('/', $key))));
102
  $data['PartNumber'] = $partNumber;
103
  $defaultPartSize = $this->determinePartSize();
104
  $startByte = $defaultPartSize * ($partNumber - 1);
vendor/Aws3/Aws/S3/PostObjectV4.php CHANGED
@@ -42,7 +42,7 @@ class PostObjectV4
42
  $this->formAttributes = ['action' => $this->generateUri(), 'method' => 'POST', 'enctype' => 'multipart/form-data'];
43
  $credentials = $this->client->getCredentials()->wait();
44
  if ($securityToken = $credentials->getSecurityToken()) {
45
- array_push($options, ['x-amz-security-token' => $securityToken]);
46
  $formInputs['X-Amz-Security-Token'] = $securityToken;
47
  }
48
  // setup basic policy
42
  $this->formAttributes = ['action' => $this->generateUri(), 'method' => 'POST', 'enctype' => 'multipart/form-data'];
43
  $credentials = $this->client->getCredentials()->wait();
44
  if ($securityToken = $credentials->getSecurityToken()) {
45
+ $options[] = ['x-amz-security-token' => $securityToken];
46
  $formInputs['X-Amz-Security-Token'] = $securityToken;
47
  }
48
  // setup basic policy
vendor/Aws3/Aws/S3/RegionalEndpoint/ConfigurationProvider.php CHANGED
@@ -66,7 +66,11 @@ class ConfigurationProvider extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\A
66
  */
67
  public static function defaultProvider(array $config = [])
68
  {
69
- $configProviders = [self::env(), self::ini(), self::fallback()];
 
 
 
 
70
  $memo = self::memoize(call_user_func_array('self::chain', $configProviders));
71
  if (isset($config['s3_us_east_1_regional_endpoint']) && $config['s3_us_east_1_regional_endpoint'] instanceof CacheInterface) {
72
  return self::cache($memo, $config['s3_us_east_1_regional_endpoint'], self::$cacheKey);
66
  */
67
  public static function defaultProvider(array $config = [])
68
  {
69
+ $configProviders = [self::env()];
70
+ if (!isset($config['use_aws_shared_config_files']) || $config['use_aws_shared_config_files'] != false) {
71
+ $configProviders[] = self::ini();
72
+ }
73
+ $configProviders[] = self::fallback();
74
  $memo = self::memoize(call_user_func_array('self::chain', $configProviders));
75
  if (isset($config['s3_us_east_1_regional_endpoint']) && $config['s3_us_east_1_regional_endpoint'] instanceof CacheInterface) {
76
  return self::cache($memo, $config['s3_us_east_1_regional_endpoint'], self::$cacheKey);
vendor/Aws3/Aws/S3/S3Client.php CHANGED
@@ -12,9 +12,11 @@ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Command;
12
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\AwsException;
13
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\HandlerList;
14
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Middleware;
 
15
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\RetryMiddleware;
16
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\ResultInterface;
17
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface;
 
18
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3\UseArnRegion\Configuration;
19
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3\UseArnRegion\ConfigurationInterface;
20
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3\UseArnRegion\ConfigurationProvider as UseArnRegionConfigurationProvider;
@@ -263,21 +265,19 @@ class S3Client extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\AwsClient impl
263
  */
264
  public function __construct(array $args)
265
  {
266
- if (!isset($args['s3_us_east_1_regional_endpoint'])) {
267
- $args['s3_us_east_1_regional_endpoint'] = \DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3\RegionalEndpoint\ConfigurationProvider::defaultProvider();
268
- } elseif ($args['s3_us_east_1_regional_endpoint'] instanceof CacheInterface) {
269
  $args['s3_us_east_1_regional_endpoint'] = \DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3\RegionalEndpoint\ConfigurationProvider::defaultProvider($args);
270
  }
271
  parent::__construct($args);
272
  $stack = $this->getHandlerList();
273
  $stack->appendInit(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3\SSECMiddleware::wrap($this->getEndpoint()->getScheme()), 's3.ssec');
274
- $stack->appendBuild(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3\ApplyChecksumMiddleware::wrap(), 's3.checksum');
275
  $stack->appendBuild(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Middleware::contentType(['PutObject', 'UploadPart']), 's3.content_type');
276
  // Use the bucket style middleware when using a "bucket_endpoint" (for cnames)
277
  if ($this->getConfig('bucket_endpoint')) {
278
  $stack->appendBuild(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3\BucketEndpointMiddleware::wrap(), 's3.bucket_endpoint');
279
  } else {
280
- $stack->appendBuild(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3\S3EndpointMiddleware::wrap($this->getRegion(), ['dual_stack' => $this->getConfig('use_dual_stack_endpoint'), 'accelerate' => $this->getConfig('use_accelerate_endpoint'), 'path_style' => $this->getConfig('use_path_style_endpoint')]), 's3.endpoint_middleware');
281
  }
282
  $stack->appendBuild(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3\BucketEndpointArnMiddleware::wrap($this->getApi(), $this->getRegion(), ['use_arn_region' => $this->getConfig('use_arn_region'), 'dual_stack' => $this->getConfig('use_dual_stack_endpoint'), 'accelerate' => $this->getConfig('use_accelerate_endpoint'), 'path_style' => $this->getConfig('use_path_style_endpoint'), 'endpoint' => isset($args['endpoint']) ? $args['endpoint'] : null]), 's3.bucket_endpoint_arn');
283
  $stack->appendSign(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3\PutObjectUrlMiddleware::wrap(), 's3.put_object_url');
@@ -455,32 +455,49 @@ class S3Client extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\AwsClient impl
455
  };
456
  }
457
  /** @internal */
458
- public static function _applyRetryConfig($value, $_, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\HandlerList $list)
459
  {
460
- if (!$value) {
461
- return;
462
- }
463
- $decider = \DeliciousBrains\WP_Offload_Media\Aws3\Aws\RetryMiddleware::createDefaultDecider($value);
464
- $decider = function ($retries, $command, $request, $result, $error) use($decider, $value) {
465
- $maxRetries = null !== $command['@retries'] ? $command['@retries'] : $value;
466
- if ($decider($retries, $command, $request, $result, $error)) {
467
- return true;
468
- }
469
- if ($error instanceof AwsException && $retries < $maxRetries) {
470
- if ($error->getResponse() && $error->getResponse()->getStatusCode() >= 400) {
471
- return strpos($error->getResponse()->getBody(), 'Your socket connection to the server') !== false;
472
- }
473
- if ($error->getPrevious() instanceof RequestException) {
474
- // All commands except CompleteMultipartUpload are
475
- // idempotent and may be retried without worry if a
476
- // networking error has occurred.
477
- return $command->getName() !== 'CompleteMultipartUpload';
478
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
479
  }
480
- return false;
481
- };
482
- $delay = [\DeliciousBrains\WP_Offload_Media\Aws3\Aws\RetryMiddleware::class, 'exponentialDelay'];
483
- $list->appendSign(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Middleware::retry($decider, $delay), 'retry');
484
  }
485
  /** @internal */
486
  public static function _applyApiProvider($value, array &$args, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\HandlerList $list)
12
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\AwsException;
13
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\HandlerList;
14
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Middleware;
15
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Retry\QuotaManager;
16
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\RetryMiddleware;
17
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\ResultInterface;
18
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface;
19
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\RetryMiddlewareV2;
20
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3\UseArnRegion\Configuration;
21
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3\UseArnRegion\ConfigurationInterface;
22
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3\UseArnRegion\ConfigurationProvider as UseArnRegionConfigurationProvider;
265
  */
266
  public function __construct(array $args)
267
  {
268
+ if (!isset($args['s3_us_east_1_regional_endpoint']) || $args['s3_us_east_1_regional_endpoint'] instanceof CacheInterface) {
 
 
269
  $args['s3_us_east_1_regional_endpoint'] = \DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3\RegionalEndpoint\ConfigurationProvider::defaultProvider($args);
270
  }
271
  parent::__construct($args);
272
  $stack = $this->getHandlerList();
273
  $stack->appendInit(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3\SSECMiddleware::wrap($this->getEndpoint()->getScheme()), 's3.ssec');
274
+ $stack->appendBuild(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3\ApplyChecksumMiddleware::wrap($this->getApi()), 's3.checksum');
275
  $stack->appendBuild(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Middleware::contentType(['PutObject', 'UploadPart']), 's3.content_type');
276
  // Use the bucket style middleware when using a "bucket_endpoint" (for cnames)
277
  if ($this->getConfig('bucket_endpoint')) {
278
  $stack->appendBuild(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3\BucketEndpointMiddleware::wrap(), 's3.bucket_endpoint');
279
  } else {
280
+ $stack->appendBuild(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3\S3EndpointMiddleware::wrap($this->getRegion(), $this->getConfig('endpoint_provider'), ['dual_stack' => $this->getConfig('use_dual_stack_endpoint'), 'accelerate' => $this->getConfig('use_accelerate_endpoint'), 'path_style' => $this->getConfig('use_path_style_endpoint')]), 's3.endpoint_middleware');
281
  }
282
  $stack->appendBuild(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3\BucketEndpointArnMiddleware::wrap($this->getApi(), $this->getRegion(), ['use_arn_region' => $this->getConfig('use_arn_region'), 'dual_stack' => $this->getConfig('use_dual_stack_endpoint'), 'accelerate' => $this->getConfig('use_accelerate_endpoint'), 'path_style' => $this->getConfig('use_path_style_endpoint'), 'endpoint' => isset($args['endpoint']) ? $args['endpoint'] : null]), 's3.bucket_endpoint_arn');
283
  $stack->appendSign(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3\PutObjectUrlMiddleware::wrap(), 's3.put_object_url');
455
  };
456
  }
457
  /** @internal */
458
+ public static function _applyRetryConfig($value, $args, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\HandlerList $list)
459
  {
460
+ if ($value) {
461
+ $config = \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Retry\ConfigurationProvider::unwrap($value);
462
+ if ($config->getMode() === 'legacy') {
463
+ $maxRetries = $config->getMaxAttempts() - 1;
464
+ $decider = \DeliciousBrains\WP_Offload_Media\Aws3\Aws\RetryMiddleware::createDefaultDecider($maxRetries);
465
+ $decider = function ($retries, $command, $request, $result, $error) use($decider, $maxRetries) {
466
+ $maxRetries = null !== $command['@retries'] ? $command['@retries'] : $maxRetries;
467
+ if ($decider($retries, $command, $request, $result, $error)) {
468
+ return true;
469
+ }
470
+ if ($error instanceof AwsException && $retries < $maxRetries) {
471
+ if ($error->getResponse() && $error->getResponse()->getStatusCode() >= 400) {
472
+ return strpos($error->getResponse()->getBody(), 'Your socket connection to the server') !== false;
473
+ }
474
+ if ($error->getPrevious() instanceof RequestException) {
475
+ // All commands except CompleteMultipartUpload are
476
+ // idempotent and may be retried without worry if a
477
+ // networking error has occurred.
478
+ return $command->getName() !== 'CompleteMultipartUpload';
479
+ }
480
+ }
481
+ return false;
482
+ };
483
+ $delay = [\DeliciousBrains\WP_Offload_Media\Aws3\Aws\RetryMiddleware::class, 'exponentialDelay'];
484
+ $list->appendSign(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Middleware::retry($decider, $delay), 'retry');
485
+ } else {
486
+ $defaultDecider = \DeliciousBrains\WP_Offload_Media\Aws3\Aws\RetryMiddlewareV2::createDefaultDecider(new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Retry\QuotaManager(), $config->getMaxAttempts());
487
+ $list->appendSign(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\RetryMiddlewareV2::wrap($config, ['collect_stats' => $args['stats']['retries'], 'decider' => function ($attempts, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface $cmd, $result) use($defaultDecider, $config) {
488
+ $isRetryable = $defaultDecider($attempts, $cmd, $result);
489
+ if (!$isRetryable && $result instanceof AwsException && $attempts < $config->getMaxAttempts()) {
490
+ if (!empty($result->getResponse()) && strpos($result->getResponse()->getBody(), 'Your socket connection to the server') !== false) {
491
+ $isRetryable = false;
492
+ }
493
+ if ($result->getPrevious() instanceof RequestException && $cmd->getName() !== 'CompleteMultipartUpload') {
494
+ $isRetryable = true;
495
+ }
496
+ }
497
+ return $isRetryable;
498
+ }]), 'retry');
499
  }
500
+ }
 
 
 
501
  }
502
  /** @internal */
503
  public static function _applyApiProvider($value, array &$args, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\HandlerList $list)
vendor/Aws3/Aws/S3/S3EndpointMiddleware.php CHANGED
@@ -3,6 +3,8 @@
3
  namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3;
4
 
5
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface;
 
 
6
  use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\RequestInterface;
7
  /**
8
  * Used to update the URL used for S3 requests to support:
@@ -32,27 +34,31 @@ class S3EndpointMiddleware
32
  /** @var string */
33
  private $region;
34
  /** @var callable */
 
 
35
  private $nextHandler;
36
  /**
37
  * Create a middleware wrapper function
38
  *
39
  * @param string $region
 
40
  * @param array $options
41
  *
42
  * @return callable
43
  */
44
- public static function wrap($region, array $options)
45
  {
46
- return function (callable $handler) use($region, $options) {
47
- return new self($handler, $region, $options);
48
  };
49
  }
50
- public function __construct(callable $nextHandler, $region, array $options)
51
  {
52
  $this->pathStyleByDefault = isset($options['path_style']) ? (bool) $options['path_style'] : false;
53
  $this->dualStackByDefault = isset($options['dual_stack']) ? (bool) $options['dual_stack'] : false;
54
  $this->accelerateByDefault = isset($options['accelerate']) ? (bool) $options['accelerate'] : false;
55
  $this->region = (string) $region;
 
56
  $this->nextHandler = $nextHandler;
57
  }
58
  public function __invoke(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface $command, \DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\RequestInterface $request)
@@ -130,7 +136,8 @@ class S3EndpointMiddleware
130
  }
131
  private function getDualStackHost()
132
  {
133
- return "s3.dualstack.{$this->region}.amazonaws.com";
 
134
  }
135
  private function applyAccelerateEndpoint(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface $command, \DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\RequestInterface $request, $pattern)
136
  {
@@ -139,7 +146,8 @@ class S3EndpointMiddleware
139
  }
140
  private function getAccelerateHost(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface $command, $pattern)
141
  {
142
- return "{$command['Bucket']}.{$pattern}.amazonaws.com";
 
143
  }
144
  private function getBucketlessPath($path, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface $command)
145
  {
3
  namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\S3;
4
 
5
  use DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface;
6
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Endpoint\EndpointProvider;
7
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Endpoint\PartitionEndpointProvider;
8
  use DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\RequestInterface;
9
  /**
10
  * Used to update the URL used for S3 requests to support:
34
  /** @var string */
35
  private $region;
36
  /** @var callable */
37
+ private $endpointProvider;
38
+ /** @var callable */
39
  private $nextHandler;
40
  /**
41
  * Create a middleware wrapper function
42
  *
43
  * @param string $region
44
+ * @param EndpointProvider $endpointProvider
45
  * @param array $options
46
  *
47
  * @return callable
48
  */
49
+ public static function wrap($region, $endpointProvider, array $options)
50
  {
51
+ return function (callable $handler) use($region, $endpointProvider, $options) {
52
+ return new self($handler, $region, $options, $endpointProvider);
53
  };
54
  }
55
+ public function __construct(callable $nextHandler, $region, array $options, $endpointProvider = null)
56
  {
57
  $this->pathStyleByDefault = isset($options['path_style']) ? (bool) $options['path_style'] : false;
58
  $this->dualStackByDefault = isset($options['dual_stack']) ? (bool) $options['dual_stack'] : false;
59
  $this->accelerateByDefault = isset($options['accelerate']) ? (bool) $options['accelerate'] : false;
60
  $this->region = (string) $region;
61
+ $this->endpointProvider = is_null($endpointProvider) ? \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Endpoint\PartitionEndpointProvider::defaultProvider() : $endpointProvider;
62
  $this->nextHandler = $nextHandler;
63
  }
64
  public function __invoke(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface $command, \DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\RequestInterface $request)
136
  }
137
  private function getDualStackHost()
138
  {
139
+ $dnsSuffix = $this->endpointProvider->getPartition($this->region, 's3')->getDnsSuffix();
140
+ return "s3.dualstack.{$this->region}.{$dnsSuffix}";
141
  }
142
  private function applyAccelerateEndpoint(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface $command, \DeliciousBrains\WP_Offload_Media\Aws3\Psr\Http\Message\RequestInterface $request, $pattern)
143
  {
146
  }
147
  private function getAccelerateHost(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface $command, $pattern)
148
  {
149
+ $dnsSuffix = $this->endpointProvider->getPartition($this->region, 's3')->getDnsSuffix();
150
+ return "{$command['Bucket']}.{$pattern}.{$dnsSuffix}";
151
  }
152
  private function getBucketlessPath($path, \DeliciousBrains\WP_Offload_Media\Aws3\Aws\CommandInterface $command)
153
  {
vendor/Aws3/Aws/S3/StreamWrapper.php CHANGED
@@ -156,7 +156,7 @@ class StreamWrapper
156
  if (!isset($params['ContentType']) && ($type = \DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Psr7\mimetype_from_filename($params['Key']))) {
157
  $params['ContentType'] = $type;
158
  }
159
- $this->clearCacheKey("s3://{$params['Bucket']}/{$params['Key']}");
160
  return $this->boolCall(function () use($params) {
161
  return (bool) $this->getClient()->putObject($params);
162
  });
156
  if (!isset($params['ContentType']) && ($type = \DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Psr7\mimetype_from_filename($params['Key']))) {
157
  $params['ContentType'] = $type;
158
  }
159
+ $this->clearCacheKey("{$this->protocol}://{$params['Bucket']}/{$params['Key']}");
160
  return $this->boolCall(function () use($params) {
161
  return (bool) $this->getClient()->putObject($params);
162
  });
vendor/Aws3/Aws/S3/UseArnRegion/ConfigurationProvider.php CHANGED
@@ -66,7 +66,11 @@ class ConfigurationProvider extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\A
66
  */
67
  public static function defaultProvider(array $config = [])
68
  {
69
- $configProviders = [self::env(), self::ini(), self::fallback()];
 
 
 
 
70
  $memo = self::memoize(call_user_func_array('self::chain', $configProviders));
71
  if (isset($config['use_arn_region']) && $config['use_arn_region'] instanceof CacheInterface) {
72
  return self::cache($memo, $config['use_arn_region'], self::$cacheKey);
66
  */
67
  public static function defaultProvider(array $config = [])
68
  {
69
+ $configProviders = [self::env()];
70
+ if (!isset($config['use_aws_shared_config_files']) || $config['use_aws_shared_config_files'] != false) {
71
+ $configProviders[] = self::ini();
72
+ }
73
+ $configProviders[] = self::fallback();
74
  $memo = self::memoize(call_user_func_array('self::chain', $configProviders));
75
  if (isset($config['use_arn_region']) && $config['use_arn_region'] instanceof CacheInterface) {
76
  return self::cache($memo, $config['use_arn_region'], self::$cacheKey);
vendor/Aws3/Aws/Sdk.php CHANGED
@@ -47,6 +47,8 @@ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws;
47
  * @method \Aws\MultiRegionClient createMultiRegionBackup(array $args = [])
48
  * @method \Aws\Batch\BatchClient createBatch(array $args = [])
49
  * @method \Aws\MultiRegionClient createMultiRegionBatch(array $args = [])
 
 
50
  * @method \Aws\Budgets\BudgetsClient createBudgets(array $args = [])
51
  * @method \Aws\MultiRegionClient createMultiRegionBudgets(array $args = [])
52
  * @method \Aws\Chime\ChimeClient createChime(array $args = [])
@@ -75,6 +77,8 @@ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws;
75
  * @method \Aws\MultiRegionClient createMultiRegionCloudWatchEvents(array $args = [])
76
  * @method \Aws\CloudWatchLogs\CloudWatchLogsClient createCloudWatchLogs(array $args = [])
77
  * @method \Aws\MultiRegionClient createMultiRegionCloudWatchLogs(array $args = [])
 
 
78
  * @method \Aws\CodeBuild\CodeBuildClient createCodeBuild(array $args = [])
79
  * @method \Aws\MultiRegionClient createMultiRegionCodeBuild(array $args = [])
80
  * @method \Aws\CodeCommit\CodeCommitClient createCodeCommit(array $args = [])
@@ -201,8 +205,14 @@ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws;
201
  * @method \Aws\MultiRegionClient createMultiRegionGuardDuty(array $args = [])
202
  * @method \Aws\Health\HealthClient createHealth(array $args = [])
203
  * @method \Aws\MultiRegionClient createMultiRegionHealth(array $args = [])
 
 
 
 
204
  * @method \Aws\Iam\IamClient createIam(array $args = [])
205
  * @method \Aws\MultiRegionClient createMultiRegionIam(array $args = [])
 
 
206
  * @method \Aws\ImportExport\ImportExportClient createImportExport(array $args = [])
207
  * @method \Aws\MultiRegionClient createMultiRegionImportExport(array $args = [])
208
  * @method \Aws\Inspector\InspectorClient createInspector(array $args = [])
@@ -221,6 +231,8 @@ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws;
221
  * @method \Aws\MultiRegionClient createMultiRegionIoTJobsDataPlane(array $args = [])
222
  * @method \Aws\IoTSecureTunneling\IoTSecureTunnelingClient createIoTSecureTunneling(array $args = [])
223
  * @method \Aws\MultiRegionClient createMultiRegionIoTSecureTunneling(array $args = [])
 
 
224
  * @method \Aws\IoTThingsGraph\IoTThingsGraphClient createIoTThingsGraph(array $args = [])
225
  * @method \Aws\MultiRegionClient createMultiRegionIoTThingsGraph(array $args = [])
226
  * @method \Aws\Iot\IotClient createIot(array $args = [])
@@ -265,6 +277,8 @@ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws;
265
  * @method \Aws\MultiRegionClient createMultiRegionMachineLearning(array $args = [])
266
  * @method \Aws\Macie\MacieClient createMacie(array $args = [])
267
  * @method \Aws\MultiRegionClient createMultiRegionMacie(array $args = [])
 
 
268
  * @method \Aws\ManagedBlockchain\ManagedBlockchainClient createManagedBlockchain(array $args = [])
269
  * @method \Aws\MultiRegionClient createMultiRegionManagedBlockchain(array $args = [])
270
  * @method \Aws\MarketplaceCatalog\MarketplaceCatalogClient createMarketplaceCatalog(array $args = [])
@@ -409,6 +423,8 @@ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws;
409
  * @method \Aws\MultiRegionClient createMultiRegionSupport(array $args = [])
410
  * @method \Aws\Swf\SwfClient createSwf(array $args = [])
411
  * @method \Aws\MultiRegionClient createMultiRegionSwf(array $args = [])
 
 
412
  * @method \Aws\Textract\TextractClient createTextract(array $args = [])
413
  * @method \Aws\MultiRegionClient createMultiRegionTextract(array $args = [])
414
  * @method \Aws\TranscribeService\TranscribeServiceClient createTranscribeService(array $args = [])
@@ -444,7 +460,7 @@ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws;
444
  */
445
  class Sdk
446
  {
447
- const VERSION = '3.133.40';
448
  /** @var array Arguments for creating clients */
449
  private $args;
450
  /**
47
  * @method \Aws\MultiRegionClient createMultiRegionBackup(array $args = [])
48
  * @method \Aws\Batch\BatchClient createBatch(array $args = [])
49
  * @method \Aws\MultiRegionClient createMultiRegionBatch(array $args = [])
50
+ * @method \Aws\Braket\BraketClient createBraket(array $args = [])
51
+ * @method \Aws\MultiRegionClient createMultiRegionBraket(array $args = [])
52
  * @method \Aws\Budgets\BudgetsClient createBudgets(array $args = [])
53
  * @method \Aws\MultiRegionClient createMultiRegionBudgets(array $args = [])
54
  * @method \Aws\Chime\ChimeClient createChime(array $args = [])
77
  * @method \Aws\MultiRegionClient createMultiRegionCloudWatchEvents(array $args = [])
78
  * @method \Aws\CloudWatchLogs\CloudWatchLogsClient createCloudWatchLogs(array $args = [])
79
  * @method \Aws\MultiRegionClient createMultiRegionCloudWatchLogs(array $args = [])
80
+ * @method \Aws\CodeArtifact\CodeArtifactClient createCodeArtifact(array $args = [])
81
+ * @method \Aws\MultiRegionClient createMultiRegionCodeArtifact(array $args = [])
82
  * @method \Aws\CodeBuild\CodeBuildClient createCodeBuild(array $args = [])
83
  * @method \Aws\MultiRegionClient createMultiRegionCodeBuild(array $args = [])
84
  * @method \Aws\CodeCommit\CodeCommitClient createCodeCommit(array $args = [])
205
  * @method \Aws\MultiRegionClient createMultiRegionGuardDuty(array $args = [])
206
  * @method \Aws\Health\HealthClient createHealth(array $args = [])
207
  * @method \Aws\MultiRegionClient createMultiRegionHealth(array $args = [])
208
+ * @method \Aws\Honeycode\HoneycodeClient createHoneycode(array $args = [])
209
+ * @method \Aws\MultiRegionClient createMultiRegionHoneycode(array $args = [])
210
+ * @method \Aws\IVS\IVSClient createIVS(array $args = [])
211
+ * @method \Aws\MultiRegionClient createMultiRegionIVS(array $args = [])
212
  * @method \Aws\Iam\IamClient createIam(array $args = [])
213
  * @method \Aws\MultiRegionClient createMultiRegionIam(array $args = [])
214
+ * @method \Aws\IdentityStore\IdentityStoreClient createIdentityStore(array $args = [])
215
+ * @method \Aws\MultiRegionClient createMultiRegionIdentityStore(array $args = [])
216
  * @method \Aws\ImportExport\ImportExportClient createImportExport(array $args = [])
217
  * @method \Aws\MultiRegionClient createMultiRegionImportExport(array $args = [])
218
  * @method \Aws\Inspector\InspectorClient createInspector(array $args = [])
231
  * @method \Aws\MultiRegionClient createMultiRegionIoTJobsDataPlane(array $args = [])
232
  * @method \Aws\IoTSecureTunneling\IoTSecureTunnelingClient createIoTSecureTunneling(array $args = [])
233
  * @method \Aws\MultiRegionClient createMultiRegionIoTSecureTunneling(array $args = [])
234
+ * @method \Aws\IoTSiteWise\IoTSiteWiseClient createIoTSiteWise(array $args = [])
235
+ * @method \Aws\MultiRegionClient createMultiRegionIoTSiteWise(array $args = [])
236
  * @method \Aws\IoTThingsGraph\IoTThingsGraphClient createIoTThingsGraph(array $args = [])
237
  * @method \Aws\MultiRegionClient createMultiRegionIoTThingsGraph(array $args = [])
238
  * @method \Aws\Iot\IotClient createIot(array $args = [])
277
  * @method \Aws\MultiRegionClient createMultiRegionMachineLearning(array $args = [])
278
  * @method \Aws\Macie\MacieClient createMacie(array $args = [])
279
  * @method \Aws\MultiRegionClient createMultiRegionMacie(array $args = [])
280
+ * @method \Aws\Macie2\Macie2Client createMacie2(array $args = [])
281
+ * @method \Aws\MultiRegionClient createMultiRegionMacie2(array $args = [])
282
  * @method \Aws\ManagedBlockchain\ManagedBlockchainClient createManagedBlockchain(array $args = [])
283
  * @method \Aws\MultiRegionClient createMultiRegionManagedBlockchain(array $args = [])
284
  * @method \Aws\MarketplaceCatalog\MarketplaceCatalogClient createMarketplaceCatalog(array $args = [])
423
  * @method \Aws\MultiRegionClient createMultiRegionSupport(array $args = [])
424
  * @method \Aws\Swf\SwfClient createSwf(array $args = [])
425
  * @method \Aws\MultiRegionClient createMultiRegionSwf(array $args = [])
426
+ * @method \Aws\Synthetics\SyntheticsClient createSynthetics(array $args = [])
427
+ * @method \Aws\MultiRegionClient createMultiRegionSynthetics(array $args = [])
428
  * @method \Aws\Textract\TextractClient createTextract(array $args = [])
429
  * @method \Aws\MultiRegionClient createMultiRegionTextract(array $args = [])
430
  * @method \Aws\TranscribeService\TranscribeServiceClient createTranscribeService(array $args = [])
460
  */
461
  class Sdk
462
  {
463
+ const VERSION = '3.150.1';
464
  /** @var array Arguments for creating clients */
465
  private $args;
466
  /**
vendor/Aws3/Aws/Sts/Exception/StsException.php ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Sts\Exception;
4
+
5
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\AwsException;
6
+ /**
7
+ * AWS Security Token Service exception.
8
+ */
9
+ class StsException extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Exception\AwsException
10
+ {
11
+ }
vendor/Aws3/Aws/Sts/RegionalEndpoints/Configuration.php ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Sts\RegionalEndpoints;
4
+
5
+ class Configuration implements \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Sts\RegionalEndpoints\ConfigurationInterface
6
+ {
7
+ private $endpointsType;
8
+ public function __construct($endpointsType)
9
+ {
10
+ $this->endpointsType = strtolower($endpointsType);
11
+ if (!in_array($this->endpointsType, ['legacy', 'regional'])) {
12
+ throw new \InvalidArgumentException("Configuration parameter must either be 'legacy' or 'regional'.");
13
+ }
14
+ }
15
+ /**
16
+ * {@inheritdoc}
17
+ */
18
+ public function getEndpointsType()
19
+ {
20
+ return $this->endpointsType;
21
+ }
22
+ /**
23
+ * {@inheritdoc}
24
+ */
25
+ public function toArray()
26
+ {
27
+ return ['endpoints_type' => $this->getEndpointsType()];
28
+ }
29
+ }
vendor/Aws3/Aws/Sts/RegionalEndpoints/ConfigurationInterface.php ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Sts\RegionalEndpoints;
4
+
5
+ /**
6
+ * Provides access to STS regional endpoints configuration options: endpoints_type
7
+ */
8
+ interface ConfigurationInterface
9
+ {
10
+ /**
11
+ * Returns the endpoints type
12
+ *
13
+ * @return string
14
+ */
15
+ public function getEndpointsType();
16
+ /**
17
+ * Returns the configuration as an associative array
18
+ *
19
+ * @return array
20
+ */
21
+ public function toArray();
22
+ }
vendor/Aws3/Aws/Sts/RegionalEndpoints/ConfigurationProvider.php ADDED
@@ -0,0 +1,169 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Sts\RegionalEndpoints;
4
+
5
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\AbstractConfigurationProvider;
6
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\CacheInterface;
7
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\ConfigurationProviderInterface;
8
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Sts\RegionalEndpoints\Exception\ConfigurationException;
9
+ use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Promise;
10
+ use DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Promise\PromiseInterface;
11
+ /**
12
+ * A configuration provider is a function that returns a promise that is
13
+ * fulfilled with a {@see \Aws\Sts\RegionalEndpoints\ConfigurationInterface}
14
+ * or rejected with an {@see \Aws\Sts\RegionalEndpoints\Exception\ConfigurationException}.
15
+ *
16
+ * <code>
17
+ * use Aws\Sts\RegionalEndpoints\ConfigurationProvider;
18
+ * $provider = ConfigurationProvider::defaultProvider();
19
+ * // Returns a ConfigurationInterface or throws.
20
+ * $config = $provider()->wait();
21
+ * </code>
22
+ *
23
+ * Configuration providers can be composed to create configuration using
24
+ * conditional logic that can create different configurations in different
25
+ * environments. You can compose multiple providers into a single provider using
26
+ * {@see \Aws\Sts\RegionalEndpoints\ConfigurationProvider::chain}. This function
27
+ * accepts providers as variadic arguments and returns a new function that will
28
+ * invoke each provider until a successful configuration is returned.
29
+ *
30
+ * <code>
31
+ * // First try an INI file at this location.
32
+ * $a = ConfigurationProvider::ini(null, '/path/to/file.ini');
33
+ * // Then try an INI file at this location.
34
+ * $b = ConfigurationProvider::ini(null, '/path/to/other-file.ini');
35
+ * // Then try loading from environment variables.
36
+ * $c = ConfigurationProvider::env();
37
+ * // Combine the three providers together.
38
+ * $composed = ConfigurationProvider::chain($a, $b, $c);
39
+ * // Returns a promise that is fulfilled with a configuration or throws.
40
+ * $promise = $composed();
41
+ * // Wait on the configuration to resolve.
42
+ * $config = $promise->wait();
43
+ * </code>
44
+ */
45
+ class ConfigurationProvider extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\AbstractConfigurationProvider implements \DeliciousBrains\WP_Offload_Media\Aws3\Aws\ConfigurationProviderInterface
46
+ {
47
+ const DEFAULT_ENDPOINTS_TYPE = 'legacy';
48
+ const ENV_ENDPOINTS_TYPE = 'AWS_STS_REGIONAL_ENDPOINTS';
49
+ const ENV_PROFILE = 'AWS_PROFILE';
50
+ const INI_ENDPOINTS_TYPE = 'sts_regional_endpoints';
51
+ public static $cacheKey = 'aws_sts_regional_endpoints_config';
52
+ protected static $interfaceClass = \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Sts\RegionalEndpoints\ConfigurationInterface::class;
53
+ protected static $exceptionClass = \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Sts\RegionalEndpoints\Exception\ConfigurationException::class;
54
+ /**
55
+ * Create a default config provider that first checks for environment
56
+ * variables, then checks for a specified profile in the environment-defined
57
+ * config file location (env variable is 'AWS_CONFIG_FILE', file location
58
+ * defaults to ~/.aws/config), then checks for the "default" profile in the
59
+ * environment-defined config file location, and failing those uses a default
60
+ * fallback set of configuration options.
61
+ *
62
+ * This provider is automatically wrapped in a memoize function that caches
63
+ * previously provided config options.
64
+ *
65
+ * @param array $config
66
+ *
67
+ * @return callable
68
+ */
69
+ public static function defaultProvider(array $config = [])
70
+ {
71
+ $configProviders = [self::env()];
72
+ if (!isset($config['use_aws_shared_config_files']) || $config['use_aws_shared_config_files'] != false) {
73
+ $configProviders[] = self::ini();
74
+ }
75
+ $configProviders[] = self::fallback();
76
+ $memo = self::memoize(call_user_func_array('self::chain', $configProviders));
77
+ if (isset($config['sts_regional_endpoints']) && $config['sts_regional_endpoints'] instanceof CacheInterface) {
78
+ return self::cache($memo, $config['sts_regional_endpoints'], self::$cacheKey);
79
+ }
80
+ return $memo;
81
+ }
82
+ /**
83
+ * Provider that creates config from environment variables.
84
+ *
85
+ * @return callable
86
+ */
87
+ public static function env()
88
+ {
89
+ return function () {
90
+ // Use config from environment variables, if available
91
+ $endpointsType = getenv(self::ENV_ENDPOINTS_TYPE);
92
+ if (!empty($endpointsType)) {
93
+ return \DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Promise\promise_for(new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Sts\RegionalEndpoints\Configuration($endpointsType));
94
+ }
95
+ return self::reject('Could not find environment variable config' . ' in ' . self::ENV_ENDPOINTS_TYPE);
96
+ };
97
+ }
98
+ /**
99
+ * Fallback config options when other sources are not set.
100
+ *
101
+ * @return callable
102
+ */
103
+ public static function fallback()
104
+ {
105
+ return function () {
106
+ return \DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Promise\promise_for(new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Sts\RegionalEndpoints\Configuration(self::DEFAULT_ENDPOINTS_TYPE));
107
+ };
108
+ }
109
+ /**
110
+ * Config provider that creates config using a config file whose location
111
+ * is specified by an environment variable 'AWS_CONFIG_FILE', defaulting to
112
+ * ~/.aws/config if not specified
113
+ *
114
+ * @param string|null $profile Profile to use. If not specified will use
115
+ * the "default" profile.
116
+ * @param string|null $filename If provided, uses a custom filename rather
117
+ * than looking in the default directory.
118
+ *
119
+ * @return callable
120
+ */
121
+ public static function ini($profile = null, $filename = null)
122
+ {
123
+ $filename = $filename ?: self::getDefaultConfigFilename();
124
+ $profile = $profile ?: (getenv(self::ENV_PROFILE) ?: 'default');
125
+ return function () use($profile, $filename) {
126
+ if (!is_readable($filename)) {
127
+ return self::reject("Cannot read configuration from {$filename}");
128
+ }
129
+ $data = \DeliciousBrains\WP_Offload_Media\Aws3\Aws\parse_ini_file($filename, true);
130
+ if ($data === false) {
131
+ return self::reject("Invalid config file: {$filename}");
132
+ }
133
+ if (!isset($data[$profile])) {
134
+ return self::reject("'{$profile}' not found in config file");
135
+ }
136
+ if (!isset($data[$profile][self::INI_ENDPOINTS_TYPE])) {
137
+ return self::reject("Required STS regional endpoints config values \n not present in INI profile '{$profile}' ({$filename})");
138
+ }
139
+ return \DeliciousBrains\WP_Offload_Media\Aws3\GuzzleHttp\Promise\promise_for(new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Sts\RegionalEndpoints\Configuration($data[$profile][self::INI_ENDPOINTS_TYPE]));
140
+ };
141
+ }
142
+ /**
143
+ * Unwraps a configuration object in whatever valid form it is in,
144
+ * always returning a ConfigurationInterface object.
145
+ *
146
+ * @param mixed $config
147
+ * @return ConfigurationInterface
148
+ * @throws \InvalidArgumentException
149
+ */
150
+ public static function unwrap($config)
151
+ {
152
+ if (is_callable($config)) {
153
+ $config = $config();
154
+ }
155
+ if ($config instanceof PromiseInterface) {
156
+ $config = $config->wait();
157
+ }
158
+ if ($config instanceof ConfigurationInterface) {
159
+ return $config;
160
+ }
161
+ if (is_string($config)) {
162
+ return new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Sts\RegionalEndpoints\Configuration($config);
163
+ }
164
+ if (is_array($config) && isset($config['endpoints_type'])) {
165
+ return new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Sts\RegionalEndpoints\Configuration($config['endpoints_type']);
166
+ }
167
+ throw new \InvalidArgumentException('Not a valid STS regional endpoints ' . 'configuration argument.');
168
+ }
169
+ }
vendor/Aws3/Aws/Sts/RegionalEndpoints/Exception/ConfigurationException.php ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Sts\RegionalEndpoints\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 sts regional endpoints
9
+ */
10
+ class ConfigurationException extends \RuntimeException implements \DeliciousBrains\WP_Offload_Media\Aws3\Aws\MonitoringEventsInterface
11
+ {
12
+ use HasMonitoringEventsTrait;
13
+ }
vendor/Aws3/Aws/Sts/StsClient.php ADDED
@@ -0,0 +1,74 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DeliciousBrains\WP_Offload_Media\Aws3\Aws\Sts;
4
+
5
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\AwsClient;
6
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\CacheInterface;
7
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Credentials\Credentials;
8
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Result;
9
+ use DeliciousBrains\WP_Offload_Media\Aws3\Aws\Sts\RegionalEndpoints\ConfigurationProvider;
10
+ /**
11
+ * This client is used to interact with the **AWS Security Token Service (AWS STS)**.
12
+ *
13
+ * @method \Aws\Result assumeRole(array $args = [])
14
+ * @method \GuzzleHttp\Promise\Promise assumeRoleAsync(array $args = [])
15
+ * @method \Aws\Result assumeRoleWithSAML(array $args = [])
16
+ * @method \GuzzleHttp\Promise\Promise assumeRoleWithSAMLAsync(array $args = [])
17
+ * @method \Aws\Result assumeRoleWithWebIdentity(array $args = [])
18
+ * @method \GuzzleHttp\Promise\Promise assumeRoleWithWebIdentityAsync(array $args = [])
19
+ * @method \Aws\Result decodeAuthorizationMessage(array $args = [])
20
+ * @method \GuzzleHttp\Promise\Promise decodeAuthorizationMessageAsync(array $args = [])
21
+ * @method \Aws\Result getAccessKeyInfo(array $args = [])
22
+ * @method \GuzzleHttp\Promise\Promise getAccessKeyInfoAsync(array $args = [])
23
+ * @method \Aws\Result getCallerIdentity(array $args = [])
24
+ * @method \GuzzleHttp\Promise\Promise getCallerIdentityAsync(array $args = [])
25
+ * @method \Aws\Result getFederationToken(array $args = [])
26
+ * @method \GuzzleHttp\Promise\Promise getFederationTokenAsync(array $args = [])
27
+ * @method \Aws\Result getSessionToken(array $args = [])
28
+ * @method \GuzzleHttp\Promise\Promise getSessionTokenAsync(array $args = [])
29
+ */
30
+ class StsClient extends \DeliciousBrains\WP_Offload_Media\Aws3\Aws\AwsClient
31
+ {
32
+ /**
33
+ * {@inheritdoc}
34
+ *
35
+ * In addition to the options available to
36
+ * {@see \Aws\AwsClient::__construct}, StsClient accepts the following
37
+ * options:
38
+ *
39
+ * - sts_regional_endpoints:
40
+ * (Aws\Sts\RegionalEndpoints\ConfigurationInterface|Aws\CacheInterface\|callable|string|array)
41
+ * Specifies whether to use regional or legacy endpoints for legacy regions.
42
+ * Provide an Aws\Sts\RegionalEndpoints\ConfigurationInterface object, an
43
+ * instance of Aws\CacheInterface, a callable configuration provider used
44
+ * to create endpoint configuration, a string value of `legacy` or
45
+ * `regional`, or an associative array with the following keys:
46
+ * endpoint_types (string) Set to `legacy` or `regional`, defaults to
47
+ * `legacy`
48
+ *
49
+ * @param array $args
50
+ */
51
+ public function __construct(array $args)
52
+ {
53
+ if (!isset($args['sts_regional_endpoints']) || $args['sts_regional_endpoints'] instanceof CacheInterface) {
54
+ $args['sts_regional_endpoints'] = \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Sts\RegionalEndpoints\ConfigurationProvider::defaultProvider($args);
55
+ }
56
+ parent::__construct($args);
57
+ }
58
+ /**
59
+ * Creates credentials from the result of an STS operations
60
+ *
61
+ * @param Result $result Result of an STS operation
62
+ *
63
+ * @return Credentials
64
+ * @throws \InvalidArgumentException if the result contains no credentials
65
+ */
66
+ public function createCredentials(\DeliciousBrains\WP_Offload_Media\Aws3\Aws\Result $result)
67
+ {
68
+ if (!$result->hasKey('Credentials')) {
69
+ throw new \InvalidArgumentException('Result contains no credentials');
70
+ }
71
+ $c = $result['Credentials'];
72
+ return new \DeliciousBrains\WP_Offload_Media\Aws3\Aws\Credentials\Credentials($c['AccessKeyId'], $c['SecretAccessKey'], isset($c['SessionToken']) ? $c['SessionToken'] : null, isset($c['Expiration']) && $c['Expiration'] instanceof \DateTimeInterface ? (int) $c['Expiration']->format('U') : null);
73
+ }
74
+ }
vendor/Aws3/Aws/data/accessanalyzer/2019-11-01/api-2.json.php CHANGED
@@ -1,4 +1,4 @@
1
  <?php
2
 
3
  // This file was auto-generated from sdk-root/src/data/accessanalyzer/2019-11-01/api-2.json
4
- return ['version' => '2.0', 'metadata' => ['apiVersion' => '2019-11-01', 'endpointPrefix' => 'access-analyzer', 'jsonVersion' => '1.1', 'protocol' => 'rest-json', 'serviceFullName' => 'Access Analyzer', 'serviceId' => 'AccessAnalyzer', 'signatureVersion' => 'v4', 'signingName' => 'access-analyzer', 'uid' => 'accessanalyzer-2019-11-01'], 'operations' => ['CreateAnalyzer' => ['name' => 'CreateAnalyzer', 'http' => ['method' => 'PUT', 'requestUri' => '/analyzer', 'responseCode' => 200], 'input' => ['shape' => 'CreateAnalyzerRequest'], 'output' => ['shape' => 'CreateAnalyzerResponse'], 'errors' => [['shape' => 'ConflictException'], ['shape' => 'ValidationException'], ['shape' => 'InternalServerException'], ['shape' => 'ServiceQuotaExceededException'], ['shape' => 'ThrottlingException'], ['shape' => 'AccessDeniedException']], 'idempotent' => \true], 'CreateArchiveRule' => ['name' => 'CreateArchiveRule', 'http' => ['method' => 'PUT', 'requestUri' => '/analyzer/{analyzerName}/archive-rule', 'responseCode' => 200], 'input' => ['shape' => 'CreateArchiveRuleRequest'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'ConflictException'], ['shape' => 'ValidationException'], ['shape' => 'InternalServerException'], ['shape' => 'ServiceQuotaExceededException'], ['shape' => 'ThrottlingException'], ['shape' => 'AccessDeniedException']], 'idempotent' => \true], 'DeleteAnalyzer' => ['name' => 'DeleteAnalyzer', 'http' => ['method' => 'DELETE', 'requestUri' => '/analyzer/{analyzerName}', 'responseCode' => 200], 'input' => ['shape' => 'DeleteAnalyzerRequest'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'ValidationException'], ['shape' => 'InternalServerException'], ['shape' => 'ThrottlingException'], ['shape' => 'AccessDeniedException']], 'idempotent' => \true], 'DeleteArchiveRule' => ['name' => 'DeleteArchiveRule', 'http' => ['method' => 'DELETE', 'requestUri' => '/analyzer/{analyzerName}/archive-rule/{ruleName}', 'responseCode' => 200], 'input' => ['shape' => 'DeleteArchiveRuleRequest'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'ValidationException'], ['shape' => 'InternalServerException'], ['shape' => 'ThrottlingException'], ['shape' => 'AccessDeniedException']], 'idempotent' => \true], 'GetAnalyzedResource' => ['name' => 'GetAnalyzedResource', 'http' => ['method' => 'GET', 'requestUri' => '/analyzed-resource', 'responseCode' => 200], 'input' => ['shape' => 'GetAnalyzedResourceRequest'], 'output' => ['shape' => 'GetAnalyzedResourceResponse'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'ValidationException'], ['shape' => 'InternalServerException'], ['shape' => 'ThrottlingException'], ['shape' => 'AccessDeniedException']]], 'GetAnalyzer' => ['name' => 'GetAnalyzer', 'http' => ['method' => 'GET', 'requestUri' => '/analyzer/{analyzerName}', 'responseCode' => 200], 'input' => ['shape' => 'GetAnalyzerRequest'], 'output' => ['shape' => 'GetAnalyzerResponse'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'ValidationException'], ['shape' => 'InternalServerException'], ['shape' => 'ThrottlingException'], ['shape' => 'AccessDeniedException']]], 'GetArchiveRule' => ['name' => 'GetArchiveRule', 'http' => ['method' => 'GET', 'requestUri' => '/analyzer/{analyzerName}/archive-rule/{ruleName}', 'responseCode' => 200], 'input' => ['shape' => 'GetArchiveRuleRequest'], 'output' => ['shape' => 'GetArchiveRuleResponse'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'ValidationException'], ['shape' => 'InternalServerException'], ['shape' => 'ThrottlingException'], ['shape' => 'AccessDeniedException']]], 'GetFinding' => ['name' => 'GetFinding', 'http' => ['method' => 'GET', 'requestUri' => '/finding/{id}', 'responseCode' => 200], 'input' => ['shape' => 'GetFindingRequest'], 'output' => ['shape' => 'GetFindingResponse'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'ValidationException'], ['shape' => 'InternalServerException'], ['shape' => 'ThrottlingException'], ['shape' => 'AccessDeniedException']]], 'ListAnalyzedResources' => ['name' => 'ListAnalyzedResources', 'http' => ['method' => 'POST', 'requestUri' => '/analyzed-resource', 'responseCode' => 200], 'input' => ['shape' => 'ListAnalyzedResourcesRequest'], 'output' => ['shape' => 'ListAnalyzedResourcesResponse'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'ValidationException'], ['shape' => 'InternalServerException'], ['shape' => 'ThrottlingException'], ['shape' => 'AccessDeniedException']]], 'ListAnalyzers' => ['name' => 'ListAnalyzers', 'http' => ['method' => 'GET', 'requestUri' => '/analyzer', 'responseCode' => 200], 'input' => ['shape' => 'ListAnalyzersRequest'], 'output' => ['shape' => 'ListAnalyzersResponse'], 'errors' => [['shape' => 'ValidationException'], ['shape' => 'InternalServerException'], ['shape' => 'ThrottlingException'], ['shape' => 'AccessDeniedException']]], 'ListArchiveRules' => ['name' => 'ListArchiveRules', 'http' => ['method' => 'GET', 'requestUri' => '/analyzer/{analyzerName}/archive-rule', 'responseCode' => 200], 'input' => ['shape' => 'ListArchiveRulesRequest'], 'output' => ['shape' => 'ListArchiveRulesResponse'], 'errors' => [['shape' => 'ValidationException'], ['shape' => 'InternalServerException'], ['shape' => 'ThrottlingException'], ['shape' => 'AccessDeniedException']]], 'ListFindings' => ['name' => 'ListFindings', 'http' => ['method' => 'POST', 'requestUri' => '/finding', 'responseCode' => 200], 'input' => ['shape' => 'ListFindingsRequest'], 'output' => ['shape' => 'ListFindingsResponse'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'ValidationException'], ['shape' => 'InternalServerException'], ['shape' => 'ThrottlingException'], ['shape' => 'AccessDeniedException']]], 'ListTagsForResource' => ['name' => 'ListTagsForResource', 'http' => ['method' => 'GET', 'requestUri' => '/tags/{resourceArn}', 'responseCode' => 200], 'input' => ['shape' => 'ListTagsForResourceRequest'], 'output' => ['shape' => 'ListTagsForResourceResponse'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'ValidationException'], ['shape' => 'InternalServerException'], ['shape' => 'ThrottlingException'], ['shape' => 'AccessDeniedException']]], 'StartResourceScan' => ['name' => 'StartResourceScan', 'http' => ['method' => 'POST', 'requestUri' => '/resource/scan', 'responseCode' => 200], 'input' => ['shape' => 'StartResourceScanRequest'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'ValidationException'], ['shape' => 'InternalServerException'], ['shape' => 'ThrottlingException'], ['shape' => 'AccessDeniedException']]], 'TagResource' => ['name' => 'TagResource', 'http' => ['method' => 'POST', 'requestUri' => '/tags/{resourceArn}', 'responseCode' => 200], 'input' => ['shape' => 'TagResourceRequest'], 'output' => ['shape' => 'TagResourceResponse'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'ValidationException'], ['shape' => 'InternalServerException'], ['shape' => 'ThrottlingException'], ['shape' => 'AccessDeniedException']], 'idempotent' => \true], 'UntagResource' => ['name' => 'UntagResource', 'http' => ['method' => 'DELETE', 'requestUri' => '/tags/{resourceArn}', 'responseCode' => 200], 'input' => ['shape' => 'UntagResourceRequest'], 'output' => ['shape' => 'UntagResourceResponse'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'ValidationException'], ['shape' => 'InternalServerException'], ['shape' => 'ThrottlingException'], ['shape' => 'AccessDeniedException']], 'idempotent' => \true], 'UpdateArchiveRule' => ['name' => 'UpdateArchiveRule', 'http' => ['method' => 'PUT', 'requestUri' => '/analyzer/{analyzerName}/archive-rule/{ruleName}', 'responseCode' => 200], 'input' => ['shape' => 'UpdateArchiveRuleRequest'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'ValidationException'], ['shape' => 'InternalServerException'], ['shape' => 'ThrottlingException'], ['shape' => 'AccessDeniedException']], 'idempotent' => \true], 'UpdateFindings' => ['name' => 'UpdateFindings', 'http' => ['method' => 'PUT', 'requestUri' => '/finding', 'responseCode' => 200], 'input' => ['shape' => 'UpdateFindingsRequest'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'ValidationException'], ['shape' => 'InternalServerException'], ['shape' => 'ThrottlingException'], ['shape' => 'AccessDeniedException']], 'idempotent' => \true]], 'shapes' => ['AccessDeniedException' => ['type' => 'structure', 'required' => ['message'], 'members' => ['message' => ['shape' => 'String']], 'error' => ['httpStatusCode' => 403, 'senderFault' => \true], 'exception' => \true], 'ActionList' => ['type' => 'list', 'member' => ['shape' => 'String']], 'AnalyzedResource' => ['type' => 'structure', 'required' => ['analyzedAt', 'createdAt', 'isPublic', 'resourceArn', 'resourceType', 'updatedAt'], 'members' => ['actions' => ['shape' => 'ActionList'], 'analyzedAt' => ['shape' => 'Timestamp'], 'createdAt' => ['shape' => 'Timestamp'], 'error' => ['shape' => 'String'], 'isPublic' => ['shape' => 'Boolean'], 'resourceArn' => ['shape' => 'ResourceArn'], 'resourceType' => ['shape' => 'ResourceType'], 'sharedVia' => ['shape' => 'SharedViaList'], 'status' => ['shape' => 'FindingStatus'], 'updatedAt' => ['shape' => 'Timestamp']]], 'AnalyzedResourceSummary' => ['type' => 'structure', 'required' => ['resourceArn', 'resourceType'], 'members' => ['resourceArn' => ['shape' => 'ResourceArn'], 'resourceType' => ['shape' => 'ResourceType']]], 'AnalyzedResourcesList' => ['type' => 'list', 'member' => ['shape' => 'AnalyzedResourceSummary']], 'AnalyzerArn' => ['type' => 'string', 'pattern' => '^[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:analyzer/.{1,255}$'], 'AnalyzerSummary' => ['type' => 'structure', 'required' => ['arn', 'createdAt', 'name', 'type'], 'members' => ['arn' => ['shape' => 'AnalyzerArn'], 'createdAt' => ['shape' => 'Timestamp'], 'lastResourceAnalyzed' => ['shape' => 'String'], 'lastResourceAnalyzedAt' => ['shape' => 'Timestamp'], 'name' => ['shape' => 'Name'], 'tags' => ['shape' => 'TagsMap'], 'type' => ['shape' => 'Type']]], 'AnalyzersList' => ['type' => 'list', 'member' => ['shape' => 'AnalyzerSummary']], 'ArchiveRuleSummary' => ['type' => 'structure', 'required' => ['createdAt', 'filter', 'ruleName', 'updatedAt'], 'members' => ['createdAt' => ['shape' => 'Timestamp'], 'filter' => ['shape' => 'FilterCriteriaMap'], 'ruleName' => ['shape' => 'Name'], 'updatedAt' => ['shape' => 'Timestamp']]], 'ArchiveRulesList' => ['type' => 'list', 'member' => ['shape' => 'ArchiveRuleSummary']], 'Boolean' => ['type' => 'boolean', 'box' => \true], 'ConditionKeyMap' => ['type' => 'map', 'key' => ['shape' => 'String'], 'value' => ['shape' => 'String']], 'ConflictException' => ['type' => 'structure', 'required' => ['message', 'resourceId', 'resourceType'], 'members' => ['message' => ['shape' => 'String'], 'resourceId' => ['shape' => 'String'], 'resourceType' => ['shape' => 'String']], 'error' => ['httpStatusCode' => 409, 'senderFault' => \true], 'exception' => \true], 'CreateAnalyzerRequest' => ['type' => 'structure', 'required' => ['analyzerName', 'type'], 'members' => ['analyzerName' => ['shape' => 'Name'], 'archiveRules' => ['shape' => 'InlineArchiveRulesList'], 'clientToken' => ['shape' => 'String', 'idempotencyToken' => \true], 'tags' => ['shape' => 'TagsMap'], 'type' => ['shape' => 'Type']]], 'CreateAnalyzerResponse' => ['type' => 'structure', 'members' => ['arn' => ['shape' => 'AnalyzerArn']]], 'CreateArchiveRuleRequest' => ['type' => 'structure', 'required' => ['analyzerName', 'filter', 'ruleName'], 'members' => ['analyzerName' => ['shape' => 'Name', 'location' => 'uri', 'locationName' => 'analyzerName'], 'clientToken' => ['shape' => 'String', 'idempotencyToken' => \true], 'filter' => ['shape' => 'FilterCriteriaMap'], 'ruleName' => ['shape' => 'Name']]], 'Criterion' => ['type' => 'structure', 'members' => ['contains' => ['shape' => 'ValueList'], 'eq' => ['shape' => 'ValueList'], 'exists' => ['shape' => 'Boolean'], 'neq' => ['shape' => 'ValueList']]], 'DeleteAnalyzerRequest' => ['type' => 'structure', 'required' => ['analyzerName'], 'members' => ['analyzerName' => ['shape' => 'Name', 'location' => 'uri', 'locationName' => 'analyzerName'], 'clientToken' => ['shape' => 'String', 'idempotencyToken' => \true, 'location' => 'querystring', 'locationName' => 'clientToken']]], 'DeleteArchiveRuleRequest' => ['type' => 'structure', 'required' => ['analyzerName', 'ruleName'], 'members' => ['analyzerName' => ['shape' => 'Name', 'location' => 'uri', 'locationName' => 'analyzerName'], 'clientToken' => ['shape' => 'String', 'idempotencyToken' => \true, 'location' => 'querystring', 'locationName' => 'clientToken'], 'ruleName' => ['shape' => 'Name', 'location' => 'uri', 'locationName' => 'ruleName']]], 'FilterCriteriaMap' => ['type' => 'map', 'key' => ['shape' => 'String'], 'value' => ['shape' => 'Criterion']], 'Finding' => ['type' => 'structure', 'required' => ['analyzedAt', 'condition', 'createdAt', 'id', 'resourceType', 'status', 'updatedAt'], 'members' => ['action' => ['shape' => 'ActionList'], 'analyzedAt' => ['shape' => 'Timestamp'], 'condition' => ['shape' => 'ConditionKeyMap'], 'createdAt' => ['shape' => 'Timestamp'], 'error' => ['shape' => 'String'], 'id' => ['shape' => 'FindingId'], 'isPublic' => ['shape' => 'Boolean'], 'principal' => ['shape' => 'PrincipalMap'], 'resource' => ['shape' => 'String'], 'resourceType' => ['shape' => 'ResourceType'], 'status' => ['shape' => 'FindingStatus'], 'updatedAt' => ['shape' => 'Timestamp']]], 'FindingId' => ['type' => 'string'], 'FindingIdList' => ['type' => 'list', 'member' => ['shape' => 'FindingId']], 'FindingStatus' => ['type' => 'string', 'enum' => ['ACTIVE', 'ARCHIVED', 'RESOLVED']], 'FindingStatusUpdate' => ['type' => 'string', 'enum' => ['ACTIVE', 'ARCHIVED']], 'FindingSummary' => ['type' => 'structure', 'required' => ['analyzedAt', 'condition', 'createdAt', 'id', 'resourceType', 'status', 'updatedAt'], 'members' => ['action' => ['shape' => 'ActionList'], 'analyzedAt' => ['shape' => 'Timestamp'], 'condition' => ['shape' => 'ConditionKeyMap'], 'createdAt' => ['shape' => 'Timestamp'], 'error' => ['shape' => 'String'], 'id' => ['shape' => 'FindingId'], 'isPublic' => ['shape' => 'Boolean'], 'principal' => ['shape' => 'PrincipalMap'], 'resource' => ['shape' => 'String'], 'resourceType' => ['shape' => 'ResourceType'], 'status' => ['shape' => 'FindingStatus'], 'updatedAt' => ['shape' => 'Timestamp']]], 'FindingsList' => ['type' => 'list', 'member' => ['shape' => 'FindingSummary']], 'GetAnalyzedResourceRequest' => ['type' => 'structure', 'required' => ['analyzerArn', 'resourceArn'], 'members' => ['analyzerArn' => ['shape' => 'AnalyzerArn', 'location' => 'querystring', 'locationName' => 'analyzerArn'], 'resourceArn' => ['shape' => 'ResourceArn', 'location' => 'querystring', 'locationName' => 'resourceArn']]], 'GetAnalyzedResourceResponse' => ['type' => 'structure', 'members' => ['resource' => ['shape' => 'AnalyzedResource']]], 'GetAnalyzerRequest' => ['type' => 'structure', 'required' => ['analyzerName'], 'members' => ['analyzerName' => ['shape' => 'Name', 'location' => 'uri', 'locationName' => 'analyzerName']]], 'GetAnalyzerResponse' => ['type' => 'structure', 'required' => ['analyzer'], 'members' => ['analyzer' => ['shape' => 'AnalyzerSummary']]], 'GetArchiveRuleRequest' => ['type' => 'structure', 'required' => ['analyzerName', 'ruleName'], 'members' => ['analyzerName' => ['shape' => 'Name', 'location' => 'uri', 'locationName' => 'analyzerName'], 'ruleName' => ['shape' => 'Name', 'location' => 'uri', 'locationName' => 'ruleName']]], 'GetArchiveRuleResponse' => ['type' => 'structure', 'required' => ['archiveRule'], 'members' => ['archiveRule' => ['shape' => 'ArchiveRuleSummary']]], 'GetFindingRequest' => ['type' => 'structure', 'required' => ['analyzerArn', 'id'], 'members' => ['analyzerArn' => ['shape' => 'AnalyzerArn', 'location' => 'querystring', 'locationName' => 'analyzerArn'], 'id' => ['shape' => 'FindingId', 'location' => 'uri', 'locationName' => 'id']]], 'GetFindingResponse' => ['type' => 'structure', 'members' => ['finding' => ['shape' => 'Finding']]], 'InlineArchiveRule' => ['type' => 'structure', 'required' => ['filter', 'ruleName'], 'members' => ['filter' => ['shape' => 'FilterCriteriaMap'], 'ruleName' => ['shape' => 'Name']]], 'InlineArchiveRulesList' => ['type' => 'list', 'member' => ['shape' => 'InlineArchiveRule']], 'Integer' => ['type' => 'integer', 'box' => \true], 'InternalServerException' => ['type' => 'structure', 'required' => ['message'], 'members' => ['message' => ['shape' => 'String'], 'retryAfterSeconds' => ['shape' => 'Integer', 'location' => 'header', 'locationName' => 'Retry-After']], 'error' => ['httpStatusCode' => 500], 'exception' => \true, 'fault' => \true], 'ListAnalyzedResourcesRequest' => ['type' => 'structure', 'required' => ['analyzerArn'], 'members' => ['analyzerArn' => ['shape' => 'AnalyzerArn'], 'maxResults' => ['shape' => 'Integer'], 'nextToken' => ['shape' => 'Token'], 'resourceType' => ['shape' => 'ResourceType']]], 'ListAnalyzedResourcesResponse' => ['type' => 'structure', 'required' => ['analyzedResources'], 'members' => ['analyzedResources' => ['shape' => 'AnalyzedResourcesList'], 'nextToken' => ['shape' => 'Token']]], 'ListAnalyzersRequest' => ['type' => 'structure', 'members' => ['maxResults' => ['shape' => 'Integer', 'location' => 'querystring', 'locationName' => 'maxResults'], 'nextToken' => ['shape' => 'Token', 'location' => 'querystring', 'locationName' => 'nextToken'], 'type' => ['shape' => 'Type', 'location' => 'querystring', 'locationName' => 'type']]], 'ListAnalyzersResponse' => ['type' => 'structure', 'required' => ['analyzers'], 'members' => ['analyzers' => ['shape' => 'AnalyzersList'], 'nextToken' => ['shape' => 'Token']]], 'ListArchiveRulesRequest' => ['type' => 'structure', 'required' => ['analyzerName'], 'members' => ['analyzerName' => ['shape' => 'Name', 'location' => 'uri', 'locationName' => 'analyzerName'], 'maxResults' => ['shape' => 'Integer', 'location' => 'querystring', 'locationName' => 'maxResults'], 'nextToken' => ['shape' => 'Token', 'location' => 'querystring', 'locationName' => 'nextToken']]], 'ListArchiveRulesResponse' => ['type' => 'structure', 'required' => ['archiveRules'], 'members' => ['archiveRules' => ['shape' => 'ArchiveRulesList'], 'nextToken' => ['shape' => 'Token']]], 'ListFindingsRequest' => ['type' => 'structure', 'required' => ['analyzerArn'], 'members' => ['analyzerArn' => ['shape' => 'AnalyzerArn'], 'filter' => ['shape' => 'FilterCriteriaMap'], 'maxResults' => ['shape' => 'Integer'], 'nextToken' => ['shape' => 'Token'], 'sort' => ['shape' => 'SortCriteria']]], 'ListFindingsResponse' => ['type' => 'structure', 'required' => ['findings'], 'members' => ['findings' => ['shape' => 'FindingsList'], 'nextToken' => ['shape' => 'Token']]], 'ListTagsForResourceRequest' => ['type' => 'structure', 'required' => ['resourceArn'], 'members' => ['resourceArn' => ['shape' => 'String', 'location' => 'uri', 'locationName' => 'resourceArn']]], 'ListTagsForResourceResponse' => ['type' => 'structure', 'members' => ['tags' => ['shape' => 'TagsMap']]], 'Name' => ['type' => 'string', 'max' => 255, 'min' => 1, 'pattern' => '^[A-Za-z][A-Za-z0-9_.-]*$'], 'OrderBy' => ['type' => 'string', 'enum' => ['ASC', 'DESC']], 'PrincipalMap' => ['type' => 'map', 'key' => ['shape' => 'String'], 'value' => ['shape' => 'String']], 'ResourceArn' => ['type' => 'string', 'pattern' => 'arn:[^:]*:[^:]*:[^:]*:[^:]*:.*$'], 'ResourceNotFoundException' => ['type' => 'structure', 'required' => ['message', 'resourceId', 'resourceType'], 'members' => ['message' => ['shape' => 'String'], 'resourceId' => ['shape' => 'String'], 'resourceType' => ['shape' => 'String']], 'error' => ['httpStatusCode' => 404, 'senderFault' => \true], 'exception' => \true], 'ResourceType' => ['type' => 'string', 'enum' => ['AWS::IAM::Role', 'AWS::KMS::Key', 'AWS::Lambda::Function', 'AWS::Lambda::LayerVersion', 'AWS::S3::Bucket', 'AWS::SQS::Queue']], 'ServiceQuotaExceededException' => ['type' => 'structure', 'required' => ['message', 'resourceId', 'resourceType'], 'members' => ['message' => ['shape' => 'String'], 'resourceId' => ['shape' => 'String'], 'resourceType' => ['shape' => 'String']], 'error' => ['httpStatusCode' => 402, 'senderFault' => \true], 'exception' => \true], 'SharedViaList' => ['type' => 'list', 'member' => ['shape' => 'String']], 'SortCriteria' => ['type' => 'structure', 'members' => ['attributeName' => ['shape' => 'String'], 'orderBy' => ['shape' => 'OrderBy']]], 'StartResourceScanRequest' => ['type' => 'structure', 'required' => ['analyzerArn', 'resourceArn'], 'members' => ['analyzerArn' => ['shape' => 'AnalyzerArn'], 'resourceArn' => ['shape' => 'ResourceArn']]], 'String' => ['type' => 'string'], 'TagKeys' => ['type' => 'list', 'member' => ['shape' => 'String']], 'TagResourceRequest' => ['type' => 'structure', 'required' => ['resourceArn', 'tags'], 'members' => ['resourceArn' => ['shape' => 'String', 'location' => 'uri', 'locationName' => 'resourceArn'], 'tags' => ['shape' => 'TagsMap']]], 'TagResourceResponse' => ['type' => 'structure', 'members' => []], 'TagsMap' => ['type' => 'map', 'key' => ['shape' => 'String'], 'value' => ['shape' => 'String']], 'ThrottlingException' => ['type' => 'structure', 'required' => ['message'], 'members' => ['message' => ['shape' => 'String'], 'retryAfterSeconds' => ['shape' => 'Integer', 'location' => 'header', 'locationName' => 'Retry-After']], 'error' => ['httpStatusCode' => 429, 'senderFault' => \true], 'exception' => \true], 'Timestamp' => ['type' => 'timestamp', 'timestampFormat' => 'iso8601'], 'Token' => ['type' => 'string'], 'Type' => ['type' => 'string', 'enum' => ['ACCOUNT']], 'UntagResourceRequest' => ['type' => 'structure', 'required' => ['resourceArn', 'tagKeys'], 'members' => ['resourceArn' => ['shape' => 'String', 'location' => 'uri', 'locationName' => 'resourceArn'], 'tagKeys' => ['shape' => 'TagKeys', 'location' => 'querystring', 'locationName' => 'tagKeys']]], 'UntagResourceResponse' => ['type' => 'structure', 'members' => []], 'UpdateArchiveRuleRequest' => ['type' => 'structure', 'required' => ['analyzerName', 'filter', 'ruleName'], 'members' => ['analyzerName' => ['shape' => 'Name', 'location' => 'uri', 'locationName' => 'analyzerName'], 'clientToken' => ['shape' => 'String', 'idempotencyToken' => \true], 'filter' => ['shape' => 'FilterCriteriaMap'], 'ruleName' => ['shape' => 'Name', 'location' => 'uri', 'locationName' => 'ruleName']]], 'UpdateFindingsRequest' => ['type' => 'structure', 'required' => ['analyzerArn', 'status'], 'members' => ['analyzerArn' => ['shape' => 'AnalyzerArn'], 'clientToken' => ['shape' => 'String', 'idempotencyToken' => \true], 'ids' => ['shape' => 'FindingIdList'], 'resourceArn' => ['shape' => 'ResourceArn'], 'status' => ['shape' => 'FindingStatusUpdate']]], 'ValidationException' => ['type' => 'structure', 'required' => ['message', 'reason'], 'members' => ['fieldList' => ['shape' => 'ValidationExceptionFieldList'], 'message' => ['shape' => 'String'], 'reason' => ['shape' => 'ValidationExceptionReason']], 'error' => ['httpStatusCode' => 400, 'senderFault' => \true], 'exception' => \true], 'ValidationExceptionField' => ['type' => 'structure', 'required' => ['message', 'name'], 'members' => ['message' => ['shape' => 'String'], 'name' => ['shape' => 'String']]], 'ValidationExceptionFieldList' => ['type' => 'list', 'member' => ['shape' => 'ValidationExceptionField']], 'ValidationExceptionReason' => ['type' => 'string', 'enum' => ['cannotParse', 'fieldValidationFailed', 'other', 'unknownOperation']], 'ValueList' => ['type' => 'list', 'member' => ['shape' => 'String'], 'max' => 20, 'min' => 1]]];
1
  <?php
2
 
3
  // This file was auto-generated from sdk-root/src/data/accessanalyzer/2019-11-01/api-2.json
4
+ return ['version' => '2.0', 'metadata' => ['apiVersion' => '2019-11-01', 'endpointPrefix' => 'access-analyzer', 'jsonVersion' => '1.1', 'protocol' => 'rest-json', 'serviceFullName' => 'Access Analyzer', 'serviceId' => 'AccessAnalyzer', 'signatureVersion' => 'v4', 'signingName' => 'access-analyzer', 'uid' => 'accessanalyzer-2019-11-01'], 'operations' => ['CreateAnalyzer' => ['name' => 'CreateAnalyzer', 'http' => ['method' => 'PUT', 'requestUri' => '/analyzer', 'responseCode' => 200], 'input' => ['shape' => 'CreateAnalyzerRequest'], 'output' => ['shape' => 'CreateAnalyzerResponse'], 'errors' => [['shape' => 'ConflictException'], ['shape' => 'ValidationException'], ['shape' => 'InternalServerException'], ['shape' => 'ServiceQuotaExceededException'], ['shape' => 'ThrottlingException'], ['shape' => 'AccessDeniedException']], 'idempotent' => \true], 'CreateArchiveRule' => ['name' => 'CreateArchiveRule', 'http' => ['method' => 'PUT', 'requestUri' => '/analyzer/{analyzerName}/archive-rule', 'responseCode' => 200], 'input' => ['shape' => 'CreateArchiveRuleRequest'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'ConflictException'], ['shape' => 'ValidationException'], ['shape' => 'InternalServerException'], ['shape' => 'ServiceQuotaExceededException'], ['shape' => 'ThrottlingException'], ['shape' => 'AccessDeniedException']], 'idempotent' => \true], 'DeleteAnalyzer' => ['name' => 'DeleteAnalyzer', 'http' => ['method' => 'DELETE', 'requestUri' => '/analyzer/{analyzerName}', 'responseCode' => 200], 'input' => ['shape' => 'DeleteAnalyzerRequest'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'ValidationException'], ['shape' => 'InternalServerException'], ['shape' => 'ThrottlingException'], ['shape' => 'AccessDeniedException']], 'idempotent' => \true], 'DeleteArchiveRule' => ['name' => 'DeleteArchiveRule', 'http' => ['method' => 'DELETE', 'requestUri' => '/analyzer/{analyzerName}/archive-rule/{ruleName}', 'responseCode' => 200], 'input' => ['shape' => 'DeleteArchiveRuleRequest'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'ValidationException'], ['shape' => 'InternalServerException'], ['shape' => 'ThrottlingException'], ['shape' => 'AccessDeniedException']], 'idempotent' => \true], 'GetAnalyzedResource' => ['name' => 'GetAnalyzedResource', 'http' => ['method' => 'GET', 'requestUri' => '/analyzed-resource', 'responseCode' => 200], 'input' => ['shape' => 'GetAnalyzedResourceRequest'], 'output' => ['shape' => 'GetAnalyzedResourceResponse'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'ValidationException'], ['shape' => 'InternalServerException'], ['shape' => 'ThrottlingException'], ['shape' => 'AccessDeniedException']]], 'GetAnalyzer' => ['name' => 'GetAnalyzer', 'http' => ['method' => 'GET', 'requestUri' => '/analyzer/{analyzerName}', 'responseCode' => 200], 'input' => ['shape' => 'GetAnalyzerRequest'], 'output' => ['shape' => 'GetAnalyzerResponse'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'ValidationException'], ['shape' => 'InternalServerException'], ['shape' => 'ThrottlingException'], ['shape' => 'AccessDeniedException']]], 'GetArchiveRule' => ['name' => 'GetArchiveRule', 'http' => ['method' => 'GET', 'requestUri' => '/analyzer/{analyzerName}/archive-rule/{ruleName}', 'responseCode' => 200], 'input' => ['shape' => 'GetArchiveRuleRequest'], 'output' => ['shape' => 'GetArchiveRuleResponse'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'ValidationException'], ['shape' => 'InternalServerException'], ['shape' => 'ThrottlingException'], ['shape' => 'AccessDeniedException']]], 'GetFinding' => ['name' => 'GetFinding', 'http' => ['method' => 'GET', 'requestUri' => '/finding/{id}', 'responseCode' => 200], 'input' => ['shape' => 'GetFindingRequest'], 'output' => ['shape' => 'GetFindingResponse'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'ValidationException'], ['shape' => 'InternalServerException'], ['shape' => 'ThrottlingException'], ['shape' => 'AccessDeniedException']]], 'ListAnalyzedResources' => ['name' => 'ListAnalyzedResources', 'http' => ['method' => 'POST', 'requestUri' => '/analyzed-resource', 'responseCode' => 200], 'input' => ['shape' => 'ListAnalyzedResourcesRequest'], 'output' => ['shape' => 'ListAnalyzedResourcesResponse'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'ValidationException'], ['shape' => 'InternalServerException'], ['shape' => 'ThrottlingException'], ['shape' => 'AccessDeniedException']]], 'ListAnalyzers' => ['name' => 'ListAnalyzers', 'http' => ['method' => 'GET', 'requestUri' => '/analyzer', 'responseCode' => 200], 'input' => ['shape' => 'ListAnalyzersRequest'], 'output' => ['shape' => 'ListAnalyzersResponse'], 'errors' => [['shape' => 'ValidationException'], ['shape' => 'InternalServerException'], ['shape' => 'ThrottlingException'], ['shape' => 'AccessDeniedException']]], 'ListArchiveRules' => ['name' => 'ListArchiveRules', 'http' => ['method' => 'GET', 'requestUri' => '/analyzer/{analyzerName}/archive-rule', 'responseCode' => 200], 'input' => ['shape' => 'ListArchiveRulesRequest'], 'output' => ['shape' => 'ListArchiveRulesResponse'], 'errors' => [['shape' => 'ValidationException'], ['shape' => 'InternalServerException'], ['shape' => 'ThrottlingException'], ['shape' => 'AccessDeniedException']]], 'ListFindings' => ['name' => 'ListFindings', 'http' => ['method' => 'POST', 'requestUri' => '/finding', 'responseCode' => 200], 'input' => ['shape' => 'ListFindingsRequest'], 'output' => ['shape' => 'ListFindingsResponse'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'ValidationException'], ['shape' => 'InternalServerException'], ['shape' => 'ThrottlingException'], ['shape' => 'AccessDeniedException']]], 'ListTagsForResource' => ['name' => 'ListTagsForResource', 'http' => ['method' => 'GET', 'requestUri' => '/tags/{resourceArn}', 'responseCode' => 200], 'input' => ['shape' => 'ListTagsForResourceRequest'], 'output' => ['shape' => 'ListTagsForResourceResponse'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'ValidationException'], ['shape' => 'InternalServerException'], ['shape' => 'ThrottlingException'], ['shape' => 'AccessDeniedException']]], 'StartResourceScan' => ['name' => 'StartResourceScan', 'http' => ['method' => 'POST', 'requestUri' => '/resource/scan', 'responseCode' => 200], 'input' => ['shape' => 'StartResourceScanRequest'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'ValidationException'], ['shape' => 'InternalServerException'], ['shape' => 'ThrottlingException'], ['shape' => 'AccessDeniedException']]], 'TagResource' => ['name' => 'TagResource', 'http' => ['method' => 'POST', 'requestUri' => '/tags/{resourceArn}', 'responseCode' => 200], 'input' => ['shape' => 'TagResourceRequest'], 'output' => ['shape' => 'TagResourceResponse'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'ValidationException'], ['shape' => 'InternalServerException'], ['shape' => 'ThrottlingException'], ['shape' => 'AccessDeniedException']], 'idempotent' => \true], 'UntagResource' => ['name' => 'UntagResource', 'http' => ['method' => 'DELETE', 'requestUri' => '/tags/{resourceArn}', 'responseCode' => 200], 'input' => ['shape' => 'UntagResourceRequest'], 'output' => ['shape' => 'UntagResourceResponse'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'ValidationException'], ['shape' => 'InternalServerException'], ['shape' => 'ThrottlingException'], ['shape' => 'AccessDeniedException']], 'idempotent' => \true], 'UpdateArchiveRule' => ['name' => 'UpdateArchiveRule', 'http' => ['method' => 'PUT', 'requestUri' => '/analyzer/{analyzerName}/archive-rule/{ruleName}', 'responseCode' => 200], 'input' => ['shape' => 'UpdateArchiveRuleRequest'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'ValidationException'], ['shape' => 'InternalServerException'], ['shape' => 'ThrottlingException'], ['shape' => 'AccessDeniedException']], 'idempotent' => \true], 'UpdateFindings' => ['name' => 'UpdateFindings', 'http' => ['method' => 'PUT', 'requestUri' => '/finding', 'responseCode' => 200], 'input' => ['shape' => 'UpdateFindingsRequest'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'ValidationException'], ['shape' => 'InternalServerException'], ['shape' => 'ThrottlingException'], ['shape' => 'AccessDeniedException']], 'idempotent' => \true]], 'shapes' => ['AccessDeniedException' => ['type' => 'structure', 'required' => ['message'], 'members' => ['message' => ['shape' => 'String']], 'error' => ['httpStatusCode' => 403, 'senderFault' => \true], 'exception' => \true], 'ActionList' => ['type' => 'list', 'member' => ['shape' => 'String']], 'AnalyzedResource' => ['type' => 'structure', 'required' => ['analyzedAt', 'createdAt', 'isPublic', 'resourceArn', 'resourceOwnerAccount', 'resourceType', 'updatedAt'], 'members' => ['actions' => ['shape' => 'ActionList'], 'analyzedAt' => ['shape' => 'Timestamp'], 'createdAt' => ['shape' => 'Timestamp'], 'error' => ['shape' => 'String'], 'isPublic' => ['shape' => 'Boolean'], 'resourceArn' => ['shape' => 'ResourceArn'], 'resourceOwnerAccount' => ['shape' => 'String'], 'resourceType' => ['shape' => 'ResourceType'], 'sharedVia' => ['shape' => 'SharedViaList'], 'status' => ['shape' => 'FindingStatus'], 'updatedAt' => ['shape' => 'Timestamp']]], 'AnalyzedResourceSummary' => ['type' => 'structure', 'required' => ['resourceArn', 'resourceOwnerAccount', 'resourceType'], 'members' => ['resourceArn' => ['shape' => 'ResourceArn'], 'resourceOwnerAccount' => ['shape' => 'String'], 'resourceType' => ['shape' => 'ResourceType']]], 'AnalyzedResourcesList' => ['type' => 'list', 'member' => ['shape' => 'AnalyzedResourceSummary']], 'AnalyzerArn' => ['type' => 'string', 'pattern' => '^[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:analyzer/.{1,255}$'], 'AnalyzerStatus' => ['type' => 'string', 'enum' => ['ACTIVE', 'CREATING', 'DISABLED', 'FAILED']], 'AnalyzerSummary' => ['type' => 'structure', 'required' => ['arn', 'createdAt', 'name', 'status', 'type'], 'members' => ['arn' => ['shape' => 'AnalyzerArn'], 'createdAt' => ['shape' => 'Timestamp'], 'lastResourceAnalyzed' => ['shape' => 'String'], 'lastResourceAnalyzedAt' => ['shape' => 'Timestamp'], 'name' => ['shape' => 'Name'], 'status' => ['shape' => 'AnalyzerStatus'], 'statusReason' => ['shape' => 'StatusReason'], 'tags' => ['shape' => 'TagsMap'], 'type' => ['shape' => 'Type']]], 'AnalyzersList' => ['type' => 'list', 'member' => ['shape' => 'AnalyzerSummary']], 'ArchiveRuleSummary' => ['type' => 'structure', 'required' => ['createdAt', 'filter', 'ruleName', 'updatedAt'], 'members' => ['createdAt' => ['shape' => 'Timestamp'], 'filter' => ['shape' => 'FilterCriteriaMap'], 'ruleName' => ['shape' => 'Name'], 'updatedAt' => ['shape' => 'Timestamp']]], 'ArchiveRulesList' => ['type' => 'list', 'member' => ['shape' => 'ArchiveRuleSummary']], 'Boolean' => ['type' => 'boolean', 'box' => \true], 'ConditionKeyMap' => ['type' => 'map', 'key' => ['shape' => 'String'], 'value' => ['shape' => 'String']], 'ConflictException' => ['type' => 'structure', 'required' => ['message', 'resourceId', 'resourceType'], 'members' => ['message' => ['shape' => 'String'], 'resourceId' => ['shape' => 'String'], 'resourceType' => ['shape' => 'String']], 'error' => ['httpStatusCode' => 409, 'senderFault' => \true], 'exception' => \true], 'CreateAnalyzerRequest' => ['type' => 'structure', 'required' => ['analyzerName', 'type'], 'members' => ['analyzerName' => ['shape' => 'Name'], 'archiveRules' => ['shape' => 'InlineArchiveRulesList'], 'clientToken' => ['shape' => 'String', 'idempotencyToken' => \true], 'tags' => ['shape' => 'TagsMap'], 'type' => ['shape' => 'Type']]], 'CreateAnalyzerResponse' => ['type' => 'structure', 'members' => ['arn' => ['shape' => 'AnalyzerArn']]], 'CreateArchiveRuleRequest' => ['type' => 'structure', 'required' => ['analyzerName', 'filter', 'ruleName'], 'members' => ['analyzerName' => ['shape' => 'Name', 'location' => 'uri', 'locationName' => 'analyzerName'], 'clientToken' => ['shape' => 'String', 'idempotencyToken' => \true], 'filter' => ['shape' => 'FilterCriteriaMap'], 'ruleName' => ['shape' => 'Name']]], 'Criterion' => ['type' => 'structure', 'members' => ['contains' => ['shape' => 'ValueList'], 'eq' => ['shape' => 'ValueList'], 'exists' => ['shape' => 'Boolean'], 'neq' => ['shape' => 'ValueList']]], 'DeleteAnalyzerRequest' => ['type' => 'structure', 'required' => ['analyzerName'], 'members' => ['analyzerName' => ['shape' => 'Name', 'location' => 'uri', 'locationName' => 'analyzerName'], 'clientToken' => ['shape' => 'String', 'idempotencyToken' => \true, 'location' => 'querystring', 'locationName' => 'clientToken']]], 'DeleteArchiveRuleRequest' => ['type' => 'structure', 'required' => ['analyzerName', 'ruleName'], 'members' => ['analyzerName' => ['shape' => 'Name', 'location' => 'uri', 'locationName' => 'analyzerName'], 'clientToken' => ['shape' => 'String', 'idempotencyToken' => \true, 'location' => 'querystring', 'locationName' => 'clientToken'], 'ruleName' => ['shape' => 'Name', 'location' => 'uri', 'locationName' => 'ruleName']]], 'FilterCriteriaMap' => ['type' => 'map', 'key' => ['shape' => 'String'], 'value' => ['shape' => 'Criterion']], 'Finding' => ['type' => 'structure', 'required' => ['analyzedAt', 'condition', 'createdAt', 'id', 'resourceOwnerAccount', 'resourceType', 'status', 'updatedAt'], 'members' => ['action' => ['shape' => 'ActionList'], 'analyzedAt' => ['shape' => 'Timestamp'], 'condition' => ['shape' => 'ConditionKeyMap'], 'createdAt' => ['shape' => 'Timestamp'], 'error' => ['shape' => 'String'], 'id' => ['shape' => 'FindingId'], 'isPublic' => ['shape' => 'Boolean'], 'principal' => ['shape' => 'PrincipalMap'], 'resource' => ['shape' => 'String'], 'resourceOwnerAccount' => ['shape' => 'String'], 'resourceType' => ['shape' => 'ResourceType'], 'sources' => ['shape' => 'FindingSourceList'], 'status' => ['shape' => 'FindingStatus'], 'updatedAt' => ['shape' => 'Timestamp']]], 'FindingId' => ['type' => 'string'], 'FindingIdList' => ['type' => 'list', 'member' => ['shape' => 'FindingId']], 'FindingSource' => ['type' => 'structure', 'required' => ['type'], 'members' => ['detail' => ['shape' => 'FindingSourceDetail'], 'type' => ['shape' => 'FindingSourceType']]], 'FindingSourceDetail' => ['type' => 'structure', 'members' => ['accessPointArn' => ['shape' => 'String']]], 'FindingSourceList' => ['type' => 'list', 'member' => ['shape' => 'FindingSource']], 'FindingSourceType' => ['type' => 'string', 'enum' => ['BUCKET_ACL', 'POLICY', 'S3_ACCESS_POINT']], 'FindingStatus' => ['type' => 'string', 'enum' => ['ACTIVE', 'ARCHIVED', 'RESOLVED']], 'FindingStatusUpdate' => ['type' => 'string', 'enum' => ['ACTIVE', 'ARCHIVED']], 'FindingSummary' => ['type' => 'structure', 'required' => ['analyzedAt', 'condition', 'createdAt', 'id', 'resourceOwnerAccount', 'resourceType', 'status', 'updatedAt'], 'members' => ['action' => ['shape' => 'ActionList'], 'analyzedAt' => ['shape' => 'Timestamp'], 'condition' => ['shape' => 'ConditionKeyMap'], 'createdAt' => ['shape' => 'Timestamp'], 'error' => ['shape' => 'String'], 'id' => ['shape' => 'FindingId'], 'isPublic' => ['shape' => 'Boolean'], 'principal' => ['shape' => 'PrincipalMap'], 'resource' => ['shape' => 'String'], 'resourceOwnerAccount' => ['shape' => 'String'], 'resourceType' => ['shape' => 'ResourceType'], 'sources' => ['shape' => 'FindingSourceList'], 'status' => ['shape' => 'FindingStatus'], 'updatedAt' => ['shape' => 'Timestamp']]], 'FindingsList' => ['type' => 'list', 'member' => ['shape' => 'FindingSummary']], 'GetAnalyzedResourceRequest' => ['type' => 'structure', 'required' => ['analyzerArn', 'resourceArn'], 'members' => ['analyzerArn' => ['shape' => 'AnalyzerArn', 'location' => 'querystring', 'locationName' => 'analyzerArn'], 'resourceArn' => ['shape' => 'ResourceArn', 'location' => 'querystring', 'locationName' => 'resourceArn']]], 'GetAnalyzedResourceResponse' => ['type' => 'structure', 'members' => ['resource' => ['shape' => 'AnalyzedResource']]], 'GetAnalyzerRequest' => ['type' => 'structure', 'required' => ['analyzerName'], 'members' => ['analyzerName' => ['shape' => 'Name', 'location' => 'uri', 'locationName' => 'analyzerName']]], 'GetAnalyzerResponse' => ['type' => 'structure', 'required' => ['analyzer'], 'members' => ['analyzer' => ['shape' => 'AnalyzerSummary']]], 'GetArchiveRuleRequest' => ['type' => 'structure', 'required' => ['analyzerName', 'ruleName'], 'members' => ['analyzerName' => ['shape' => 'Name', 'location' => 'uri', 'locationName' => 'analyzerName'], 'ruleName' => ['shape' => 'Name', 'location' => 'uri', 'locationName' => 'ruleName']]], 'GetArchiveRuleResponse' => ['type' => 'structure', 'required' => ['archiveRule'], 'members' => ['archiveRule' => ['shape' => 'ArchiveRuleSummary']]], 'GetFindingRequest' => ['type' => 'structure', 'required' => ['analyzerArn', 'id'], 'members' => ['analyzerArn' => ['shape' => 'AnalyzerArn', 'location' => 'querystring', 'locationName' => 'analyzerArn'], 'id' => ['shape' => 'FindingId', 'location' => 'uri', 'locationName' => 'id']]], 'GetFindingResponse' => ['type' => 'structure', 'members' => ['finding' => ['shape' => 'Finding']]], 'InlineArchiveRule' => ['type' => 'structure', 'required' => ['filter', 'ruleName'], 'members' => ['filter' => ['shape' => 'FilterCriteriaMap'], 'ruleName' => ['shape' => 'Name']]], 'InlineArchiveRulesList' => ['type' => 'list', 'member' => ['shape' => 'InlineArchiveRule']], 'Integer' => ['type' => 'integer', 'box' => \true], 'InternalServerException' => ['type' => 'structure', 'required' => ['message'], 'members' => ['message' => ['shape' => 'String'], 'retryAfterSeconds' => ['shape' => 'Integer', 'location' => 'header', 'locationName' => 'Retry-After']], 'error' => ['httpStatusCode' => 500], 'exception' => \true, 'fault' => \true], 'ListAnalyzedResourcesRequest' => ['type' => 'structure', 'required' => ['analyzerArn'], 'members' => ['analyzerArn' => ['shape' => 'AnalyzerArn'], 'maxResults' => ['shape' => 'Integer'], 'nextToken' => ['shape' => 'Token'], 'resourceType' => ['shape' => 'ResourceType']]], 'ListAnalyzedResourcesResponse' => ['type' => 'structure', 'required' => ['analyzedResources'], 'members' => ['analyzedResources' => ['shape' => 'AnalyzedResourcesList'], 'nextToken' => ['shape' => 'Token']]], 'ListAnalyzersRequest' => ['type' => 'structure', 'members' => ['maxResults' => ['shape' => 'Integer', 'location' => 'querystring', 'locationName' => 'maxResults'], 'nextToken' => ['shape' => 'Token', 'location' => 'querystring', 'locationName' => 'nextToken'], 'type' => ['shape' => 'Type', 'location' => 'querystring', 'locationName' => 'type']]], 'ListAnalyzersResponse' => ['type' => 'structure', 'required' => ['analyzers'], 'members' => ['analyzers' => ['shape' => 'AnalyzersList'], 'nextToken' => ['shape' => 'Token']]], 'ListArchiveRulesRequest' => ['type' => 'structure', 'required' => ['analyzerName'], 'members' => ['analyzerName' => ['shape' => 'Name', 'location' => 'uri', 'locationName' => 'analyzerName'], 'maxResults' => ['shape' => 'Integer', 'location' => 'querystring', 'locationName' => 'maxResults'], 'nextToken' => ['shape' => 'Token', 'location' => 'querystring', 'locationName' => 'nextToken']]], 'ListArchiveRulesResponse' => ['type' => 'structure', 'required' => ['archiveRules'], 'members' => ['archiveRules' => ['shape' => 'ArchiveRulesList'], 'nextToken' => ['shape' => 'Token']]], 'ListFindingsRequest' => ['type' => 'structure', 'required' => ['analyzerArn'], 'members' => ['analyzerArn' => ['shape' => 'AnalyzerArn'], 'filter' => ['shape' => 'FilterCriteriaMap'], 'maxResults' => ['shape' => 'Integer'], 'nextToken' => ['shape' => 'Token'], 'sort' => ['shape' => 'SortCriteria']]], 'ListFindingsResponse' => ['type' => 'structure', 'required' => ['findings'], 'members' => ['findings' => ['shape' => 'FindingsList'], 'nextToken' => ['shape' => 'Token']]], 'ListTagsForResourceRequest' => ['type' => 'structure', 'required' => ['resourceArn'], 'members' => ['resourceArn' => ['shape' => 'String', 'location' => 'uri', 'locationName' => 'resourceArn']]], 'ListTagsForResourceResponse' => ['type' => 'structure', 'members' => ['tags' => ['shape' => 'TagsMap']]], 'Name' => ['type' => 'string', 'max' => 255, 'min' => 1, 'pattern' => '^[A-Za-z][A-Za-z0-9_.-]*$'], 'OrderBy' => ['type' => 'string', 'enum' => ['ASC', 'DESC']], 'PrincipalMap' => ['type' => 'map', 'key' => ['shape' => 'String'], 'value' => ['shape' => 'String']], 'ReasonCode' => ['type' => 'string', 'enum' => ['AWS_SERVICE_ACCESS_DISABLED', 'DELEGATED_ADMINISTRATOR_DEREGISTERED', 'ORGANIZATION_DELETED', 'SERVICE_LINKED_ROLE_CREATION_FAILED']], 'ResourceArn' => ['type' => 'string', 'pattern' => 'arn:[^:]*:[^:]*:[^:]*:[^:]*:.*$'], 'ResourceNotFoundException' => ['type' => 'structure', 'required' => ['message', 'resourceId', 'resourceType'], 'members' => ['message' => ['shape' => 'String'], 'resourceId' => ['shape' => 'String'], 'resourceType' => ['shape' => 'String']], 'error' => ['httpStatusCode' => 404, 'senderFault' => \true], 'exception' => \true], 'ResourceType' => ['type' => 'string', 'enum' => ['AWS::IAM::Role', 'AWS::KMS::Key', 'AWS::Lambda::Function', 'AWS::Lambda::LayerVersion', 'AWS::S3::Bucket', 'AWS::SQS::Queue']], 'ServiceQuotaExceededException' => ['type' => 'structure', 'required' => ['message', 'resourceId', 'resourceType'], 'members' => ['message' => ['shape' => 'String'], 'resourceId' => ['shape' => 'String'], 'resourceType' => ['shape' => 'String']], 'error' => ['httpStatusCode' => 402, 'senderFault' => \true], 'exception' => \true], 'SharedViaList' => ['type' => 'list', 'member' => ['shape' => 'String']], 'SortCriteria' => ['type' => 'structure', 'members' => ['attributeName' => ['shape' => 'String'], 'orderBy' => ['shape' => 'OrderBy']]], 'StartResourceScanRequest' => ['type' => 'structure', 'required' => ['analyzerArn', 'resourceArn'], 'members' => ['analyzerArn' => ['shape' => 'AnalyzerArn'], 'resourceArn' => ['shape' => 'ResourceArn']]], 'StatusReason' => ['type' => 'structure', 'required' => ['code'], 'members' => ['code' => ['shape' => 'ReasonCode']]], 'String' => ['type' => 'string'], 'TagKeys' => ['type' => 'list', 'member' => ['shape' => 'String']], 'TagResourceRequest' => ['type' => 'structure', 'required' => ['resourceArn', 'tags'], 'members' => ['resourceArn' => ['shape' => 'String', 'location' => 'uri', 'locationName' => 'resourceArn'], 'tags' => ['shape' => 'TagsMap']]], 'TagResourceResponse' => ['type' => 'structure', 'members' => []], 'TagsMap' => ['type' => 'map', 'key' => ['shape' => 'String'], 'value' => ['shape' => 'String']], 'ThrottlingException' => ['type' => 'structure', 'required' => ['message'], 'members' => ['message' => ['shape' => 'String'], 'retryAfterSeconds' => ['shape' => 'Integer', 'location' => 'header', 'locationName' => 'Retry-After']], 'error' => ['httpStatusCode' => 429, 'senderFault' => \true], 'exception' => \true], 'Timestamp' => ['type' => 'timestamp', 'timestampFormat' => 'iso8601'], 'Token' => ['type' => 'string'], 'Type' => ['type' => 'string', 'enum' => ['ACCOUNT', 'ORGANIZATION']], 'UntagResourceRequest' => ['type' => 'structure', 'required' => ['resourceArn', 'tagKeys'], 'members' => ['resourceArn' => ['shape' => 'String', 'location' => 'uri', 'locationName' => 'resourceArn'], 'tagKeys' => ['shape' => 'TagKeys', 'location' => 'querystring', 'locationName' => 'tagKeys']]], 'UntagResourceResponse' => ['type' => 'structure', 'members' => []], 'UpdateArchiveRuleRequest' => ['type' => 'structure', 'required' => ['analyzerName', 'filter', 'ruleName'], 'members' => ['analyzerName' => ['shape' => 'Name', 'location' => 'uri', 'locationName' => 'analyzerName'], 'clientToken' => ['shape' => 'String', 'idempotencyToken' => \true], 'filter' => ['shape' => 'FilterCriteriaMap'], 'ruleName' => ['shape' => 'Name', 'location' => 'uri', 'locationName' => 'ruleName']]], 'UpdateFindingsRequest' => ['type' => 'structure', 'required' => ['analyzerArn', 'status'], 'members' => ['analyzerArn' => ['shape' => 'AnalyzerArn'], 'clientToken' => ['shape' => 'String', 'idempotencyToken' => \true], 'ids' => ['shape' => 'FindingIdList'], 'resourceArn' => ['shape' => 'ResourceArn'], 'status' => ['shape' => 'FindingStatusUpdate']]], 'ValidationException' => ['type' => 'structure', 'required' => ['message', 'reason'], 'members' => ['fieldList' => ['shape' => 'ValidationExceptionFieldList'], 'message' => ['shape' => 'String'], 'reason' => ['shape' => 'ValidationExceptionReason']], 'error' => ['httpStatusCode' => 400, 'senderFault' => \true], 'exception' => \true], 'ValidationExceptionField' => ['type' => 'structure', 'required' => ['message', 'name'], 'members' => ['message' => ['shape' => 'String'], 'name' => ['shape' => 'String']]], 'ValidationExceptionFieldList' => ['type' => 'list', 'member' => ['shape' => 'ValidationExceptionField']], 'ValidationExceptionReason' => ['type' => 'string', 'enum' => ['cannotParse', 'fieldValidationFailed', 'other', 'unknownOperation']], 'ValueList' => ['type' => 'list', 'member' => ['shape' => 'String'], 'max' => 20, 'min' => 1]]];
vendor/Aws3/Aws/data/acm-pca/2017-08-22/api-2.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/api-2.json
4
- return ['version' => '2.0', 'metadata' => ['apiVersion' => '2017-08-22', 'endpointPrefix' => 'acm-pca', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceAbbreviation' => 'ACM-PCA', 'serviceFullName' => 'AWS Certificate Manager Private Certificate Authority', 'serviceId' => 'ACM PCA', 'signatureVersion' => 'v4', 'targetPrefix' => 'ACMPrivateCA', 'uid' => 'acm-pca-2017-08-22'], 'operations' => ['CreateCertificateAuthority' => ['name' => 'CreateCertificateAuthority', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'CreateCertificateAuthorityRequest'], 'output' => ['shape' => 'CreateCertificateAuthorityResponse'], 'errors' => [['shape' => 'InvalidArgsException'], ['shape' => 'InvalidPolicyException'], ['shape' => 'InvalidTagException'], ['shape' => 'LimitExceededException']], 'idempotent' => \true], 'CreateCertificateAuthorityAuditReport' => ['name' => 'CreateCertificateAuthorityAuditReport', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'CreateCertificateAuthorityAuditReportRequest'], 'output' => ['shape' => 'CreateCertificateAuthorityAuditReportResponse'], 'errors' => [['shape' => 'RequestInProgressException'], ['shape' => 'RequestFailedException'], ['shape' => 'ResourceNotFoundException'], ['shape' => 'InvalidArnException'], ['shape' => 'InvalidArgsException'], ['shape' => 'InvalidStateException']], 'idempotent' => \true], 'CreatePermission' => ['name' => 'CreatePermission', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'CreatePermissionRequest'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'InvalidArnException'], ['shape' => 'PermissionAlreadyExistsException'], ['shape' => 'LimitExceededException'], ['shape' => 'InvalidStateException'], ['shape' => 'RequestFailedException']]], 'DeleteCertificateAuthority' => ['name' => 'DeleteCertificateAuthority', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DeleteCertificateAuthorityRequest'], 'errors' => [['shape' => 'ConcurrentModificationException'], ['shape' => 'ResourceNotFoundException'], ['shape' => 'InvalidArnException'], ['shape' => 'InvalidStateException']]], 'DeletePermission' => ['name' => 'DeletePermission', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DeletePermissionRequest'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'InvalidArnException'], ['shape' => 'InvalidStateException'], ['shape' => 'RequestFailedException']]], 'DescribeCertificateAuthority' => ['name' => 'DescribeCertificateAuthority', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DescribeCertificateAuthorityRequest'], 'output' => ['shape' => 'DescribeCertificateAuthorityResponse'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'InvalidArnException']]], 'DescribeCertificateAuthorityAuditReport' => ['name' => 'DescribeCertificateAuthorityAuditReport', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DescribeCertificateAuthorityAuditReportRequest'], 'output' => ['shape' => 'DescribeCertificateAuthorityAuditReportResponse'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'InvalidArnException'], ['shape' => 'InvalidArgsException']]], 'GetCertificate' => ['name' => 'GetCertificate', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'GetCertificateRequest'], 'output' => ['shape' => 'GetCertificateResponse'], 'errors' => [['shape' => 'RequestInProgressException'], ['shape' => 'RequestFailedException'], ['shape' => 'ResourceNotFoundException'], ['shape' => 'InvalidArnException'], ['shape' => 'InvalidStateException']]], 'GetCertificateAuthorityCertificate' => ['name' => 'GetCertificateAuthorityCertificate', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'GetCertificateAuthorityCertificateRequest'], 'output' => ['shape' => 'GetCertificateAuthorityCertificateResponse'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'InvalidStateException'], ['shape' => 'InvalidArnException']]], 'GetCertificateAuthorityCsr' => ['name' => 'GetCertificateAuthorityCsr', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'GetCertificateAuthorityCsrRequest'], 'output' => ['shape' => 'GetCertificateAuthorityCsrResponse'], 'errors' => [['shape' => 'RequestInProgressException'], ['shape' => 'RequestFailedException'], ['shape' => 'ResourceNotFoundException'], ['shape' => 'InvalidArnException'], ['shape' => 'InvalidStateException']]], 'ImportCertificateAuthorityCertificate' => ['name' => 'ImportCertificateAuthorityCertificate', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'ImportCertificateAuthorityCertificateRequest'], 'errors' => [['shape' => 'ConcurrentModificationException'], ['shape' => 'RequestInProgressException'], ['shape' => 'RequestFailedException'], ['shape' => 'ResourceNotFoundException'], ['shape' => 'InvalidArnException'], ['shape' => 'InvalidRequestException'], ['shape' => 'InvalidStateException'], ['shape' => 'MalformedCertificateException'], ['shape' => 'CertificateMismatchException']]], 'IssueCertificate' => ['name' => 'IssueCertificate', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'IssueCertificateRequest'], 'output' => ['shape' => 'IssueCertificateResponse'], 'errors' => [['shape' => 'LimitExceededException'], ['shape' => 'ResourceNotFoundException'], ['shape' => 'InvalidStateException'], ['shape' => 'InvalidArnException'], ['shape' => 'InvalidArgsException'], ['shape' => 'MalformedCSRException']], 'idempotent' => \true], 'ListCertificateAuthorities' => ['name' => 'ListCertificateAuthorities', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'ListCertificateAuthoritiesRequest'], 'output' => ['shape' => 'ListCertificateAuthoritiesResponse'], 'errors' => [['shape' => 'InvalidNextTokenException']]], 'ListPermissions' => ['name' => 'ListPermissions', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'ListPermissionsRequest'], 'output' => ['shape' => 'ListPermissionsResponse'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'InvalidArnException'], ['shape' => 'InvalidNextTokenException'], ['shape' => 'InvalidStateException'], ['shape' => 'RequestFailedException']]], 'ListTags' => ['name' => 'ListTags', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'ListTagsRequest'], 'output' => ['shape' => 'ListTagsResponse'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'InvalidArnException'], ['shape' => 'InvalidStateException']]], 'RestoreCertificateAuthority' => ['name' => 'RestoreCertificateAuthority', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'RestoreCertificateAuthorityRequest'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'InvalidStateException'], ['shape' => 'InvalidArnException']]], 'RevokeCertificate' => ['name' => 'RevokeCertificate', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'RevokeCertificateRequest'], 'errors' => [['shape' => 'ConcurrentModificationException'], ['shape' => 'InvalidArnException'], ['shape' => 'InvalidRequestException'], ['shape' => 'InvalidStateException'], ['shape' => 'LimitExceededException'], ['shape' => 'ResourceNotFoundException'], ['shape' => 'RequestAlreadyProcessedException'], ['shape' => 'RequestInProgressException'], ['shape' => 'RequestFailedException']]], 'TagCertificateAuthority' => ['name' => 'TagCertificateAuthority', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'TagCertificateAuthorityRequest'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'InvalidArnException'], ['shape' => 'InvalidStateException'], ['shape' => 'InvalidTagException'], ['shape' => 'TooManyTagsException']]], 'UntagCertificateAuthority' => ['name' => 'UntagCertificateAuthority', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'UntagCertificateAuthorityRequest'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'InvalidArnException'], ['shape' => 'InvalidStateException'], ['shape' => 'InvalidTagException']]], 'UpdateCertificateAuthority' => ['name' => 'UpdateCertificateAuthority', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'UpdateCertificateAuthorityRequest'], 'errors' => [['shape' => 'ConcurrentModificationException'], ['shape' => 'ResourceNotFoundException'], ['shape' => 'InvalidArgsException'], ['shape' => 'InvalidArnException'], ['shape' => 'InvalidStateException'], ['shape' => 'InvalidPolicyException']]]], 'shapes' => ['ASN1Subject' => ['type' => 'structure', 'members' => ['Country' => ['shape' => 'CountryCodeString'], 'Organization' => ['shape' => 'String64'], 'OrganizationalUnit' => ['shape' => 'String64'], 'DistinguishedNameQualifier' => ['shape' => 'DistinguishedNameQualifierString'], 'State' => ['shape' => 'String128'], 'CommonName' => ['shape' => 'String64'], 'SerialNumber' => ['shape' => 'String64'], 'Locality' => ['shape' => 'String128'], 'Title' => ['shape' => 'String64'], 'Surname' => ['shape' => 'String40'], 'GivenName' => ['shape' => 'String16'], 'Initials' => ['shape' => 'String5'], 'Pseudonym' => ['shape' => 'String128'], 'GenerationQualifier' => ['shape' => 'String3']]], 'AccountId' => ['type' => 'string', 'max' => 12, 'min' => 12, 'pattern' => '[0-9]+'], 'ActionList' => ['type' => 'list', 'member' => ['shape' => 'ActionType'], 'max' => 3, 'min' => 1], 'ActionType' => ['type' => 'string', 'enum' => ['IssueCertificate', 'GetCertificate', 'ListPermissions']], 'Arn' => ['type' => 'string', 'max' => 200, 'min' => 5, 'pattern' => 'arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:[\\w+=/,.@-]*:[0-9]*:[\\w+=,.@-]+(/[\\w+=/,.@-]+)*'], 'AuditReportId' => ['type' => 'string', 'max' => 36, 'min' => 36, 'pattern' => '[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}'], 'AuditReportResponseFormat' => ['type' => 'string', 'enum' => ['JSON', 'CSV']], 'AuditReportStatus' => ['type' => 'string', 'enum' => ['CREATING', 'SUCCESS', 'FAILED']], 'Boolean' => ['type' => 'boolean'], 'CertificateAuthorities' => ['type' => 'list', 'member' => ['shape' => 'CertificateAuthority']], 'CertificateAuthority' => ['type' => 'structure', 'members' => ['Arn' => ['shape' => 'Arn'], 'CreatedAt' => ['shape' => 'TStamp'], 'LastStateChangeAt' => ['shape' => 'TStamp'], 'Type' => ['shape' => 'CertificateAuthorityType'], 'Serial' => ['shape' => 'String'], 'Status' => ['shape' => 'CertificateAuthorityStatus'], 'NotBefore' => ['shape' => 'TStamp'], 'NotAfter' => ['shape' => 'TStamp'], 'FailureReason' => ['shape' => 'FailureReason'], 'CertificateAuthorityConfiguration' => ['shape' => 'CertificateAuthorityConfiguration'], 'RevocationConfiguration' => ['shape' => 'RevocationConfiguration'], 'RestorableUntil' => ['shape' => 'TStamp']]], 'CertificateAuthorityConfiguration' => ['type' => 'structure', 'required' => ['KeyAlgorithm', 'SigningAlgorithm', 'Subject'], 'members' => ['KeyAlgorithm' => ['shape' => 'KeyAlgorithm'], 'SigningAlgorithm' => ['shape' => 'SigningAlgorithm'], 'Subject' => ['shape' => 'ASN1Subject']]], 'CertificateAuthorityStatus' => ['type' => 'string', 'enum' => ['CREATING', 'PENDING_CERTIFICATE', 'ACTIVE', 'DELETED', 'DISABLED', 'EXPIRED', 'FAILED']], 'CertificateAuthorityType' => ['type' => 'string', 'enum' => ['ROOT', 'SUBORDINATE']], 'CertificateBody' => ['type' => 'string'], 'CertificateBodyBlob' => ['type' => 'blob', 'max' => 32768, 'min' => 1], 'CertificateChain' => ['type' => 'string'], 'CertificateChainBlob' => ['type' => 'blob', 'max' => 2097152, 'min' => 0], 'CertificateMismatchException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'ConcurrentModificationException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'CountryCodeString' => ['type' => 'string', 'pattern' => '[A-Za-z]{2}'], 'CreateCertificateAuthorityAuditReportRequest' => ['type' => 'structure', 'required' => ['CertificateAuthorityArn', 'S3BucketName', 'AuditReportResponseFormat'], 'members' => ['CertificateAuthorityArn' => ['shape' => 'Arn'], 'S3BucketName' => ['shape' => 'String'], 'AuditReportResponseFormat' => ['shape' => 'AuditReportResponseFormat']]], 'CreateCertificateAuthorityAuditReportResponse' => ['type' => 'structure', 'members' => ['AuditReportId' => ['shape' => 'AuditReportId'], 'S3Key' => ['shape' => 'String']]], 'CreateCertificateAuthorityRequest' => ['type' => 'structure', 'required' => ['CertificateAuthorityConfiguration', 'CertificateAuthorityType'], 'members' => ['CertificateAuthorityConfiguration' => ['shape' => 'CertificateAuthorityConfiguration'], 'RevocationConfiguration' => ['shape' => 'RevocationConfiguration'], 'CertificateAuthorityType' => ['shape' => 'CertificateAuthorityType'], 'IdempotencyToken' => ['shape' => 'IdempotencyToken'], 'Tags' => ['shape' => 'TagList']]], 'CreateCertificateAuthorityResponse' => ['type' => 'structure', 'members' => ['CertificateAuthorityArn' => ['shape' => 'Arn']]], 'CreatePermissionRequest' => ['type' => 'structure', 'required' => ['CertificateAuthorityArn', 'Principal', 'Actions'], 'members' => ['CertificateAuthorityArn' => ['shape' => 'Arn'], 'Principal' => ['shape' => 'Principal'], 'SourceAccount' => ['shape' => 'AccountId'], 'Actions' => ['shape' => 'ActionList']]], 'CrlConfiguration' => ['type' => 'structure', 'required' => ['Enabled'], 'members' => ['Enabled' => ['shape' => 'Boolean', 'box' => \true], 'ExpirationInDays' => ['shape' => 'Integer1To5000', 'box' => \true], 'CustomCname' => ['shape' => 'String253'], 'S3BucketName' => ['shape' => 'String3To255']]], 'CsrBlob' => ['type' => 'blob', 'max' => 32768, 'min' => 1], 'CsrBody' => ['type' => 'string'], 'DeleteCertificateAuthorityRequest' => ['type' => 'structure', 'required' => ['CertificateAuthorityArn'], 'members' => ['CertificateAuthorityArn' => ['shape' => 'Arn'], 'PermanentDeletionTimeInDays' => ['shape' => 'PermanentDeletionTimeInDays']]], 'DeletePermissionRequest' => ['type' => 'structure', 'required' => ['CertificateAuthorityArn', 'Principal'], 'members' => ['CertificateAuthorityArn' => ['shape' => 'Arn'], 'Principal' => ['shape' => 'Principal'], 'SourceAccount' => ['shape' => 'AccountId']]], 'DescribeCertificateAuthorityAuditReportRequest' => ['type' => 'structure', 'required' => ['CertificateAuthorityArn', 'AuditReportId'], 'members' => ['CertificateAuthorityArn' => ['shape' => 'Arn'], 'AuditReportId' => ['shape' => 'AuditReportId']]], 'DescribeCertificateAuthorityAuditReportResponse' => ['type' => 'structure', 'members' => ['AuditReportStatus' => ['shape' => 'AuditReportStatus'], 'S3BucketName' => ['shape' => 'String'], 'S3Key' => ['shape' => 'String'], 'CreatedAt' => ['shape' => 'TStamp']]], 'DescribeCertificateAuthorityRequest' => ['type' => 'structure', 'required' => ['CertificateAuthorityArn'], 'members' => ['CertificateAuthorityArn' => ['shape' => 'Arn']]], 'DescribeCertificateAuthorityResponse' => ['type' => 'structure', 'members' => ['CertificateAuthority' => ['shape' => 'CertificateAuthority']]], 'DistinguishedNameQualifierString' => ['type' => 'string', 'max' => 64, 'min' => 0, 'pattern' => '[a-zA-Z0-9\'()+-.?:/= ]*'], 'FailureReason' => ['type' => 'string', 'enum' => ['REQUEST_TIMED_OUT', 'UNSUPPORTED_ALGORITHM', 'OTHER']], 'GetCertificateAuthorityCertificateRequest' => ['type' => 'structure', 'required' => ['CertificateAuthorityArn'], 'members' => ['CertificateAuthorityArn' => ['shape' => 'Arn']]], 'GetCertificateAuthorityCertificateResponse' => ['type' => 'structure', 'members' => ['Certificate' => ['shape' => 'CertificateBody'], 'CertificateChain' => ['shape' => 'CertificateChain']]], 'GetCertificateAuthorityCsrRequest' => ['type' => 'structure', 'required' => ['CertificateAuthorityArn'], 'members' => ['CertificateAuthorityArn' => ['shape' => 'Arn']]], 'GetCertificateAuthorityCsrResponse' => ['type' => 'structure', 'members' => ['Csr' => ['shape' => 'CsrBody']]], 'GetCertificateRequest' => ['type' => 'structure', 'required' => ['CertificateAuthorityArn', 'CertificateArn'], 'members' => ['CertificateAuthorityArn' => ['shape' => 'Arn'], 'CertificateArn' => ['shape' => 'Arn']]], 'GetCertificateResponse' => ['type' => 'structure', 'members' => ['Certificate' => ['shape' => 'CertificateBody'], 'CertificateChain' => ['shape' => 'CertificateChain']]], 'IdempotencyToken' => ['type' => 'string', 'max' => 36, 'min' => 1, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u00FF]*'], 'ImportCertificateAuthorityCertificateRequest' => ['type' => 'structure', 'required' => ['CertificateAuthorityArn', 'Certificate'], 'members' => ['CertificateAuthorityArn' => ['shape' => 'Arn'], 'Certificate' => ['shape' => 'CertificateBodyBlob'], 'CertificateChain' => ['shape' => 'CertificateChainBlob']]], 'Integer1To5000' => ['type' => 'integer', 'max' => 5000, 'min' => 1], 'InvalidArgsException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'InvalidArnException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'InvalidNextTokenException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'InvalidPolicyException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'InvalidRequestException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'InvalidStateException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'InvalidTagException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'IssueCertificateRequest' => ['type' => 'structure', 'required' => ['CertificateAuthorityArn', 'Csr', 'SigningAlgorithm', 'Validity'], 'members' => ['CertificateAuthorityArn' => ['shape' => 'Arn'], 'Csr' => ['shape' => 'CsrBlob'], 'SigningAlgorithm' => ['shape' => 'SigningAlgorithm'], 'TemplateArn' => ['shape' => 'Arn'], 'Validity' => ['shape' => 'Validity'], 'IdempotencyToken' => ['shape' => 'IdempotencyToken']]], 'IssueCertificateResponse' => ['type' => 'structure', 'members' => ['CertificateArn' => ['shape' => 'Arn']]], 'KeyAlgorithm' => ['type' => 'string', 'enum' => ['RSA_2048', 'RSA_4096', 'EC_prime256v1', 'EC_secp384r1']], 'LimitExceededException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'ListCertificateAuthoritiesRequest' => ['type' => 'structure', 'members' => ['NextToken' => ['shape' => 'NextToken'], 'MaxResults' => ['shape' => 'MaxResults']]], 'ListCertificateAuthoritiesResponse' => ['type' => 'structure', 'members' => ['CertificateAuthorities' => ['shape' => 'CertificateAuthorities'], 'NextToken' => ['shape' => 'NextToken']]], 'ListPermissionsRequest' => ['type' => 'structure', 'required' => ['CertificateAuthorityArn'], 'members' => ['CertificateAuthorityArn' => ['shape' => 'Arn'], 'NextToken' => ['shape' => 'NextToken'], 'MaxResults' => ['shape' => 'MaxResults']]], 'ListPermissionsResponse' => ['type' => 'structure', 'members' => ['Permissions' => ['shape' => 'PermissionList'], 'NextToken' => ['shape' => 'NextToken']]], 'ListTagsRequest' => ['type' => 'structure', 'required' => ['CertificateAuthorityArn'], 'members' => ['CertificateAuthorityArn' => ['shape' => 'Arn'], 'NextToken' => ['shape' => 'NextToken'], 'MaxResults' => ['shape' => 'MaxResults']]], 'ListTagsResponse' => ['type' => 'structure', 'members' => ['Tags' => ['shape' => 'TagList'], 'NextToken' => ['shape' => 'NextToken']]], 'MalformedCSRException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'MalformedCertificateException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'MaxResults' => ['type' => 'integer', 'max' => 1000, 'min' => 1], 'NextToken' => ['type' => 'string', 'max' => 500, 'min' => 1], 'PermanentDeletionTimeInDays' => ['type' => 'integer', 'max' => 30, 'min' => 7], 'Permission' => ['type' => 'structure', 'members' => ['CertificateAuthorityArn' => ['shape' => 'Arn'], 'CreatedAt' => ['shape' => 'TStamp'], 'Principal' => ['shape' => 'String'], 'SourceAccount' => ['shape' => 'String'], 'Actions' => ['shape' => 'ActionList'], 'Policy' => ['shape' => 'String']]], 'PermissionAlreadyExistsException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'PermissionList' => ['type' => 'list', 'member' => ['shape' => 'Permission'], 'min' => 0], 'PositiveLong' => ['type' => 'long', 'min' => 1], 'Principal' => ['type' => 'string', 'max' => 128, 'min' => 0, 'pattern' => '^[^*]+$'], 'RequestAlreadyProcessedException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'RequestFailedException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'RequestInProgressException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'ResourceNotFoundException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'RestoreCertificateAuthorityRequest' => ['type' => 'structure', 'required' => ['CertificateAuthorityArn'], 'members' => ['CertificateAuthorityArn' => ['shape' => 'Arn']]], 'RevocationConfiguration' => ['type' => 'structure', 'members' => ['CrlConfiguration' => ['shape' => 'CrlConfiguration']]], 'RevocationReason' => ['type' => 'string', 'enum' => ['UNSPECIFIED', 'KEY_COMPROMISE', 'CERTIFICATE_AUTHORITY_COMPROMISE', 'AFFILIATION_CHANGED', 'SUPERSEDED', 'CESSATION_OF_OPERATION', 'PRIVILEGE_WITHDRAWN', 'A_A_COMPROMISE']], 'RevokeCertificateRequest' => ['type' => 'structure', 'required' => ['CertificateAuthorityArn', 'CertificateSerial', 'RevocationReason'], 'members' => ['CertificateAuthorityArn' => ['shape' => 'Arn'], 'CertificateSerial' => ['shape' => 'String128'], 'RevocationReason' => ['shape' => 'RevocationReason']]], 'SigningAlgorithm' => ['type' => 'string', 'enum' => ['SHA256WITHECDSA', 'SHA384WITHECDSA', 'SHA512WITHECDSA', 'SHA256WITHRSA', 'SHA384WITHRSA', 'SHA512WITHRSA']], 'String' => ['type' => 'string'], 'String128' => ['type' => 'string', 'max' => 128, 'min' => 0], 'String16' => ['type' => 'string', 'max' => 16, 'min' => 0], 'String253' => ['type' => 'string', 'max' => 253, 'min' => 0], 'String3' => ['type' => 'string', 'max' => 3, 'min' => 0], 'String3To255' => ['type' => 'string', 'max' => 255, 'min' => 3], 'String40' => ['type' => 'string', 'max' => 40, 'min' => 0], 'String5' => ['type' => 'string', 'max' => 5, 'min' => 0], 'String64' => ['type' => 'string', 'max' => 64, 'min' => 0], 'TStamp' => ['type' => 'timestamp'], 'Tag' => ['type' => 'structure', 'required' => ['Key'], 'members' => ['Key' => ['shape' => 'TagKey'], 'Value' => ['shape' => 'TagValue']]], 'TagCertificateAuthorityRequest' => ['type' => 'structure', 'required' => ['CertificateAuthorityArn', 'Tags'], 'members' => ['CertificateAuthorityArn' => ['shape' => 'Arn'], 'Tags' => ['shape' => 'TagList']]], 'TagKey' => ['type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$'], 'TagList' => ['type' => 'list', 'member' => ['shape' => 'Tag'], 'max' => 50, 'min' => 1], 'TagValue' => ['type' => 'string', 'max' => 256, 'min' => 0, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$'], 'TooManyTagsException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'UntagCertificateAuthorityRequest' => ['type' => 'structure', 'required' => ['CertificateAuthorityArn', 'Tags'], 'members' => ['CertificateAuthorityArn' => ['shape' => 'Arn'], 'Tags' => ['shape' => 'TagList']]], 'UpdateCertificateAuthorityRequest' => ['type' => 'structure', 'required' => ['CertificateAuthorityArn'], 'members' => ['CertificateAuthorityArn' => ['shape' => 'Arn'], 'RevocationConfiguration' => ['shape' => 'RevocationConfiguration'], 'Status' => ['shape' => 'CertificateAuthorityStatus']]], 'Validity' => ['type' => 'structure', 'required' => ['Value', 'Type'], 'members' => ['Value' => ['shape' => 'PositiveLong', 'box' => \true], 'Type' => ['shape' => 'ValidityPeriodType']]], 'ValidityPeriodType' => ['type' => 'string', 'enum' => ['END_DATE', 'ABSOLUTE', 'DAYS', 'MONTHS', 'YEARS']]]];
1
  <?php
2
 
3
  // This file was auto-generated from sdk-root/src/data/acm-pca/2017-08-22/api-2.json
4
+ return ['version' => '2.0', 'metadata' => ['apiVersion' => '2017-08-22', 'endpointPrefix' => 'acm-pca', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceAbbreviation' => 'ACM-PCA', 'serviceFullName' => 'AWS Certificate Manager Private Certificate Authority', 'serviceId' => 'ACM PCA', 'signatureVersion' => 'v4', 'targetPrefix' => 'ACMPrivateCA', 'uid' => 'acm-pca-2017-08-22'], 'operations' => ['CreateCertificateAuthority' => ['name' => 'CreateCertificateAuthority', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'CreateCertificateAuthorityRequest'], 'output' => ['shape' => 'CreateCertificateAuthorityResponse'], 'errors' => [['shape' => 'InvalidArgsException'], ['shape' => 'InvalidPolicyException'], ['shape' => 'InvalidTagException'], ['shape' => 'LimitExceededException']], 'idempotent' => \true], 'CreateCertificateAuthorityAuditReport' => ['name' => 'CreateCertificateAuthorityAuditReport', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'CreateCertificateAuthorityAuditReportRequest'], 'output' => ['shape' => 'CreateCertificateAuthorityAuditReportResponse'], 'errors' => [['shape' => 'RequestInProgressException'], ['shape' => 'RequestFailedException'], ['shape' => 'ResourceNotFoundException'], ['shape' => 'InvalidArnException'], ['shape' => 'InvalidArgsException'], ['shape' => 'InvalidStateException']], 'idempotent' => \true], 'CreatePermission' => ['name' => 'CreatePermission', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'CreatePermissionRequest'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'InvalidArnException'], ['shape' => 'PermissionAlreadyExistsException'], ['shape' => 'LimitExceededException'], ['shape' => 'InvalidStateException'], ['shape' => 'RequestFailedException']]], 'DeleteCertificateAuthority' => ['name' => 'DeleteCertificateAuthority', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DeleteCertificateAuthorityRequest'], 'errors' => [['shape' => 'ConcurrentModificationException'], ['shape' => 'ResourceNotFoundException'], ['shape' => 'InvalidArnException'], ['shape' => 'InvalidStateException']]], 'DeletePermission' => ['name' => 'DeletePermission', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DeletePermissionRequest'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'InvalidArnException'], ['shape' => 'InvalidStateException'], ['shape' => 'RequestFailedException']]], 'DeletePolicy' => ['name' => 'DeletePolicy', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DeletePolicyRequest'], 'errors' => [['shape' => 'ConcurrentModificationException'], ['shape' => 'InvalidArnException'], ['shape' => 'InvalidStateException'], ['shape' => 'LockoutPreventedException'], ['shape' => 'RequestFailedException'], ['shape' => 'ResourceNotFoundException']]], 'DescribeCertificateAuthority' => ['name' => 'DescribeCertificateAuthority', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DescribeCertificateAuthorityRequest'], 'output' => ['shape' => 'DescribeCertificateAuthorityResponse'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'InvalidArnException']]], 'DescribeCertificateAuthorityAuditReport' => ['name' => 'DescribeCertificateAuthorityAuditReport', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DescribeCertificateAuthorityAuditReportRequest'], 'output' => ['shape' => 'DescribeCertificateAuthorityAuditReportResponse'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'InvalidArnException'], ['shape' => 'InvalidArgsException']]], 'GetCertificate' => ['name' => 'GetCertificate', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'GetCertificateRequest'], 'output' => ['shape' => 'GetCertificateResponse'], 'errors' => [['shape' => 'RequestInProgressException'], ['shape' => 'RequestFailedException'], ['shape' => 'ResourceNotFoundException'], ['shape' => 'InvalidArnException'], ['shape' => 'InvalidStateException']]], 'GetCertificateAuthorityCertificate' => ['name' => 'GetCertificateAuthorityCertificate', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'GetCertificateAuthorityCertificateRequest'], 'output' => ['shape' => 'GetCertificateAuthorityCertificateResponse'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'InvalidStateException'], ['shape' => 'InvalidArnException']]], 'GetCertificateAuthorityCsr' => ['name' => 'GetCertificateAuthorityCsr', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'GetCertificateAuthorityCsrRequest'], 'output' => ['shape' => 'GetCertificateAuthorityCsrResponse'], 'errors' => [['shape' => 'RequestInProgressException'], ['shape' => 'RequestFailedException'], ['shape' => 'ResourceNotFoundException'], ['shape' => 'InvalidArnException'], ['shape' => 'InvalidStateException']]], 'GetPolicy' => ['name' => 'GetPolicy', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'GetPolicyRequest'], 'output' => ['shape' => 'GetPolicyResponse'], 'errors' => [['shape' => 'InvalidArnException'], ['shape' => 'InvalidStateException'], ['shape' => 'RequestFailedException'], ['shape' => 'ResourceNotFoundException']]], 'ImportCertificateAuthorityCertificate' => ['name' => 'ImportCertificateAuthorityCertificate', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'ImportCertificateAuthorityCertificateRequest'], 'errors' => [['shape' => 'ConcurrentModificationException'], ['shape' => 'RequestInProgressException'], ['shape' => 'RequestFailedException'], ['shape' => 'ResourceNotFoundException'], ['shape' => 'InvalidArnException'], ['shape' => 'InvalidRequestException'], ['shape' => 'InvalidStateException'], ['shape' => 'MalformedCertificateException'], ['shape' => 'CertificateMismatchException']]], 'IssueCertificate' => ['name' => 'IssueCertificate', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'IssueCertificateRequest'], 'output' => ['shape' => 'IssueCertificateResponse'], 'errors' => [['shape' => 'LimitExceededException'], ['shape' => 'ResourceNotFoundException'], ['shape' => 'InvalidStateException'], ['shape' => 'InvalidArnException'], ['shape' => 'InvalidArgsException'], ['shape' => 'MalformedCSRException']], 'idempotent' => \true], 'ListCertificateAuthorities' => ['name' => 'ListCertificateAuthorities', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'ListCertificateAuthoritiesRequest'], 'output' => ['shape' => 'ListCertificateAuthoritiesResponse'], 'errors' => [['shape' => 'InvalidNextTokenException']]], 'ListPermissions' => ['name' => 'ListPermissions', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'ListPermissionsRequest'], 'output' => ['shape' => 'ListPermissionsResponse'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'InvalidArnException'], ['shape' => 'InvalidNextTokenException'], ['shape' => 'InvalidStateException'], ['shape' => 'RequestFailedException']]], 'ListTags' => ['name' => 'ListTags', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'ListTagsRequest'], 'output' => ['shape' => 'ListTagsResponse'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'InvalidArnException'], ['shape' => 'InvalidStateException']]], 'PutPolicy' => ['name' => 'PutPolicy', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'PutPolicyRequest'], 'errors' => [['shape' => 'ConcurrentModificationException'], ['shape' => 'InvalidArnException'], ['shape' => 'InvalidStateException'], ['shape' => 'InvalidPolicyException'], ['shape' => 'LockoutPreventedException'], ['shape' => 'RequestFailedException'], ['shape' => 'ResourceNotFoundException']]], 'RestoreCertificateAuthority' => ['name' => 'RestoreCertificateAuthority', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'RestoreCertificateAuthorityRequest'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'InvalidStateException'], ['shape' => 'InvalidArnException']]], 'RevokeCertificate' => ['name' => 'RevokeCertificate', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'RevokeCertificateRequest'], 'errors' => [['shape' => 'ConcurrentModificationException'], ['shape' => 'InvalidArnException'], ['shape' => 'InvalidRequestException'], ['shape' => 'InvalidStateException'], ['shape' => 'LimitExceededException'], ['shape' => 'ResourceNotFoundException'], ['shape' => 'RequestAlreadyProcessedException'], ['shape' => 'RequestInProgressException'], ['shape' => 'RequestFailedException']]], 'TagCertificateAuthority' => ['name' => 'TagCertificateAuthority', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'TagCertificateAuthorityRequest'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'InvalidArnException'], ['shape' => 'InvalidStateException'], ['shape' => 'InvalidTagException'], ['shape' => 'TooManyTagsException']]], 'UntagCertificateAuthority' => ['name' => 'UntagCertificateAuthority', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'UntagCertificateAuthorityRequest'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'InvalidArnException'], ['shape' => 'InvalidStateException'], ['shape' => 'InvalidTagException']]], 'UpdateCertificateAuthority' => ['name' => 'UpdateCertificateAuthority', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'UpdateCertificateAuthorityRequest'], 'errors' => [['shape' => 'ConcurrentModificationException'], ['shape' => 'ResourceNotFoundException'], ['shape' => 'InvalidArgsException'], ['shape' => 'InvalidArnException'], ['shape' => 'InvalidStateException'], ['shape' => 'InvalidPolicyException']]]], 'shapes' => ['ASN1PrintableString64' => ['type' => 'string', 'max' => 64, 'min' => 0, 'pattern' => '[a-zA-Z0-9\'()+-.?:/= ]*'], 'ASN1Subject' => ['type' => 'structure', 'members' => ['Country' => ['shape' => 'CountryCodeString'], 'Organization' => ['shape' => 'String64'], 'OrganizationalUnit' => ['shape' => 'String64'], 'DistinguishedNameQualifier' => ['shape' => 'ASN1PrintableString64'], 'State' => ['shape' => 'String128'], 'CommonName' => ['shape' => 'String64'], 'SerialNumber' => ['shape' => 'ASN1PrintableString64'], 'Locality' => ['shape' => 'String128'], 'Title' => ['shape' => 'String64'], 'Surname' => ['shape' => 'String40'], 'GivenName' => ['shape' => 'String16'], 'Initials' => ['shape' => 'String5'], 'Pseudonym' => ['shape' => 'String128'], 'GenerationQualifier' => ['shape' => 'String3']]], 'AWSPolicy' => ['type' => 'string', 'max' => 20480, 'min' => 1, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+'], 'AccountId' => ['type' => 'string', 'max' => 12, 'min' => 12, 'pattern' => '[0-9]+'], 'ActionList' => ['type' => 'list', 'member' => ['shape' => 'ActionType'], 'max' => 3, 'min' => 1], 'ActionType' => ['type' => 'string', 'enum' => ['IssueCertificate', 'GetCertificate', 'ListPermissions']], 'Arn' => ['type' => 'string', 'max' => 200, 'min' => 5, 'pattern' => 'arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:[\\w+=/,.@-]*:[0-9]*:[\\w+=,.@-]+(/[\\w+=,.@-]+)*'], 'AuditReportId' => ['type' => 'string', 'max' => 36, 'min' => 36, 'pattern' => '[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}'], 'AuditReportResponseFormat' => ['type' => 'string', 'enum' => ['JSON', 'CSV']], 'AuditReportStatus' => ['type' => 'string', 'enum' => ['CREATING', 'SUCCESS', 'FAILED']], 'Boolean' => ['type' => 'boolean'], 'CertificateAuthorities' => ['type' => 'list', 'member' => ['shape' => 'CertificateAuthority']], 'CertificateAuthority' => ['type' => 'structure', 'members' => ['Arn' => ['shape' => 'Arn'], 'OwnerAccount' => ['shape' => 'AccountId'], 'CreatedAt' => ['shape' => 'TStamp'], 'LastStateChangeAt' => ['shape' => 'TStamp'], 'Type' => ['shape' => 'CertificateAuthorityType'], 'Serial' => ['shape' => 'String'], 'Status' => ['shape' => 'CertificateAuthorityStatus'], 'NotBefore' => ['shape' => 'TStamp'], 'NotAfter' => ['shape' => 'TStamp'], 'FailureReason' => ['shape' => 'FailureReason'], 'CertificateAuthorityConfiguration' => ['shape' => 'CertificateAuthorityConfiguration'], 'RevocationConfiguration' => ['shape' => 'RevocationConfiguration'], 'RestorableUntil' => ['shape' => 'TStamp']]], 'CertificateAuthorityConfiguration' => ['type' => 'structure', 'required' => ['KeyAlgorithm', 'SigningAlgorithm', 'Subject'], 'members' => ['KeyAlgorithm' => ['shape' => 'KeyAlgorithm'], 'SigningAlgorithm' => ['shape' => 'SigningAlgorithm'], 'Subject' => ['shape' => 'ASN1Subject']]], 'CertificateAuthorityStatus' => ['type' => 'string', 'enum' => ['CREATING', 'PENDING_CERTIFICATE', 'ACTIVE', 'DELETED', 'DISABLED', 'EXPIRED', 'FAILED']], 'CertificateAuthorityType' => ['type' => 'string', 'enum' => ['ROOT', 'SUBORDINATE']], 'CertificateBody' => ['type' => 'string'], 'CertificateBodyBlob' => ['type' => 'blob', 'max' => 32768, 'min' => 1], 'CertificateChain' => ['type' => 'string'], 'CertificateChainBlob' => ['type' => 'blob', 'max' => 2097152, 'min' => 0], 'CertificateMismatchException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'ConcurrentModificationException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'CountryCodeString' => ['type' => 'string', 'max' => 2, 'min' => 2, 'pattern' => '[A-Za-z]{2}'], 'CreateCertificateAuthorityAuditReportRequest' => ['type' => 'structure', 'required' => ['CertificateAuthorityArn', 'S3BucketName', 'AuditReportResponseFormat'], 'members' => ['CertificateAuthorityArn' => ['shape' => 'Arn'], 'S3BucketName' => ['shape' => 'S3BucketName'], 'AuditReportResponseFormat' => ['shape' => 'AuditReportResponseFormat']]], 'CreateCertificateAuthorityAuditReportResponse' => ['type' => 'structure', 'members' => ['AuditReportId' => ['shape' => 'AuditReportId'], 'S3Key' => ['shape' => 'S3Key']]], 'CreateCertificateAuthorityRequest' => ['type' => 'structure', 'required' => ['CertificateAuthorityConfiguration', 'CertificateAuthorityType'], 'members' => ['CertificateAuthorityConfiguration' => ['shape' => 'CertificateAuthorityConfiguration'], 'RevocationConfiguration' => ['shape' => 'RevocationConfiguration'], 'CertificateAuthorityType' => ['shape' => 'CertificateAuthorityType'], 'IdempotencyToken' => ['shape' => 'IdempotencyToken'], 'Tags' => ['shape' => 'TagList']]], 'CreateCertificateAuthorityResponse' => ['type' => 'structure', 'members' => ['CertificateAuthorityArn' => ['shape' => 'Arn']]], 'CreatePermissionRequest' => ['type' => 'structure', 'required' => ['CertificateAuthorityArn', 'Principal', 'Actions'], 'members' => ['CertificateAuthorityArn' => ['shape' => 'Arn'], 'Principal' => ['shape' => 'Principal'], 'SourceAccount' => ['shape' => 'AccountId'], 'Actions' => ['shape' => 'ActionList']]], 'CrlConfiguration' => ['type' => 'structure', 'required' => ['Enabled'], 'members' => ['Enabled' => ['shape' => 'Boolean', 'box' => \true], 'ExpirationInDays' => ['shape' => 'Integer1To5000', 'box' => \true], 'CustomCname' => ['shape' => 'String253'], 'S3BucketName' => ['shape' => 'String3To255']]], 'CsrBlob' => ['type' => 'blob', 'max' => 32768, 'min' => 1], 'CsrBody' => ['type' => 'string'], 'DeleteCertificateAuthorityRequest' => ['type' => 'structure', 'required' => ['CertificateAuthorityArn'], 'members' => ['CertificateAuthorityArn' => ['shape' => 'Arn'], 'PermanentDeletionTimeInDays' => ['shape' => 'PermanentDeletionTimeInDays']]], 'DeletePermissionRequest' => ['type' => 'structure', 'required' => ['CertificateAuthorityArn', 'Principal'], 'members' => ['CertificateAuthorityArn' => ['shape' => 'Arn'], 'Principal' => ['shape' => 'Principal'], 'SourceAccount' => ['shape' => 'AccountId']]], 'DeletePolicyRequest' => ['type' => 'structure', 'required' => ['ResourceArn'], 'members' => ['ResourceArn' => ['shape' => 'Arn']]], 'DescribeCertificateAuthorityAuditReportRequest' => ['type' => 'structure', 'required' => ['CertificateAuthorityArn', 'AuditReportId'], 'members' => ['CertificateAuthorityArn' => ['shape' => 'Arn'], 'AuditReportId' => ['shape' => 'AuditReportId']]], 'DescribeCertificateAuthorityAuditReportResponse' => ['type' => 'structure', 'members' => ['AuditReportStatus' => ['shape' => 'AuditReportStatus'], 'S3BucketName' => ['shape' => 'S3BucketName'], 'S3Key' => ['shape' => 'S3Key'], 'CreatedAt' => ['shape' => 'TStamp']]], 'DescribeCertificateAuthorityRequest' => ['type' => 'structure', 'required' => ['CertificateAuthorityArn'], 'members' => ['CertificateAuthorityArn' => ['shape' => 'Arn']]], 'DescribeCertificateAuthorityResponse' => ['type' => 'structure', 'members' => ['CertificateAuthority' => ['shape' => 'CertificateAuthority']]], 'FailureReason' => ['type' => 'string', 'enum' => ['REQUEST_TIMED_OUT', 'UNSUPPORTED_ALGORITHM', 'OTHER']], 'GetCertificateAuthorityCertificateRequest' => ['type' => 'structure', 'required' => ['CertificateAuthorityArn'], 'members' => ['CertificateAuthorityArn' => ['shape' => 'Arn']]], 'GetCertificateAuthorityCertificateResponse' => ['type' => 'structure', 'members' => ['Certificate' => ['shape' => 'CertificateBody'], 'CertificateChain' => ['shape' => 'CertificateChain']]], 'GetCertificateAuthorityCsrRequest' => ['type' => 'structure', 'required' => ['CertificateAuthorityArn'], 'members' => ['CertificateAuthorityArn' => ['shape' => 'Arn']]], 'GetCertificateAuthorityCsrResponse' => ['type' => 'structure', 'members' => ['Csr' => ['shape' => 'CsrBody']]], 'GetCertificateRequest' => ['type' => 'structure', 'required' => ['CertificateAuthorityArn', 'CertificateArn'], 'members' => ['CertificateAuthorityArn' => ['shape' => 'Arn'], 'CertificateArn' => ['shape' => 'Arn']]], 'GetCertificateResponse' => ['type' => 'structure', 'members' => ['Certificate' => ['shape' => 'CertificateBody'], 'CertificateChain' => ['shape' => 'CertificateChain']]], 'GetPolicyRequest' => ['type' => 'structure', 'required' => ['ResourceArn'], 'members' => ['ResourceArn' => ['shape' => 'Arn']]], 'GetPolicyResponse' => ['type' => 'structure', 'members' => ['Policy' => ['shape' => 'AWSPolicy']]], 'IdempotencyToken' => ['type' => 'string', 'max' => 36, 'min' => 1, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u00FF]*'], 'ImportCertificateAuthorityCertificateRequest' => ['type' => 'structure', 'required' => ['CertificateAuthorityArn', 'Certificate'], 'members' => ['CertificateAuthorityArn' => ['shape' => 'Arn'], 'Certificate' => ['shape' => 'CertificateBodyBlob'], 'CertificateChain' => ['shape' => 'CertificateChainBlob']]], 'Integer1To5000' => ['type' => 'integer', 'max' => 5000, 'min' => 1], 'InvalidArgsException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'InvalidArnException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'InvalidNextTokenException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'InvalidPolicyException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'InvalidRequestException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'InvalidStateException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'InvalidTagException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'IssueCertificateRequest' => ['type' => 'structure', 'required' => ['CertificateAuthorityArn', 'Csr', 'SigningAlgorithm', 'Validity'], 'members' => ['CertificateAuthorityArn' => ['shape' => 'Arn'], 'Csr' => ['shape' => 'CsrBlob'], 'SigningAlgorithm' => ['shape' => 'SigningAlgorithm'], 'TemplateArn' => ['shape' => 'Arn'], 'Validity' => ['shape' => 'Validity'], 'IdempotencyToken' => ['shape' => 'IdempotencyToken']]], 'IssueCertificateResponse' => ['type' => 'structure', 'members' => ['CertificateArn' => ['shape' => 'Arn']]], 'KeyAlgorithm' => ['type' => 'string', 'enum' => ['RSA_2048', 'RSA_4096', 'EC_prime256v1', 'EC_secp384r1']], 'LimitExceededException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'ListCertificateAuthoritiesRequest' => ['type' => 'structure', 'members' => ['NextToken' => ['shape' => 'NextToken'], 'MaxResults' => ['shape' => 'MaxResults'], 'ResourceOwner' => ['shape' => 'ResourceOwner']]], 'ListCertificateAuthoritiesResponse' => ['type' => 'structure', 'members' => ['CertificateAuthorities' => ['shape' => 'CertificateAuthorities'], 'NextToken' => ['shape' => 'NextToken']]], 'ListPermissionsRequest' => ['type' => 'structure', 'required' => ['CertificateAuthorityArn'], 'members' => ['CertificateAuthorityArn' => ['shape' => 'Arn'], 'NextToken' => ['shape' => 'NextToken'], 'MaxResults' => ['shape' => 'MaxResults']]], 'ListPermissionsResponse' => ['type' => 'structure', 'members' => ['Permissions' => ['shape' => 'PermissionList'], 'NextToken' => ['shape' => 'NextToken']]], 'ListTagsRequest' => ['type' => 'structure', 'required' => ['CertificateAuthorityArn'], 'members' => ['CertificateAuthorityArn' => ['shape' => 'Arn'], 'NextToken' => ['shape' => 'NextToken'], 'MaxResults' => ['shape' => 'MaxResults']]], 'ListTagsResponse' => ['type' => 'structure', 'members' => ['Tags' => ['shape' => 'TagList'], 'NextToken' => ['shape' => 'NextToken']]], 'LockoutPreventedException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'MalformedCSRException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'MalformedCertificateException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'MaxResults' => ['type' => 'integer', 'max' => 1000, 'min' => 1], 'NextToken' => ['type' => 'string', 'max' => 500, 'min' => 1], 'PermanentDeletionTimeInDays' => ['type' => 'integer', 'max' => 30, 'min' => 7], 'Permission' => ['type' => 'structure', 'members' => ['CertificateAuthorityArn' => ['shape' => 'Arn'], 'CreatedAt' => ['shape' => 'TStamp'], 'Principal' => ['shape' => 'Principal'], 'SourceAccount' => ['shape' => 'AccountId'], 'Actions' => ['shape' => 'ActionList'], 'Policy' => ['shape' => 'AWSPolicy']]], 'PermissionAlreadyExistsException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'PermissionList' => ['type' => 'list', 'member' => ['shape' => 'Permission'], 'min' => 0], 'PositiveLong' => ['type' => 'long', 'min' => 1], 'Principal' => ['type' => 'string', 'max' => 128, 'min' => 0, 'pattern' => '^[^*]+$'], 'PutPolicyRequest' => ['type' => 'structure', 'required' => ['ResourceArn', 'Policy'], 'members' => ['ResourceArn' => ['shape' => 'Arn'], 'Policy' => ['shape' => 'AWSPolicy']]], 'RequestAlreadyProcessedException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'RequestFailedException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'RequestInProgressException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'ResourceNotFoundException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'ResourceOwner' => ['type' => 'string', 'enum' => ['SELF', 'OTHER_ACCOUNTS']], 'RestoreCertificateAuthorityRequest' => ['type' => 'structure', 'required' => ['CertificateAuthorityArn'], 'members' => ['CertificateAuthorityArn' => ['shape' => 'Arn']]], 'RevocationConfiguration' => ['type' => 'structure', 'members' => ['CrlConfiguration' => ['shape' => 'CrlConfiguration']]], 'RevocationReason' => ['type' => 'string', 'enum' => ['UNSPECIFIED', 'KEY_COMPROMISE', 'CERTIFICATE_AUTHORITY_COMPROMISE', 'AFFILIATION_CHANGED', 'SUPERSEDED', 'CESSATION_OF_OPERATION', 'PRIVILEGE_WITHDRAWN', 'A_A_COMPROMISE']], 'RevokeCertificateRequest' => ['type' => 'structure', 'required' => ['CertificateAuthorityArn', 'CertificateSerial', 'RevocationReason'], 'members' => ['CertificateAuthorityArn' => ['shape' => 'Arn'], 'CertificateSerial' => ['shape' => 'String128'], 'RevocationReason' => ['shape' => 'RevocationReason']]], 'S3BucketName' => ['type' => 'string', 'max' => 63, 'min' => 3], 'S3Key' => ['type' => 'string', 'max' => 1024], 'SigningAlgorithm' => ['type' => 'string', 'enum' => ['SHA256WITHECDSA', 'SHA384WITHECDSA', 'SHA512WITHECDSA', 'SHA256WITHRSA', 'SHA384WITHRSA', 'SHA512WITHRSA']], 'String' => ['type' => 'string'], 'String128' => ['type' => 'string', 'max' => 128, 'min' => 0], 'String16' => ['type' => 'string', 'max' => 16, 'min' => 0], 'String253' => ['type' => 'string', 'max' => 253, 'min' => 0], 'String3' => ['type' => 'string', 'max' => 3, 'min' => 0], 'String3To255' => ['type' => 'string', 'max' => 255, 'min' => 3], 'String40' => ['type' => 'string', 'max' => 40, 'min' => 0], 'String5' => ['type' => 'string', 'max' => 5, 'min' => 0], 'String64' => ['type' => 'string', 'max' => 64, 'min' => 0], 'TStamp' => ['type' => 'timestamp'], 'Tag' => ['type' => 'structure', 'required' => ['Key'], 'members' => ['Key' => ['shape' => 'TagKey'], 'Value' => ['shape' => 'TagValue']]], 'TagCertificateAuthorityRequest' => ['type' => 'structure', 'required' => ['CertificateAuthorityArn', 'Tags'], 'members' => ['CertificateAuthorityArn' => ['shape' => 'Arn'], 'Tags' => ['shape' => 'TagList']]], 'TagKey' => ['type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$'], 'TagList' => ['type' => 'list', 'member' => ['shape' => 'Tag'], 'max' => 50, 'min' => 1], 'TagValue' => ['type' => 'string', 'max' => 256, 'min' => 0, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$'], 'TooManyTagsException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'UntagCertificateAuthorityRequest' => ['type' => 'structure', 'required' => ['CertificateAuthorityArn', 'Tags'], 'members' => ['CertificateAuthorityArn' => ['shape' => 'Arn'], 'Tags' => ['shape' => 'TagList']]], 'UpdateCertificateAuthorityRequest' => ['type' => 'structure', 'required' => ['CertificateAuthorityArn'], 'members' => ['CertificateAuthorityArn' => ['shape' => 'Arn'], 'RevocationConfiguration' => ['shape' => 'RevocationConfiguration'], 'Status' => ['shape' => 'CertificateAuthorityStatus']]], 'Validity' => ['type' => 'structure', 'required' => ['Value', 'Type'], 'members' => ['Value' => ['shape' => 'PositiveLong', 'box' => \true], 'Type' => ['shape' => 'ValidityPeriodType']]], 'ValidityPeriodType' => ['type' => 'string', 'enum' => ['END_DATE', 'ABSOLUTE', 'DAYS', 'MONTHS', 'YEARS']]]];
vendor/Aws3/Aws/data/acm/2015-12-08/api-2.json.php CHANGED
@@ -1,4 +1,4 @@
1
  <?php
2
 
3
  // This file was auto-generated from sdk-root/src/data/acm/2015-12-08/api-2.json
4
- return ['version' => '2.0', 'metadata' => ['apiVersion' => '2015-12-08', 'endpointPrefix' => 'acm', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceAbbreviation' => 'ACM', 'serviceFullName' => 'AWS Certificate Manager', 'serviceId' => 'ACM', 'signatureVersion' => 'v4', 'targetPrefix' => 'CertificateManager', 'uid' => 'acm-2015-12-08'], 'operations' => ['AddTagsToCertificate' => ['name' => 'AddTagsToCertificate', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'AddTagsToCertificateRequest'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'InvalidArnException'], ['shape' => 'InvalidTagException'], ['shape' => 'TooManyTagsException'], ['shape' => 'TagPolicyException'], ['shape' => 'InvalidParameterException']]], 'DeleteCertificate' => ['name' => 'DeleteCertificate', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DeleteCertificateRequest'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'ResourceInUseException'], ['shape' => 'InvalidArnException']]], 'DescribeCertificate' => ['name' => 'DescribeCertificate', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DescribeCertificateRequest'], 'output' => ['shape' => 'DescribeCertificateResponse'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'InvalidArnException']]], 'ExportCertificate' => ['name' => 'ExportCertificate', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'ExportCertificateRequest'], 'output' => ['shape' => 'ExportCertificateResponse'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'RequestInProgressException'], ['shape' => 'InvalidArnException']]], 'GetCertificate' => ['name' => 'GetCertificate', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'GetCertificateRequest'], 'output' => ['shape' => 'GetCertificateResponse'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'RequestInProgressException'], ['shape' => 'InvalidArnException']]], 'ImportCertificate' => ['name' => 'ImportCertificate', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'ImportCertificateRequest'], 'output' => ['shape' => 'ImportCertificateResponse'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'LimitExceededException'], ['shape' => 'InvalidTagException'], ['shape' => 'TooManyTagsException'], ['shape' => 'TagPolicyException'], ['shape' => 'InvalidParameterException']]], 'ListCertificates' => ['name' => 'ListCertificates', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'ListCertificatesRequest'], 'output' => ['shape' => 'ListCertificatesResponse'], 'errors' => [['shape' => 'InvalidArgsException']]], 'ListTagsForCertificate' => ['name' => 'ListTagsForCertificate', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'ListTagsForCertificateRequest'], 'output' => ['shape' => 'ListTagsForCertificateResponse'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'InvalidArnException']]], 'RemoveTagsFromCertificate' => ['name' => 'RemoveTagsFromCertificate', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'RemoveTagsFromCertificateRequest'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'InvalidArnException'], ['shape' => 'InvalidTagException'], ['shape' => 'TagPolicyException'], ['shape' => 'InvalidParameterException']]], 'RenewCertificate' => ['name' => 'RenewCertificate', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'RenewCertificateRequest'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'InvalidArnException']]], 'RequestCertificate' => ['name' => 'RequestCertificate', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'RequestCertificateRequest'], 'output' => ['shape' => 'RequestCertificateResponse'], 'errors' => [['shape' => 'LimitExceededException'], ['shape' => 'InvalidDomainValidationOptionsException'], ['shape' => 'InvalidArnException'], ['shape' => 'InvalidTagException'], ['shape' => 'TooManyTagsException'], ['shape' => 'TagPolicyException'], ['shape' => 'InvalidParameterException']]], 'ResendValidationEmail' => ['name' => 'ResendValidationEmail', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'ResendValidationEmailRequest'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'InvalidStateException'], ['shape' => 'InvalidArnException'], ['shape' => 'InvalidDomainValidationOptionsException']]], 'UpdateCertificateOptions' => ['name' => 'UpdateCertificateOptions', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'UpdateCertificateOptionsRequest'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'LimitExceededException'], ['shape' => 'InvalidStateException'], ['shape' => 'InvalidArnException']]]], 'shapes' => ['AddTagsToCertificateRequest' => ['type' => 'structure', 'required' => ['CertificateArn', 'Tags'], 'members' => ['CertificateArn' => ['shape' => 'Arn'], 'Tags' => ['shape' => 'TagList']]], 'Arn' => ['type' => 'string', 'max' => 2048, 'min' => 20, 'pattern' => 'arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:[\\w+=/,.@-]*:[0-9]+:[\\w+=,.@-]+(/[\\w+=,.@-]+)*'], 'CertificateBody' => ['type' => 'string', 'max' => 32768, 'min' => 1, 'pattern' => '-{5}BEGIN CERTIFICATE-{5}\\u000D?\\u000A([A-Za-z0-9/+]{64}\\u000D?\\u000A)*[A-Za-z0-9/+]{1,64}={0,2}\\u000D?\\u000A-{5}END CERTIFICATE-{5}(\\u000D?\\u000A)?'], 'CertificateBodyBlob' => ['type' => 'blob', 'max' => 32768, 'min' => 1], 'CertificateChain' => ['type' => 'string', 'max' => 2097152, 'min' => 1, 'pattern' => '(-{5}BEGIN CERTIFICATE-{5}\\u000D?\\u000A([A-Za-z0-9/+]{64}\\u000D?\\u000A)*[A-Za-z0-9/+]{1,64}={0,2}\\u000D?\\u000A-{5}END CERTIFICATE-{5}\\u000D?\\u000A)*-{5}BEGIN CERTIFICATE-{5}\\u000D?\\u000A([A-Za-z0-9/+]{64}\\u000D?\\u000A)*[A-Za-z0-9/+]{1,64}={0,2}\\u000D?\\u000A-{5}END CERTIFICATE-{5}(\\u000D?\\u000A)?'], 'CertificateChainBlob' => ['type' => 'blob', 'max' => 2097152, 'min' => 1], 'CertificateDetail' => ['type' => 'structure', 'members' => ['CertificateArn' => ['shape' => 'Arn'], 'DomainName' => ['shape' => 'DomainNameString'], 'SubjectAlternativeNames' => ['shape' => 'DomainList'], 'DomainValidationOptions' => ['shape' => 'DomainValidationList'], 'Serial' => ['shape' => 'String'], 'Subject' => ['shape' => 'String'], 'Issuer' => ['shape' => 'String'], 'CreatedAt' => ['shape' => 'TStamp'], 'IssuedAt' => ['shape' => 'TStamp'], 'ImportedAt' => ['shape' => 'TStamp'], 'Status' => ['shape' => 'CertificateStatus'], 'RevokedAt' => ['shape' => 'TStamp'], 'RevocationReason' => ['shape' => 'RevocationReason'], 'NotBefore' => ['shape' => 'TStamp'], 'NotAfter' => ['shape' => 'TStamp'], 'KeyAlgorithm' => ['shape' => 'KeyAlgorithm'], 'SignatureAlgorithm' => ['shape' => 'String'], 'InUseBy' => ['shape' => 'InUseList'], 'FailureReason' => ['shape' => 'FailureReason'], 'Type' => ['shape' => 'CertificateType'], 'RenewalSummary' => ['shape' => 'RenewalSummary'], 'KeyUsages' => ['shape' => 'KeyUsageList'], 'ExtendedKeyUsages' => ['shape' => 'ExtendedKeyUsageList'], 'CertificateAuthorityArn' => ['shape' => 'Arn'], 'RenewalEligibility' => ['shape' => 'RenewalEligibility'], 'Options' => ['shape' => 'CertificateOptions']]], 'CertificateOptions' => ['type' => 'structure', 'members' => ['CertificateTransparencyLoggingPreference' => ['shape' => 'CertificateTransparencyLoggingPreference']]], 'CertificateStatus' => ['type' => 'string', 'enum' => ['PENDING_VALIDATION', 'ISSUED', 'INACTIVE', 'EXPIRED', 'VALIDATION_TIMED_OUT', 'REVOKED', 'FAILED']], 'CertificateStatuses' => ['type' => 'list', 'member' => ['shape' => 'CertificateStatus']], 'CertificateSummary' => ['type' => 'structure', 'members' => ['CertificateArn' => ['shape' => 'Arn'], 'DomainName' => ['shape' => 'DomainNameString']]], 'CertificateSummaryList' => ['type' => 'list', 'member' => ['shape' => 'CertificateSummary']], 'CertificateTransparencyLoggingPreference' => ['type' => 'string', 'enum' => ['ENABLED', 'DISABLED']], 'CertificateType' => ['type' => 'string', 'enum' => ['IMPORTED', 'AMAZON_ISSUED', 'PRIVATE']], 'DeleteCertificateRequest' => ['type' => 'structure', 'required' => ['CertificateArn'], 'members' => ['CertificateArn' => ['shape' => 'Arn']]], 'DescribeCertificateRequest' => ['type' => 'structure', 'required' => ['CertificateArn'], 'members' => ['CertificateArn' => ['shape' => 'Arn']]], 'DescribeCertificateResponse' => ['type' => 'structure', 'members' => ['Certificate' => ['shape' => 'CertificateDetail']]], 'DomainList' => ['type' => 'list', 'member' => ['shape' => 'DomainNameString'], 'max' => 100, 'min' => 1], 'DomainNameString' => ['type' => 'string', 'max' => 253, 'min' => 1, 'pattern' => '^(\\*\\.)?(((?!-)[A-Za-z0-9-]{0,62}[A-Za-z0-9])\\.)+((?!-)[A-Za-z0-9-]{1,62}[A-Za-z0-9])$'], 'DomainStatus' => ['type' => 'string', 'enum' => ['PENDING_VALIDATION', 'SUCCESS', 'FAILED']], 'DomainValidation' => ['type' => 'structure', 'required' => ['DomainName'], 'members' => ['DomainName' => ['shape' => 'DomainNameString'], 'ValidationEmails' => ['shape' => 'ValidationEmailList'], 'ValidationDomain' => ['shape' => 'DomainNameString'], 'ValidationStatus' => ['shape' => 'DomainStatus'], 'ResourceRecord' => ['shape' => 'ResourceRecord'], 'ValidationMethod' => ['shape' => 'ValidationMethod']]], 'DomainValidationList' => ['type' => 'list', 'member' => ['shape' => 'DomainValidation'], 'max' => 1000, 'min' => 1], 'DomainValidationOption' => ['type' => 'structure', 'required' => ['DomainName', 'ValidationDomain'], 'members' => ['DomainName' => ['shape' => 'DomainNameString'], 'ValidationDomain' => ['shape' => 'DomainNameString']]], 'DomainValidationOptionList' => ['type' => 'list', 'member' => ['shape' => 'DomainValidationOption'], 'max' => 100, 'min' => 1], 'ExportCertificateRequest' => ['type' => 'structure', 'required' => ['CertificateArn', 'Passphrase'], 'members' => ['CertificateArn' => ['shape' => 'Arn'], 'Passphrase' => ['shape' => 'PassphraseBlob']]], 'ExportCertificateResponse' => ['type' => 'structure', 'members' => ['Certificate' => ['shape' => 'CertificateBody'], 'CertificateChain' => ['shape' => 'CertificateChain'], 'PrivateKey' => ['shape' => 'PrivateKey']]], 'ExtendedKeyUsage' => ['type' => 'structure', 'members' => ['Name' => ['shape' => 'ExtendedKeyUsageName'], 'OID' => ['shape' => 'String']]], 'ExtendedKeyUsageFilterList' => ['type' => 'list', 'member' => ['shape' => 'ExtendedKeyUsageName']], 'ExtendedKeyUsageList' => ['type' => 'list', 'member' => ['shape' => 'ExtendedKeyUsage']], 'ExtendedKeyUsageName' => ['type' => 'string', 'enum' => ['TLS_WEB_SERVER_AUTHENTICATION', 'TLS_WEB_CLIENT_AUTHENTICATION', 'CODE_SIGNING', 'EMAIL_PROTECTION', 'TIME_STAMPING', 'OCSP_SIGNING', 'IPSEC_END_SYSTEM', 'IPSEC_TUNNEL', 'IPSEC_USER', 'ANY', 'NONE', 'CUSTOM']], 'FailureReason' => ['type' => 'string', 'enum' => ['NO_AVAILABLE_CONTACTS', 'ADDITIONAL_VERIFICATION_REQUIRED', 'DOMAIN_NOT_ALLOWED', 'INVALID_PUBLIC_DOMAIN', 'DOMAIN_VALIDATION_DENIED', 'CAA_ERROR', 'PCA_LIMIT_EXCEEDED', 'PCA_INVALID_ARN', 'PCA_INVALID_STATE', 'PCA_REQUEST_FAILED', 'PCA_NAME_CONSTRAINTS_VALIDATION', 'PCA_RESOURCE_NOT_FOUND', 'PCA_INVALID_ARGS', 'PCA_INVALID_DURATION', 'PCA_ACCESS_DENIED', 'OTHER']], 'Filters' => ['type' => 'structure', 'members' => ['extendedKeyUsage' => ['shape' => 'ExtendedKeyUsageFilterList'], 'keyUsage' => ['shape' => 'KeyUsageFilterList'], 'keyTypes' => ['shape' => 'KeyAlgorithmList']]], 'GetCertificateRequest' => ['type' => 'structure', 'required' => ['CertificateArn'], 'members' => ['CertificateArn' => ['shape' => 'Arn']]], 'GetCertificateResponse' => ['type' => 'structure', 'members' => ['Certificate' => ['shape' => 'CertificateBody'], 'CertificateChain' => ['shape' => 'CertificateChain']]], 'IdempotencyToken' => ['type' => 'string', 'max' => 32, 'min' => 1, 'pattern' => '\\w+'], 'ImportCertificateRequest' => ['type' => 'structure', 'required' => ['Certificate', 'PrivateKey'], 'members' => ['CertificateArn' => ['shape' => 'Arn'], 'Certificate' => ['shape' => 'CertificateBodyBlob'], 'PrivateKey' => ['shape' => 'PrivateKeyBlob'], 'CertificateChain' => ['shape' => 'CertificateChainBlob'], 'Tags' => ['shape' => 'TagList']]], 'ImportCertificateResponse' => ['type' => 'structure', 'members' => ['CertificateArn' => ['shape' => 'Arn']]], 'InUseList' => ['type' => 'list', 'member' => ['shape' => 'String']], 'InvalidArgsException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'InvalidArnException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'InvalidDomainValidationOptionsException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'InvalidParameterException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'InvalidStateException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'InvalidTagException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'KeyAlgorithm' => ['type' => 'string', 'enum' => ['RSA_2048', 'RSA_1024', 'RSA_4096', 'EC_prime256v1', 'EC_secp384r1', 'EC_secp521r1']], 'KeyAlgorithmList' => ['type' => 'list', 'member' => ['shape' => 'KeyAlgorithm']], 'KeyUsage' => ['type' => 'structure', 'members' => ['Name' => ['shape' => 'KeyUsageName']]], 'KeyUsageFilterList' => ['type' => 'list', 'member' => ['shape' => 'KeyUsageName']], 'KeyUsageList' => ['type' => 'list', 'member' => ['shape' => 'KeyUsage']], 'KeyUsageName' => ['type' => 'string', 'enum' => ['DIGITAL_SIGNATURE', 'NON_REPUDIATION', 'KEY_ENCIPHERMENT', 'DATA_ENCIPHERMENT', 'KEY_AGREEMENT', 'CERTIFICATE_SIGNING', 'CRL_SIGNING', 'ENCIPHER_ONLY', 'DECIPHER_ONLY', 'ANY', 'CUSTOM']], 'LimitExceededException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'ListCertificatesRequest' => ['type' => 'structure', 'members' => ['CertificateStatuses' => ['shape' => 'CertificateStatuses'], 'Includes' => ['shape' => 'Filters'], 'NextToken' => ['shape' => 'NextToken'], 'MaxItems' => ['shape' => 'MaxItems']]], 'ListCertificatesResponse' => ['type' => 'structure', 'members' => ['NextToken' => ['shape' => 'NextToken'], 'CertificateSummaryList' => ['shape' => 'CertificateSummaryList']]], 'ListTagsForCertificateRequest' => ['type' => 'structure', 'required' => ['CertificateArn'], 'members' => ['CertificateArn' => ['shape' => 'Arn']]], 'ListTagsForCertificateResponse' => ['type' => 'structure', 'members' => ['Tags' => ['shape' => 'TagList']]], 'MaxItems' => ['type' => 'integer', 'max' => 1000, 'min' => 1], 'NextToken' => ['type' => 'string', 'max' => 10000, 'min' => 1, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u00FF]*'], 'PassphraseBlob' => ['type' => 'blob', 'max' => 128, 'min' => 4, 'sensitive' => \true], 'PrivateKey' => ['type' => 'string', 'max' => 524288, 'min' => 1, 'pattern' => '-{5}BEGIN PRIVATE KEY-{5}\\u000D?\\u000A([A-Za-z0-9/+]{64}\\u000D?\\u000A)*[A-Za-z0-9/+]{1,64}={0,2}\\u000D?\\u000A-{5}END PRIVATE KEY-{5}(\\u000D?\\u000A)?', 'sensitive' => \true], 'PrivateKeyBlob' => ['type' => 'blob', 'max' => 5120, 'min' => 1, 'sensitive' => \true], 'RecordType' => ['type' => 'string', 'enum' => ['CNAME']], 'RemoveTagsFromCertificateRequest' => ['type' => 'structure', 'required' => ['CertificateArn', 'Tags'], 'members' => ['CertificateArn' => ['shape' => 'Arn'], 'Tags' => ['shape' => 'TagList']]], 'RenewCertificateRequest' => ['type' => 'structure', 'required' => ['CertificateArn'], 'members' => ['CertificateArn' => ['shape' => 'Arn']]], 'RenewalEligibility' => ['type' => 'string', 'enum' => ['ELIGIBLE', 'INELIGIBLE']], 'RenewalStatus' => ['type' => 'string', 'enum' => ['PENDING_AUTO_RENEWAL', 'PENDING_VALIDATION', 'SUCCESS', 'FAILED']], 'RenewalSummary' => ['type' => 'structure', 'required' => ['RenewalStatus', 'DomainValidationOptions', 'UpdatedAt'], 'members' => ['RenewalStatus' => ['shape' => 'RenewalStatus'], 'DomainValidationOptions' => ['shape' => 'DomainValidationList'], 'RenewalStatusReason' => ['shape' => 'FailureReason'], 'UpdatedAt' => ['shape' => 'TStamp']]], 'RequestCertificateRequest' => ['type' => 'structure', 'required' => ['DomainName'], 'members' => ['DomainName' => ['shape' => 'DomainNameString'], 'ValidationMethod' => ['shape' => 'ValidationMethod'], 'SubjectAlternativeNames' => ['shape' => 'DomainList'], 'IdempotencyToken' => ['shape' => 'IdempotencyToken'], 'DomainValidationOptions' => ['shape' => 'DomainValidationOptionList'], 'Options' => ['shape' => 'CertificateOptions'], 'CertificateAuthorityArn' => ['shape' => 'Arn'], 'Tags' => ['shape' => 'TagList']]], 'RequestCertificateResponse' => ['type' => 'structure', 'members' => ['CertificateArn' => ['shape' => 'Arn']]], 'RequestInProgressException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'ResendValidationEmailRequest' => ['type' => 'structure', 'required' => ['CertificateArn', 'Domain', 'ValidationDomain'], 'members' => ['CertificateArn' => ['shape' => 'Arn'], 'Domain' => ['shape' => 'DomainNameString'], 'ValidationDomain' => ['shape' => 'DomainNameString']]], 'ResourceInUseException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'ResourceNotFoundException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'ResourceRecord' => ['type' => 'structure', 'required' => ['Name', 'Type', 'Value'], 'members' => ['Name' => ['shape' => 'String'], 'Type' => ['shape' => 'RecordType'], 'Value' => ['shape' => 'String']]], 'RevocationReason' => ['type' => 'string', 'enum' => ['UNSPECIFIED', 'KEY_COMPROMISE', 'CA_COMPROMISE', 'AFFILIATION_CHANGED', 'SUPERCEDED', 'CESSATION_OF_OPERATION', 'CERTIFICATE_HOLD', 'REMOVE_FROM_CRL', 'PRIVILEGE_WITHDRAWN', 'A_A_COMPROMISE']], 'String' => ['type' => 'string'], 'TStamp' => ['type' => 'timestamp'], 'Tag' => ['type' => 'structure', 'required' => ['Key'], 'members' => ['Key' => ['shape' => 'TagKey'], 'Value' => ['shape' => 'TagValue']]], 'TagKey' => ['type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@]*'], 'TagList' => ['type' => 'list', 'member' => ['shape' => 'Tag'], 'max' => 50, 'min' => 1], 'TagPolicyException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'TagValue' => ['type' => 'string', 'max' => 256, 'min' => 0, 'pattern' => '[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@]*'], 'TooManyTagsException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'UpdateCertificateOptionsRequest' => ['type' => 'structure', 'required' => ['CertificateArn', 'Options'], 'members' => ['CertificateArn' => ['shape' => 'Arn'], 'Options' => ['shape' => 'CertificateOptions']]], 'ValidationEmailList' => ['type' => 'list', 'member' => ['shape' => 'String']], 'ValidationMethod' => ['type' => 'string', 'enum' => ['EMAIL', 'DNS']]]];
1
  <?php
2
 
3
  // This file was auto-generated from sdk-root/src/data/acm/2015-12-08/api-2.json
4
+ return ['version' => '2.0', 'metadata' => ['apiVersion' => '2015-12-08', 'endpointPrefix' => 'acm', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceAbbreviation' => 'ACM', 'serviceFullName' => 'AWS Certificate Manager', 'serviceId' => 'ACM', 'signatureVersion' => 'v4', 'targetPrefix' => 'CertificateManager', 'uid' => 'acm-2015-12-08'], 'operations' => ['AddTagsToCertificate' => ['name' => 'AddTagsToCertificate', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'AddTagsToCertificateRequest'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'InvalidArnException'], ['shape' => 'InvalidTagException'], ['shape' => 'TooManyTagsException'], ['shape' => 'TagPolicyException'], ['shape' => 'InvalidParameterException']]], 'DeleteCertificate' => ['name' => 'DeleteCertificate', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DeleteCertificateRequest'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'ResourceInUseException'], ['shape' => 'InvalidArnException']]], 'DescribeCertificate' => ['name' => 'DescribeCertificate', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DescribeCertificateRequest'], 'output' => ['shape' => 'DescribeCertificateResponse'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'InvalidArnException']]], 'ExportCertificate' => ['name' => 'ExportCertificate', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'ExportCertificateRequest'], 'output' => ['shape' => 'ExportCertificateResponse'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'RequestInProgressException'], ['shape' => 'InvalidArnException']]], 'GetCertificate' => ['name' => 'GetCertificate', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'GetCertificateRequest'], 'output' => ['shape' => 'GetCertificateResponse'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'RequestInProgressException'], ['shape' => 'InvalidArnException']]], 'ImportCertificate' => ['name' => 'ImportCertificate', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'ImportCertificateRequest'], 'output' => ['shape' => 'ImportCertificateResponse'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'LimitExceededException'], ['shape' => 'InvalidTagException'], ['shape' => 'TooManyTagsException'], ['shape' => 'TagPolicyException'], ['shape' => 'InvalidParameterException']]], 'ListCertificates' => ['name' => 'ListCertificates', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'ListCertificatesRequest'], 'output' => ['shape' => 'ListCertificatesResponse'], 'errors' => [['shape' => 'InvalidArgsException']]], 'ListTagsForCertificate' => ['name' => 'ListTagsForCertificate', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'ListTagsForCertificateRequest'], 'output' => ['shape' => 'ListTagsForCertificateResponse'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'InvalidArnException']]], 'RemoveTagsFromCertificate' => ['name' => 'RemoveTagsFromCertificate', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'RemoveTagsFromCertificateRequest'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'InvalidArnException'], ['shape' => 'InvalidTagException'], ['shape' => 'TagPolicyException'], ['shape' => 'InvalidParameterException']]], 'RenewCertificate' => ['name' => 'RenewCertificate', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'RenewCertificateRequest'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'InvalidArnException']]], 'RequestCertificate' => ['name' => 'RequestCertificate', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'RequestCertificateRequest'], 'output' => ['shape' => 'RequestCertificateResponse'], 'errors' => [['shape' => 'LimitExceededException'], ['shape' => 'InvalidDomainValidationOptionsException'], ['shape' => 'InvalidArnException'], ['shape' => 'InvalidTagException'], ['shape' => 'TooManyTagsException'], ['shape' => 'TagPolicyException'], ['shape' => 'InvalidParameterException']]], 'ResendValidationEmail' => ['name' => 'ResendValidationEmail', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'ResendValidationEmailRequest'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'InvalidStateException'], ['shape' => 'InvalidArnException'], ['shape' => 'InvalidDomainValidationOptionsException']]], 'UpdateCertificateOptions' => ['name' => 'UpdateCertificateOptions', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'UpdateCertificateOptionsRequest'], 'errors' => [['shape' => 'ResourceNotFoundException'], ['shape' => 'LimitExceededException'], ['shape' => 'InvalidStateException'], ['shape' => 'InvalidArnException']]]], 'shapes' => ['AddTagsToCertificateRequest' => ['type' => 'structure', 'required' => ['CertificateArn', 'Tags'], 'members' => ['CertificateArn' => ['shape' => 'Arn'], 'Tags' => ['shape' => 'TagList']]], 'Arn' => ['type' => 'string', 'max' => 2048, 'min' => 20, 'pattern' => 'arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:[\\w+=/,.@-]*:[0-9]+:[\\w+=,.@-]+(/[\\w+=,.@-]+)*'], 'CertificateBody' => ['type' => 'string', 'max' => 32768, 'min' => 1, 'pattern' => '-{5}BEGIN CERTIFICATE-{5}\\u000D?\\u000A([A-Za-z0-9/+]{64}\\u000D?\\u000A)*[A-Za-z0-9/+]{1,64}={0,2}\\u000D?\\u000A-{5}END CERTIFICATE-{5}(\\u000D?\\u000A)?'], 'CertificateBodyBlob' => ['type' => 'blob', 'max' => 32768, 'min' => 1], 'CertificateChain' => ['type' => 'string', 'max' => 2097152, 'min' => 1, 'pattern' => '(-{5}BEGIN CERTIFICATE-{5}\\u000D?\\u000A([A-Za-z0-9/+]{64}\\u000D?\\u000A)*[A-Za-z0-9/+]{1,64}={0,2}\\u000D?\\u000A-{5}END CERTIFICATE-{5}\\u000D?\\u000A)*-{5}BEGIN CERTIFICATE-{5}\\u000D?\\u000A([A-Za-z0-9/+]{64}\\u000D?\\u000A)*[A-Za-z0-9/+]{1,64}={0,2}\\u000D?\\u000A-{5}END CERTIFICATE-{5}(\\u000D?\\u000A)?'], 'CertificateChainBlob' => ['type' => 'blob', 'max' => 2097152, 'min' => 1], 'CertificateDetail' => ['type' => 'structure', 'members' => ['CertificateArn' => ['shape' => 'Arn'], 'DomainName' => ['shape' => 'DomainNameString'], 'SubjectAlternativeNames' => ['shape' => 'DomainList'], 'DomainValidationOptions' => ['shape' => 'DomainValidationList'], 'Serial' => ['shape' => 'String'], 'Subject' => ['shape' => 'String'], 'Issuer' => ['shape' => 'String'], 'CreatedAt' => ['shape' => 'TStamp'], 'IssuedAt' => ['shape' => 'TStamp'], 'ImportedAt' => ['shape' => 'TStamp'], 'Status' => ['shape' => 'CertificateStatus'], 'RevokedAt' => ['shape' => 'TStamp'], 'RevocationReason' => ['shape' => 'RevocationReason'], 'NotBefore' => ['shape' => 'TStamp'], 'NotAfter' => ['shape' => 'TStamp'], 'KeyAlgorithm' => ['shape' => 'KeyAlgorithm'], 'SignatureAlgorithm' => ['shape' => 'String'], 'InUseBy' => ['shape' => 'InUseList'], 'FailureReason' => ['shape' => 'FailureReason'], 'Type' => ['shape' => 'CertificateType'], 'RenewalSummary' => ['shape' => 'RenewalSummary'], 'KeyUsages' => ['shape' => 'KeyUsageList'], 'ExtendedKeyUsages' => ['shape' => 'ExtendedKeyUsageList'], 'CertificateAuthorityArn' => ['shape' => 'Arn'], 'RenewalEligibility' => ['shape' => 'RenewalEligibility'], 'Options' => ['shape' => 'CertificateOptions']]], 'CertificateOptions' => ['type' => 'structure', 'members' => ['CertificateTransparencyLoggingPreference' => ['shape' => 'CertificateTransparencyLoggingPreference']]], 'CertificateStatus' => ['type' => 'string', 'enum' => ['PENDING_VALIDATION', 'ISSUED', 'INACTIVE', 'EXPIRED', 'VALIDATION_TIMED_OUT', 'REVOKED', 'FAILED']], 'CertificateStatuses' => ['type' => 'list', 'member' => ['shape' => 'CertificateStatus']], 'CertificateSummary' => ['type' => 'structure', 'members' => ['CertificateArn' => ['shape' => 'Arn'], 'DomainName' => ['shape' => 'DomainNameString']]], 'CertificateSummaryList' => ['type' => 'list', 'member' => ['shape' => 'CertificateSummary']], 'CertificateTransparencyLoggingPreference' => ['type' => 'string', 'enum' => ['ENABLED', 'DISABLED']], 'CertificateType' => ['type' => 'string', 'enum' => ['IMPORTED', 'AMAZON_ISSUED', 'PRIVATE']], 'DeleteCertificateRequest' => ['type' => 'structure', 'required' => ['CertificateArn'], 'members' => ['CertificateArn' => ['shape' => 'Arn']]], 'DescribeCertificateRequest' => ['type' => 'structure', 'required' => ['CertificateArn'], 'members' => ['CertificateArn' => ['shape' => 'Arn']]], 'DescribeCertificateResponse' => ['type' => 'structure', 'members' => ['Certificate' => ['shape' => 'CertificateDetail']]], 'DomainList' => ['type' => 'list', 'member' => ['shape' => 'DomainNameString'], 'max' => 100, 'min' => 1], 'DomainNameString' => ['type' => 'string', 'max' => 253, 'min' => 1, 'pattern' => '^(\\*\\.)?(((?!-)[A-Za-z0-9-]{0,62}[A-Za-z0-9])\\.)+((?!-)[A-Za-z0-9-]{1,62}[A-Za-z0-9])$'], 'DomainStatus' => ['type' => 'string', 'enum' => ['PENDING_VALIDATION', 'SUCCESS', 'FAILED']], 'DomainValidation' => ['type' => 'structure', 'required' => ['DomainName'], 'members' => ['DomainName' => ['shape' => 'DomainNameString'], 'ValidationEmails' => ['shape' => 'ValidationEmailList'], 'ValidationDomain' => ['shape' => 'DomainNameString'], 'ValidationStatus' => ['shape' => 'DomainStatus'], 'ResourceRecord' => ['shape' => 'ResourceRecord'], 'ValidationMethod' => ['shape' => 'ValidationMethod']]], 'DomainValidationList' => ['type' => 'list', 'member' => ['shape' => 'DomainValidation'], 'max' => 1000, 'min' => 1], 'DomainValidationOption' => ['type' => 'structure', 'required' => ['DomainName', 'ValidationDomain'], 'members' => ['DomainName' => ['shape' => 'DomainNameString'], 'ValidationDomain' => ['shape' => 'DomainNameString']]], 'DomainValidationOptionList' => ['type' => 'list', 'member' => ['shape' => 'DomainValidationOption'], 'max' => 100, 'min' => 1], 'ExportCertificateRequest' => ['type' => 'structure', 'required' => ['CertificateArn', 'Passphrase'], 'members' => ['CertificateArn' => ['shape' => 'Arn'], 'Passphrase' => ['shape' => 'PassphraseBlob']]], 'ExportCertificateResponse' => ['type' => 'structure', 'members' => ['Certificate' => ['shape' => 'CertificateBody'], 'CertificateChain' => ['shape' => 'CertificateChain'], 'PrivateKey' => ['shape' => 'PrivateKey']]], 'ExtendedKeyUsage' => ['type' => 'structure', 'members' => ['Name' => ['shape' => 'ExtendedKeyUsageName'], 'OID' => ['shape' => 'String']]], 'ExtendedKeyUsageFilterList' => ['type' => 'list', 'member' => ['shape' => 'ExtendedKeyUsageName']], 'ExtendedKeyUsageList' => ['type' => 'list', 'member' => ['shape' => 'ExtendedKeyUsage']], 'ExtendedKeyUsageName' => ['type' => 'string', 'enum' => ['TLS_WEB_SERVER_AUTHENTICATION', 'TLS_WEB_CLIENT_AUTHENTICATION', 'CODE_SIGNING', 'EMAIL_PROTECTION', 'TIME_STAMPING', 'OCSP_SIGNING', 'IPSEC_END_SYSTEM', 'IPSEC_TUNNEL', 'IPSEC_USER', 'ANY', 'NONE', 'CUSTOM']], 'FailureReason' => ['type' => 'string', 'enum' => ['NO_AVAILABLE_CONTACTS', 'ADDITIONAL_VERIFICATION_REQUIRED', 'DOMAIN_NOT_ALLOWED', 'INVALID_PUBLIC_DOMAIN', 'DOMAIN_VALIDATION_DENIED', 'CAA_ERROR', 'PCA_LIMIT_EXCEEDED', 'PCA_INVALID_ARN', 'PCA_INVALID_STATE', 'PCA_REQUEST_FAILED', 'PCA_NAME_CONSTRAINTS_VALIDATION', 'PCA_RESOURCE_NOT_FOUND', 'PCA_INVALID_ARGS', 'PCA_INVALID_DURATION', 'PCA_ACCESS_DENIED', 'SLR_NOT_FOUND', 'OTHER']], 'Filters' => ['type' => 'structure', 'members' => ['extendedKeyUsage' => ['shape' => 'ExtendedKeyUsageFilterList'], 'keyUsage' => ['shape' => 'KeyUsageFilterList'], 'keyTypes' => ['shape' => 'KeyAlgorithmList']]], 'GetCertificateRequest' => ['type' => 'structure', 'required' => ['CertificateArn'], 'members' => ['CertificateArn' => ['shape' => 'Arn']]], 'GetCertificateResponse' => ['type' => 'structure', 'members' => ['Certificate' => ['shape' => 'CertificateBody'], 'CertificateChain' => ['shape' => 'CertificateChain']]], 'IdempotencyToken' => ['type' => 'string', 'max' => 32, 'min' => 1, 'pattern' => '\\w+'], 'ImportCertificateRequest' => ['type' => 'structure', 'required' => ['Certificate', 'PrivateKey'], 'members' => ['CertificateArn' => ['shape' => 'Arn'], 'Certificate' => ['shape' => 'CertificateBodyBlob'], 'PrivateKey' => ['shape' => 'PrivateKeyBlob'], 'CertificateChain' => ['shape' => 'CertificateChainBlob'], 'Tags' => ['shape' => 'TagList']]], 'ImportCertificateResponse' => ['type' => 'structure', 'members' => ['CertificateArn' => ['shape' => 'Arn']]], 'InUseList' => ['type' => 'list', 'member' => ['shape' => 'String']], 'InvalidArgsException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'InvalidArnException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'InvalidDomainValidationOptionsException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'InvalidParameterException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'InvalidStateException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'InvalidTagException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'KeyAlgorithm' => ['type' => 'string', 'enum' => ['RSA_2048', 'RSA_1024', 'RSA_4096', 'EC_prime256v1', 'EC_secp384r1', 'EC_secp521r1']], 'KeyAlgorithmList' => ['type' => 'list', 'member' => ['shape' => 'KeyAlgorithm']], 'KeyUsage' => ['type' => 'structure', 'members' => ['Name' => ['shape' => 'KeyUsageName']]], 'KeyUsageFilterList' => ['type' => 'list', 'member' => ['shape' => 'KeyUsageName']], 'KeyUsageList' => ['type' => 'list', 'member' => ['shape' => 'KeyUsage']], 'KeyUsageName' => ['type' => 'string', 'enum' => ['DIGITAL_SIGNATURE', 'NON_REPUDIATION', 'KEY_ENCIPHERMENT', 'DATA_ENCIPHERMENT', 'KEY_AGREEMENT', 'CERTIFICATE_SIGNING', 'CRL_SIGNING', 'ENCIPHER_ONLY', 'DECIPHER_ONLY', 'ANY', 'CUSTOM']], 'LimitExceededException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'ListCertificatesRequest' => ['type' => 'structure', 'members' => ['CertificateStatuses' => ['shape' => 'CertificateStatuses'], 'Includes' => ['shape' => 'Filters'], 'NextToken' => ['shape' => 'NextToken'], 'MaxItems' => ['shape' => 'MaxItems']]], 'ListCertificatesResponse' => ['type' => 'structure', 'members' => ['NextToken' => ['shape' => 'NextToken'], 'CertificateSummaryList' => ['shape' => 'CertificateSummaryList']]], 'ListTagsForCertificateRequest' => ['type' => 'structure', 'required' => ['CertificateArn'], 'members' => ['CertificateArn' => ['shape' => 'Arn']]], 'ListTagsForCertificateResponse' => ['type' => 'structure', 'members' => ['Tags' => ['shape' => 'TagList']]], 'MaxItems' => ['type' => 'integer', 'max' => 1000, 'min' => 1], 'NextToken' => ['type' => 'string', 'max' => 10000, 'min' => 1, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u00FF]*'], 'PassphraseBlob' => ['type' => 'blob', 'max' => 128, 'min' => 4, 'sensitive' => \true], 'PrivateKey' => ['type' => 'string', 'max' => 524288, 'min' => 1, 'pattern' => '-{5}BEGIN PRIVATE KEY-{5}\\u000D?\\u000A([A-Za-z0-9/+]{64}\\u000D?\\u000A)*[A-Za-z0-9/+]{1,64}={0,2}\\u000D?\\u000A-{5}END PRIVATE KEY-{5}(\\u000D?\\u000A)?', 'sensitive' => \true], 'PrivateKeyBlob' => ['type' => 'blob', 'max' => 5120, 'min' => 1, 'sensitive' => \true], 'RecordType' => ['type' => 'string', 'enum' => ['CNAME']], 'RemoveTagsFromCertificateRequest' => ['type' => 'structure', 'required' => ['CertificateArn', 'Tags'], 'members' => ['CertificateArn' => ['shape' => 'Arn'], 'Tags' => ['shape' => 'TagList']]], 'RenewCertificateRequest' => ['type' => 'structure', 'required' => ['CertificateArn'], 'members' => ['CertificateArn' => ['shape' => 'Arn']]], 'RenewalEligibility' => ['type' => 'string', 'enum' => ['ELIGIBLE', 'INELIGIBLE']], 'RenewalStatus' => ['type' => 'string', 'enum' => ['PENDING_AUTO_RENEWAL', 'PENDING_VALIDATION', 'SUCCESS', 'FAILED']], 'RenewalSummary' => ['type' => 'structure', 'required' => ['RenewalStatus', 'DomainValidationOptions', 'UpdatedAt'], 'members' => ['RenewalStatus' => ['shape' => 'RenewalStatus'], 'DomainValidationOptions' => ['shape' => 'DomainValidationList'], 'RenewalStatusReason' => ['shape' => 'FailureReason'], 'UpdatedAt' => ['shape' => 'TStamp']]], 'RequestCertificateRequest' => ['type' => 'structure', 'required' => ['DomainName'], 'members' => ['DomainName' => ['shape' => 'DomainNameString'], 'ValidationMethod' => ['shape' => 'ValidationMethod'], 'SubjectAlternativeNames' => ['shape' => 'DomainList'], 'IdempotencyToken' => ['shape' => 'IdempotencyToken'], 'DomainValidationOptions' => ['shape' => 'DomainValidationOptionList'], 'Options' => ['shape' => 'CertificateOptions'], 'CertificateAuthorityArn' => ['shape' => 'Arn'], 'Tags' => ['shape' => 'TagList']]], 'RequestCertificateResponse' => ['type' => 'structure', 'members' => ['CertificateArn' => ['shape' => 'Arn']]], 'RequestInProgressException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'ResendValidationEmailRequest' => ['type' => 'structure', 'required' => ['CertificateArn', 'Domain', 'ValidationDomain'], 'members' => ['CertificateArn' => ['shape' => 'Arn'], 'Domain' => ['shape' => 'DomainNameString'], 'ValidationDomain' => ['shape' => 'DomainNameString']]], 'ResourceInUseException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'ResourceNotFoundException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'ResourceRecord' => ['type' => 'structure', 'required' => ['Name', 'Type', 'Value'], 'members' => ['Name' => ['shape' => 'String'], 'Type' => ['shape' => 'RecordType'], 'Value' => ['shape' => 'String']]], 'RevocationReason' => ['type' => 'string', 'enum' => ['UNSPECIFIED', 'KEY_COMPROMISE', 'CA_COMPROMISE', 'AFFILIATION_CHANGED', 'SUPERCEDED', 'CESSATION_OF_OPERATION', 'CERTIFICATE_HOLD', 'REMOVE_FROM_CRL', 'PRIVILEGE_WITHDRAWN', 'A_A_COMPROMISE']], 'String' => ['type' => 'string'], 'TStamp' => ['type' => 'timestamp'], 'Tag' => ['type' => 'structure', 'required' => ['Key'], 'members' => ['Key' => ['shape' => 'TagKey'], 'Value' => ['shape' => 'TagValue']]], 'TagKey' => ['type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@]*'], 'TagList' => ['type' => 'list', 'member' => ['shape' => 'Tag'], 'max' => 50, 'min' => 1], 'TagPolicyException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'TagValue' => ['type' => 'string', 'max' => 256, 'min' => 0, 'pattern' => '[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@]*'], 'TooManyTagsException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true], 'UpdateCertificateOptionsRequest' => ['type' => 'structure', 'required' => ['CertificateArn', 'Options'], 'members' => ['CertificateArn' => ['shape' => 'Arn'], 'Options' => ['shape' => 'CertificateOptions']]], 'ValidationEmailList' => ['type' => 'list', 'member' => ['shape' => 'String']], 'ValidationMethod' => ['type' => 'string', 'enum' => ['EMAIL', 'DNS']]]];
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', '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']]], 'AssociateDeviceWithNetworkProfile' => ['name' => 'AssociateDeviceWithNetworkProfile', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'AssociateDeviceWithNetworkProfileRequest'], 'output' => ['shape' => 'AssociateDeviceWithNetworkProfileResponse'], 'errors' => [['shape' => 'NotFoundException'], ['shape' => 'ConcurrentModificationException'], ['shape' => 'DeviceNotRegisteredException']]], 'AssociateDeviceWithRoom' => ['name' => 'AssociateDeviceWithRoom', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'AssociateDeviceWithRoomRequest'], 'output' => ['shape' => 'AssociateDeviceWithRoomResponse'], 'errors' => [['shape' => 'LimitExceededException'], ['shape' => 'ConcurrentModificationException'], ['shape' => 'DeviceNotRegisteredException']]], 'AssociateSkillGroupWithRoom' => ['name' => 'AssociateSkillGroupWithRoom', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'AssociateSkillGroupWithRoomRequest'], 'output' => ['shape' => 'AssociateSkillGroupWithRoomResponse'], 'errors' => [['shape' => 'ConcurrentModificationException']]], 'AssociateSkillWithSkillGroup' => ['name' => 'AssociateSkillWithSkillGroup', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'AssociateSkillWithSkillGroupRequest'], 'output' => ['shape' => 'AssociateSkillWithSkillGroupResponse'], 'errors' => [['shape' => 'ConcurrentModificationException'], ['shape' => 'NotFoundException'], ['shape' => 'SkillNotLinkedException']]], 'AssociateSkillWithUsers' => ['name' => 'AssociateSkillWithUsers', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'AssociateSkillWithUsersRequest'], 'output' => ['shape' => 'AssociateSkillWithUsersResponse'], 'errors' => [['shape' => 'ConcurrentModificationException'], ['shape' => 'NotFoundException']]], 'CreateAddressBook' => ['name' => 'CreateAddressBook', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'CreateAddressBookRequest'], 'output' => ['shape' => 'CreateAddressBookResponse'], 'errors' => [['shape' => 'AlreadyExistsException'], ['shape' => 'LimitExceededException']]], 'CreateBusinessReportSchedule' => ['name' => 'CreateBusinessReportSchedule', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'CreateBusinessReportScheduleRequest'], 'output' => ['shape' => 'CreateBusinessReportScheduleResponse'], 'errors' => [['shape' => 'AlreadyExistsException']]], 'CreateConferenceProvider' => ['name' => 'CreateConferenceProvider', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'CreateConferenceProviderRequest'], 'output' => ['shape' => 'CreateConferenceProviderResponse'], 'errors' => [['shape' => 'AlreadyExistsException']]], 'CreateContact' => ['name' => 'CreateContact', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'CreateContactRequest'], 'output' => ['shape' => 'CreateContactResponse'], 'errors' => [['shape' => 'AlreadyExistsException'], ['shape' => 'LimitExceededException']]], 'CreateGatewayGroup' => ['name' => 'CreateGatewayGroup', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'CreateGatewayGroupRequest'], 'output' => ['shape' => 'CreateGatewayGroupResponse'], 'errors' => [['shape' => 'AlreadyExistsException'], ['shape' => 'LimitExceededException']]], 'CreateNetworkProfile' => ['name' => 'CreateNetworkProfile', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'CreateNetworkProfileRequest'], 'output' => ['shape' => 'CreateNetworkProfileResponse'], 'errors' => [['shape' => 'AlreadyExistsException'], ['shape' => 'LimitExceededException'], ['shape' => 'ConcurrentModificationException'], ['shape' => 'InvalidCertificateAuthorityException'], ['shape' => 'InvalidServiceLinkedRoleStateException']]], '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']]], 'DeleteDeviceUsageData' => ['name' => 'DeleteDeviceUsageData', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DeleteDeviceUsageDataRequest'], 'output' => ['shape' => 'DeleteDeviceUsageDataResponse'], 'errors' => [['shape' => 'NotFoundException'], ['shape' => 'DeviceNotRegisteredException'], ['shape' => 'LimitExceededException']]], 'DeleteGatewayGroup' => ['name' => 'DeleteGatewayGroup', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DeleteGatewayGroupRequest'], 'output' => ['shape' => 'DeleteGatewayGroupResponse'], 'errors' => [['shape' => 'ResourceAssociatedException']]], 'DeleteNetworkProfile' => ['name' => 'DeleteNetworkProfile', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DeleteNetworkProfileRequest'], 'output' => ['shape' => 'DeleteNetworkProfileResponse'], 'errors' => [['shape' => 'ResourceInUseException'], ['shape' => 'ConcurrentModificationException'], ['shape' => 'NotFoundException']]], 'DeleteProfile' => ['name' => 'DeleteProfile', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DeleteProfileRequest'], 'output' => ['shape' => 'DeleteProfileResponse'], 'errors' => [['shape' => 'NotFoundException'], ['shape' => 'ConcurrentModificationException']]], 'DeleteRoom' => ['name' => 'DeleteRoom', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DeleteRoomRequest'], 'output' => ['shape' => 'DeleteRoomResponse'], 'errors' => [['shape' => 'NotFoundException'], ['shape' => 'ConcurrentModificationException']]], 'DeleteRoomSkillParameter' => ['name' => 'DeleteRoomSkillParameter', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DeleteRoomSkillParameterRequest'], 'output' => ['shape' => 'DeleteRoomSkillParameterResponse'], 'errors' => [['shape' => 'ConcurrentModificationException']]], 'DeleteSkillAuthorization' => ['name' => 'DeleteSkillAuthorization', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DeleteSkillAuthorizationRequest'], 'output' => ['shape' => 'DeleteSkillAuthorizationResponse'], 'errors' => [['shape' => 'NotFoundException'], ['shape' => 'ConcurrentModificationException']]], 'DeleteSkillGroup' => ['name' => 'DeleteSkillGroup', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DeleteSkillGroupRequest'], 'output' => ['shape' => 'DeleteSkillGroupResponse'], 'errors' => [['shape' => 'NotFoundException'], ['shape' => 'ConcurrentModificationException']]], 'DeleteUser' => ['name' => 'DeleteUser', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DeleteUserRequest'], 'output' => ['shape' => 'DeleteUserResponse'], 'errors' => [['shape' => 'NotFoundException'], ['shape' => 'ConcurrentModificationException']]], 'DisassociateContactFromAddressBook' => ['name' => 'DisassociateContactFromAddressBook', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DisassociateContactFromAddressBookRequest'], 'output' => ['shape' => 'DisassociateContactFromAddressBookResponse']], 'DisassociateDeviceFromRoom' => ['name' => 'DisassociateDeviceFromRoom', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DisassociateDeviceFromRoomRequest'], 'output' => ['shape' => 'DisassociateDeviceFromRoomResponse'], 'errors' => [['shape' => 'ConcurrentModificationException'], ['shape' => 'DeviceNotRegisteredException']]], 'DisassociateSkillFromSkillGroup' => ['name' => 'DisassociateSkillFromSkillGroup', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DisassociateSkillFromSkillGroupRequest'], 'output' => ['shape' => 'DisassociateSkillFromSkillGroupResponse'], 'errors' => [['shape' => 'ConcurrentModificationException'], ['shape' => 'NotFoundException']]], 'DisassociateSkillFromUsers' => ['name' => 'DisassociateSkillFromUsers', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DisassociateSkillFromUsersRequest'], 'output' => ['shape' => 'DisassociateSkillFromUsersResponse'], 'errors' => [['shape' => 'ConcurrentModificationException'], ['shape' => 'NotFoundException']]], 'DisassociateSkillGroupFromRoom' => ['name' => 'DisassociateSkillGroupFromRoom', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DisassociateSkillGroupFromRoomRequest'], 'output' => ['shape' => 'DisassociateSkillGroupFromRoomResponse'], 'errors' => [['shape' => 'ConcurrentModificationException']]], 'ForgetSmartHomeAppliances' => ['name' => 'ForgetSmartHomeAppliances', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'ForgetSmartHomeAppliancesRequest'], 'output' => ['shape' => 'ForgetSmartHomeAppliancesResponse'], 'errors' => [['shape' => 'NotFoundException']]], 'GetAddressBook' => ['name' => 'GetAddressBook', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'GetAddressBookRequest'], 'output' => ['shape' => 'GetAddressBookResponse'], 'errors' => [['shape' => 'NotFoundException']]], 'GetConferencePreference' => ['name' => 'GetConferencePreference', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'GetConferencePreferenceRequest'], 'output' => ['shape' => 'GetConferencePreferenceResponse'], 'errors' => [['shape' => 'NotFoundException']]], 'GetConferenceProvider' => ['name' => 'GetConferenceProvider', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'GetConferenceProviderRequest'], 'output' => ['shape' => 'GetConferenceProviderResponse'], 'errors' => [['shape' => 'NotFoundException']]], 'GetContact' => ['name' => 'GetContact', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'GetContactRequest'], 'output' => ['shape' => 'GetContactResponse'], 'errors' => [['shape' => 'NotFoundException']]], 'GetDevice' => ['name' => 'GetDevice', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'GetDeviceRequest'], 'output' => ['shape' => 'GetDeviceResponse'], 'errors' => [['shape' => 'NotFoundException']]], 'GetGateway' => ['name' => 'GetGateway', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'GetGatewayRequest'], 'output' => ['shape' => 'GetGatewayResponse'], 'errors' => [['shape' => 'NotFoundException']]], 'GetGatewayGroup' => ['name' => 'GetGatewayGroup', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'GetGatewayGroupRequest'], 'output' => ['shape' => 'GetGatewayGroupResponse'], 'errors' => [['shape' => 'NotFoundException']]], 'GetInvitationConfiguration' => ['name' => 'GetInvitationConfiguration', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'GetInvitationConfigurationRequest'], 'output' => ['shape' => 'GetInvitationConfigurationResponse'], 'errors' => [['shape' => 'NotFoundException']]], 'GetNetworkProfile' => ['name' => 'GetNetworkProfile', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'GetNetworkProfileRequest'], 'output' => ['shape' => 'GetNetworkProfileResponse'], 'errors' => [['shape' => 'NotFoundException'], ['shape' => 'InvalidSecretsManagerResourceException']]], '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']]], 'ListGatewayGroups' => ['name' => 'ListGatewayGroups', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'ListGatewayGroupsRequest'], 'output' => ['shape' => 'ListGatewayGroupsResponse']], 'ListGateways' => ['name' => 'ListGateways', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'ListGatewaysRequest'], 'output' => ['shape' => 'ListGatewaysResponse']], 'ListSkills' => ['name' => 'ListSkills', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'ListSkillsRequest'], 'output' => ['shape' => 'ListSkillsResponse']], 'ListSkillsStoreCategories' => ['name' => 'ListSkillsStoreCategories', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'ListSkillsStoreCategoriesRequest'], 'output' => ['shape' => 'ListSkillsStoreCategoriesResponse']], 'ListSkillsStoreSkillsByCategory' => ['name' => 'ListSkillsStoreSkillsByCategory', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'ListSkillsStoreSkillsByCategoryRequest'], 'output' => ['shape' => 'ListSkillsStoreSkillsByCategoryResponse']], 'ListSmartHomeAppliances' => ['name' => 'ListSmartHomeAppliances', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'ListSmartHomeAppliancesRequest'], 'output' => ['shape' => 'ListSmartHomeAppliancesResponse'], 'errors' => [['shape' => 'NotFoundException']]], 'ListTags' => ['name' => 'ListTags', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'ListTagsRequest'], 'output' => ['shape' => 'ListTagsResponse'], 'errors' => [['shape' => 'NotFoundException']]], 'PutConferencePreference' => ['name' => 'PutConferencePreference', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'PutConferencePreferenceRequest'], 'output' => ['shape' => 'PutConferencePreferenceResponse'], 'errors' => [['shape' => 'NotFoundException']]], 'PutInvitationConfiguration' => ['name' => 'PutInvitationConfiguration', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'PutInvitationConfigurationRequest'], 'output' => ['shape' => 'PutInvitationConfigurationResponse'], 'errors' => [['shape' => 'NotFoundException'], ['shape' => 'ConcurrentModificationException']]], 'PutRoomSkillParameter' => ['name' => 'PutRoomSkillParameter', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'PutRoomSkillParameterRequest'], 'output' => ['shape' => 'PutRoomSkillParameterResponse'], 'errors' => [['shape' => 'ConcurrentModificationException']]], 'PutSkillAuthorization' => ['name' => 'PutSkillAuthorization', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'PutSkillAuthorizationRequest'], 'output' => ['shape' => 'PutSkillAuthorizationResponse'], 'errors' => [['shape' => 'UnauthorizedException'], ['shape' => 'ConcurrentModificationException']]], 'RegisterAVSDevice' => ['name' => 'RegisterAVSDevice', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'RegisterAVSDeviceRequest'], 'output' => ['shape' => 'RegisterAVSDeviceResponse'], 'errors' => [['shape' => 'LimitExceededException'], ['shape' => 'ConcurrentModificationException'], ['shape' => 'InvalidDeviceException']]], 'RejectSkill' => ['name' => 'RejectSkill', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'RejectSkillRequest'], 'output' => ['shape' => 'RejectSkillResponse'], 'errors' => [['shape' => 'ConcurrentModificationException'], ['shape' => 'NotFoundException']]], 'ResolveRoom' => ['name' => 'ResolveRoom', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'ResolveRoomRequest'], 'output' => ['shape' => 'ResolveRoomResponse'], 'errors' => [['shape' => 'NotFoundException']]], 'RevokeInvitation' => ['name' => 'RevokeInvitation', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'RevokeInvitationRequest'], 'output' => ['shape' => 'RevokeInvitationResponse'], 'errors' => [['shape' => 'NotFoundException'], ['shape' => 'ConcurrentModificationException']]], 'SearchAddressBooks' => ['name' => 'SearchAddressBooks', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'SearchAddressBooksRequest'], 'output' => ['shape' => 'SearchAddressBooksResponse']], 'SearchContacts' => ['name' => 'SearchContacts', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'SearchContactsRequest'], 'output' => ['shape' => 'SearchContactsResponse']], 'SearchDevices' => ['name' => 'SearchDevices', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'SearchDevicesRequest'], 'output' => ['shape' => 'SearchDevicesResponse']], 'SearchNetworkProfiles' => ['name' => 'SearchNetworkProfiles', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'SearchNetworkProfilesRequest'], 'output' => ['shape' => 'SearchNetworkProfilesResponse']], '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']], 'SendAnnouncement' => ['name' => 'SendAnnouncement', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'SendAnnouncementRequest'], 'output' => ['shape' => 'SendAnnouncementResponse'], 'errors' => [['shape' => 'LimitExceededException'], ['shape' => 'AlreadyExistsException']]], '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']]], 'UpdateGateway' => ['name' => 'UpdateGateway', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'UpdateGatewayRequest'], 'output' => ['shape' => 'UpdateGatewayResponse'], 'errors' => [['shape' => 'NotFoundException'], ['shape' => 'NameInUseException']]], 'UpdateGatewayGroup' => ['name' => 'UpdateGatewayGroup', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'UpdateGatewayGroupRequest'], 'output' => ['shape' => 'UpdateGatewayGroupResponse'], 'errors' => [['shape' => 'NotFoundException'], ['shape' => 'NameInUseException']]], 'UpdateNetworkProfile' => ['name' => 'UpdateNetworkProfile', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'UpdateNetworkProfileRequest'], 'output' => ['shape' => 'UpdateNetworkProfileResponse'], 'errors' => [['shape' => 'NotFoundException'], ['shape' => 'NameInUseException'], ['shape' => 'ConcurrentModificationException'], ['shape' => 'InvalidCertificateAuthorityException'], ['shape' => 'InvalidSecretsManagerResourceException']]], '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' => []], 'AssociateDeviceWithNetworkProfileRequest' => ['type' => 'structure', 'required' => ['DeviceArn', 'NetworkProfileArn'], 'members' => ['DeviceArn' => ['shape' => 'Arn'], 'NetworkProfileArn' => ['shape' => 'Arn']]], 'AssociateDeviceWithNetworkProfileResponse' => ['type' => 'structure', 'members' => []], 'AssociateDeviceWithRoomRequest' => ['type' => 'structure', 'members' => ['DeviceArn' => ['shape' => 'Arn'], 'RoomArn' => ['shape' => 'Arn']]], 'AssociateDeviceWithRoomResponse' => ['type' => 'structure', 'members' => []], 'AssociateSkillGroupWithRoomRequest' => ['type' => 'structure', 'members' => ['SkillGroupArn' => ['shape' => 'Arn'], 'RoomArn' => ['shape' => 'Arn']]], 'AssociateSkillGroupWithRoomResponse' => ['type' => 'structure', 'members' => []], 'AssociateSkillWithSkillGroupRequest' => ['type' => 'structure', 'required' => ['SkillId'], 'members' => ['SkillGroupArn' => ['shape' => 'Arn'], 'SkillId' => ['shape' => 'SkillId']]], 'AssociateSkillWithSkillGroupResponse' => ['type' => 'structure', 'members' => []], 'AssociateSkillWithUsersRequest' => ['type' => 'structure', 'required' => ['SkillId'], 'members' => ['SkillId' => ['shape' => 'SkillId']]], 'AssociateSkillWithUsersResponse' => ['type' => 'structure', 'members' => []], 'Audio' => ['type' => 'structure', 'required' => ['Locale', 'Location'], 'members' => ['Locale' => ['shape' => 'Locale'], 'Location' => ['shape' => 'AudioLocation']]], 'AudioList' => ['type' => 'list', 'member' => ['shape' => 'Audio'], 'max' => 1], 'AudioLocation' => ['type' => 'string', 'max' => 1200, 'min' => 0, 'pattern' => 'https://([A-Za-z0-9_.-]+)?(s3-[A-Za-z0-9-]+|s3\\.([A-Za-z0-9-])+|s3|s3.dualstack\\.([A-Za-z0-9-])+)+.amazonaws.com/.*'], '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' => 'BusinessReportDeliveryTime'], 'DownloadUrl' => ['shape' => 'BusinessReportDownloadUrl']]], 'BusinessReportContentRange' => ['type' => 'structure', 'members' => ['Interval' => ['shape' => 'BusinessReportInterval']]], 'BusinessReportDeliveryTime' => ['type' => 'timestamp'], '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', 'THIRTY_DAYS']], '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'], 'CertificateTime' => ['type' => 'timestamp'], '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']], 'ConnectionStatusUpdatedTime' => ['type' => 'timestamp'], 'Contact' => ['type' => 'structure', 'members' => ['ContactArn' => ['shape' => 'Arn'], 'DisplayName' => ['shape' => 'ContactName'], 'FirstName' => ['shape' => 'ContactName'], 'LastName' => ['shape' => 'ContactName'], 'PhoneNumber' => ['shape' => 'RawPhoneNumber'], 'PhoneNumbers' => ['shape' => 'PhoneNumberList'], 'SipAddresses' => ['shape' => 'SipAddressList']]], 'ContactData' => ['type' => 'structure', 'members' => ['ContactArn' => ['shape' => 'Arn'], 'DisplayName' => ['shape' => 'ContactName'], 'FirstName' => ['shape' => 'ContactName'], 'LastName' => ['shape' => 'ContactName'], 'PhoneNumber' => ['shape' => 'RawPhoneNumber'], 'PhoneNumbers' => ['shape' => 'PhoneNumberList'], 'SipAddresses' => ['shape' => 'SipAddressList']]], '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]*'], 'Content' => ['type' => 'structure', 'members' => ['TextList' => ['shape' => 'TextList'], 'SsmlList' => ['shape' => 'SsmlList'], 'AudioList' => ['shape' => 'AudioList']]], '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' => 'RawPhoneNumber'], 'PhoneNumbers' => ['shape' => 'PhoneNumberList'], 'SipAddresses' => ['shape' => 'SipAddressList'], 'ClientRequestToken' => ['shape' => 'ClientRequestToken', 'idempotencyToken' => \true]]], 'CreateContactResponse' => ['type' => 'structure', 'members' => ['ContactArn' => ['shape' => 'Arn']]], 'CreateEndOfMeetingReminder' => ['type' => 'structure', 'required' => ['ReminderAtMinutes', 'ReminderType', 'Enabled'], 'members' => ['ReminderAtMinutes' => ['shape' => 'EndOfMeetingReminderMinutesList'], 'ReminderType' => ['shape' => 'EndOfMeetingReminderType'], 'Enabled' => ['shape' => 'Boolean']]], 'CreateGatewayGroupRequest' => ['type' => 'structure', 'required' => ['Name', 'ClientRequestToken'], 'members' => ['Name' => ['shape' => 'GatewayGroupName'], 'Description' => ['shape' => 'GatewayGroupDescription'], 'ClientRequestToken' => ['shape' => 'ClientRequestToken', 'idempotencyToken' => \true]]], 'CreateGatewayGroupResponse' => ['type' => 'structure', 'members' => ['GatewayGroupArn' => ['shape' => 'Arn']]], 'CreateInstantBooking' => ['type' => 'structure', 'required' => ['DurationInMinutes', 'Enabled'], 'members' => ['DurationInMinutes' => ['shape' => 'Minutes'], 'Enabled' => ['shape' => 'Boolean']]], 'CreateMeetingRoomConfiguration' => ['type' => 'structure', 'members' => ['RoomUtilizationMetricsEnabled' => ['shape' => 'Boolean'], 'EndOfMeetingReminder' => ['shape' => 'CreateEndOfMeetingReminder'], 'InstantBooking' => ['shape' => 'CreateInstantBooking'], 'RequireCheckIn' => ['shape' => 'CreateRequireCheckIn']]], 'CreateNetworkProfileRequest' => ['type' => 'structure', 'required' => ['NetworkProfileName', 'Ssid', 'SecurityType', 'ClientRequestToken'], 'members' => ['NetworkProfileName' => ['shape' => 'NetworkProfileName'], 'Description' => ['shape' => 'NetworkProfileDescription'], 'Ssid' => ['shape' => 'NetworkSsid'], 'SecurityType' => ['shape' => 'NetworkSecurityType'], 'EapMethod' => ['shape' => 'NetworkEapMethod'], 'CurrentPassword' => ['shape' => 'CurrentWiFiPassword'], 'NextPassword' => ['shape' => 'NextWiFiPassword'], 'CertificateAuthorityArn' => ['shape' => 'Arn'], 'TrustAnchors' => ['shape' => 'TrustAnchorList'], 'ClientRequestToken' => ['shape' => 'ClientRequestToken', 'idempotencyToken' => \true]]], 'CreateNetworkProfileResponse' => ['type' => 'structure', 'members' => ['NetworkProfileArn' => ['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'], 'Locale' => ['shape' => 'DeviceLocale'], 'ClientRequestToken' => ['shape' => 'ClientRequestToken', 'idempotencyToken' => \true], 'SetupModeDisabled' => ['shape' => 'Boolean'], 'MaxVolumeLimit' => ['shape' => 'MaxVolumeLimit'], 'PSTNEnabled' => ['shape' => 'Boolean'], 'MeetingRoomConfiguration' => ['shape' => 'CreateMeetingRoomConfiguration']]], 'CreateProfileResponse' => ['type' => 'structure', 'members' => ['ProfileArn' => ['shape' => 'Arn']]], 'CreateRequireCheckIn' => ['type' => 'structure', 'required' => ['ReleaseAfterMinutes', 'Enabled'], 'members' => ['ReleaseAfterMinutes' => ['shape' => 'Minutes'], 'Enabled' => ['shape' => 'Boolean']]], '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']]], 'CurrentWiFiPassword' => ['type' => 'string', 'max' => 128, 'min' => 5, 'pattern' => '[\\x00-\\x7F]*', 'sensitive' => \true], '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' => []], 'DeleteDeviceUsageDataRequest' => ['type' => 'structure', 'required' => ['DeviceArn', 'DeviceUsageType'], 'members' => ['DeviceArn' => ['shape' => 'Arn'], 'DeviceUsageType' => ['shape' => 'DeviceUsageType']]], 'DeleteDeviceUsageDataResponse' => ['type' => 'structure', 'members' => []], 'DeleteGatewayGroupRequest' => ['type' => 'structure', 'required' => ['GatewayGroupArn'], 'members' => ['GatewayGroupArn' => ['shape' => 'Arn']]], 'DeleteGatewayGroupResponse' => ['type' => 'structure', 'members' => []], 'DeleteNetworkProfileRequest' => ['type' => 'structure', 'required' => ['NetworkProfileArn'], 'members' => ['NetworkProfileArn' => ['shape' => 'Arn']]], 'DeleteNetworkProfileResponse' => ['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'], 'NetworkProfileInfo' => ['shape' => 'DeviceNetworkProfileInfo']]], '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'], 'NetworkProfileArn' => ['shape' => 'Arn'], 'NetworkProfileName' => ['shape' => 'NetworkProfileName'], 'RoomArn' => ['shape' => 'Arn'], 'RoomName' => ['shape' => 'RoomName'], 'DeviceStatusInfo' => ['shape' => 'DeviceStatusInfo'], 'CreatedTime' => ['shape' => 'DeviceDataCreatedTime']]], 'DeviceDataCreatedTime' => ['type' => 'timestamp'], 'DeviceDataList' => ['type' => 'list', 'member' => ['shape' => 'DeviceData']], 'DeviceEvent' => ['type' => 'structure', 'members' => ['Type' => ['shape' => 'DeviceEventType'], 'Value' => ['shape' => 'DeviceEventValue'], 'Timestamp' => ['shape' => 'DeviceEventTime']]], 'DeviceEventList' => ['type' => 'list', 'member' => ['shape' => 'DeviceEvent']], 'DeviceEventTime' => ['type' => 'timestamp'], 'DeviceEventType' => ['type' => 'string', 'enum' => ['CONNECTION_STATUS', 'DEVICE_STATUS']], 'DeviceEventValue' => ['type' => 'string'], 'DeviceLocale' => ['type' => 'string', 'max' => 256, 'min' => 1], 'DeviceName' => ['type' => 'string', 'max' => 100, 'min' => 2, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*'], 'DeviceNetworkProfileInfo' => ['type' => 'structure', 'members' => ['NetworkProfileArn' => ['shape' => 'Arn'], 'CertificateArn' => ['shape' => 'Arn'], 'CertificateExpirationTime' => ['shape' => 'CertificateTime']]], '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', 'FAILED']], 'DeviceStatusDetail' => ['type' => 'structure', 'members' => ['Feature' => ['shape' => 'Feature'], 'Code' => ['shape' => 'DeviceStatusDetailCode']]], 'DeviceStatusDetailCode' => ['type' => 'string', 'enum' => ['DEVICE_SOFTWARE_UPDATE_NEEDED', 'DEVICE_WAS_OFFLINE', 'CREDENTIALS_ACCESS_FAILURE', 'TLS_VERSION_MISMATCH', 'ASSOCIATION_REJECTION', 'AUTHENTICATION_FAILURE', 'DHCP_FAILURE', 'INTERNET_UNAVAILABLE', 'DNS_FAILURE', 'UNKNOWN_FAILURE', 'CERTIFICATE_ISSUING_LIMIT_EXCEEDED', 'INVALID_CERTIFICATE_AUTHORITY', 'NETWORK_PROFILE_NOT_FOUND', 'INVALID_PASSWORD_STATE', 'PASSWORD_NOT_FOUND']], 'DeviceStatusDetails' => ['type' => 'list', 'member' => ['shape' => 'DeviceStatusDetail']], 'DeviceStatusInfo' => ['type' => 'structure', 'members' => ['DeviceStatusDetails' => ['shape' => 'DeviceStatusDetails'], 'ConnectionStatus' => ['shape' => 'ConnectionStatus'], 'ConnectionStatusUpdatedTime' => ['shape' => 'ConnectionStatusUpdatedTime']]], 'DeviceType' => ['type' => 'string', 'pattern' => '[a-zA-Z0-9]{1,200}'], 'DeviceUsageType' => ['type' => 'string', 'enum' => ['VOICE']], 'DisassociateContactFromAddressBookRequest' => ['type' => 'structure', 'required' => ['ContactArn', 'AddressBookArn'], 'members' => ['ContactArn' => ['shape' => 'Arn'], 'AddressBookArn' => ['shape' => 'Arn']]], 'DisassociateContactFromAddressBookResponse' => ['type' => 'structure', 'members' => []], 'DisassociateDeviceFromRoomRequest' => ['type' => 'structure', 'members' => ['DeviceArn' => ['shape' => 'Arn']]], 'DisassociateDeviceFromRoomResponse' => ['type' => 'structure', 'members' => []], 'DisassociateSkillFromSkillGroupRequest' => ['type' => 'structure', 'required' => ['SkillId'], 'members' => ['SkillGroupArn' => ['shape' => 'Arn'], 'SkillId' => ['shape' => 'SkillId']]], 'DisassociateSkillFromSkillGroupResponse' => ['type' => 'structure', 'members' => []], 'DisassociateSkillFromUsersRequest' => ['type' => 'structure', 'required' => ['SkillId'], 'members' => ['SkillId' => ['shape' => 'SkillId']]], 'DisassociateSkillFromUsersResponse' => ['type' => 'structure', 'members' => []], 'DisassociateSkillGroupFromRoomRequest' => ['type' => 'structure', 'members' => ['SkillGroupArn' => ['shape' => 'Arn'], 'RoomArn' => ['shape' => 'Arn']]], 'DisassociateSkillGroupFromRoomResponse' => ['type' => 'structure', 'members' => []], 'DistanceUnit' => ['type' => 'string', 'enum' => ['METRIC', 'IMPERIAL']], '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']], 'EndOfMeetingReminder' => ['type' => 'structure', 'members' => ['ReminderAtMinutes' => ['shape' => 'EndOfMeetingReminderMinutesList'], 'ReminderType' => ['shape' => 'EndOfMeetingReminderType'], 'Enabled' => ['shape' => 'Boolean']]], 'EndOfMeetingReminderMinutesList' => ['type' => 'list', 'member' => ['shape' => 'Minutes'], 'max' => 1, 'min' => 1], 'EndOfMeetingReminderType' => ['type' => 'string', 'enum' => ['ANNOUNCEMENT_TIME_CHECK', 'ANNOUNCEMENT_VARIABLE_TIME_LEFT', 'CHIME', 'KNOCK']], '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', 'NETWORK_PROFILE', 'SETTINGS', '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' => 50], 'ForgetSmartHomeAppliancesRequest' => ['type' => 'structure', 'required' => ['RoomArn'], 'members' => ['RoomArn' => ['shape' => 'Arn']]], 'ForgetSmartHomeAppliancesResponse' => ['type' => 'structure', 'members' => []], 'Gateway' => ['type' => 'structure', 'members' => ['Arn' => ['shape' => 'Arn'], 'Name' => ['shape' => 'GatewayName'], 'Description' => ['shape' => 'GatewayDescription'], 'GatewayGroupArn' => ['shape' => 'Arn'], 'SoftwareVersion' => ['shape' => 'GatewayVersion']]], 'GatewayDescription' => ['type' => 'string', 'max' => 200, 'min' => 0, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*'], 'GatewayGroup' => ['type' => 'structure', 'members' => ['Arn' => ['shape' => 'Arn'], 'Name' => ['shape' => 'GatewayGroupName'], 'Description' => ['shape' => 'GatewayGroupDescription']]], 'GatewayGroupDescription' => ['type' => 'string', 'max' => 200, 'min' => 0], 'GatewayGroupName' => ['type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*'], 'GatewayGroupSummaries' => ['type' => 'list', 'member' => ['shape' => 'GatewayGroupSummary']], 'GatewayGroupSummary' => ['type' => 'structure', 'members' => ['Arn' => ['shape' => 'Arn'], 'Name' => ['shape' => 'GatewayGroupName'], 'Description' => ['shape' => 'GatewayGroupDescription']]], 'GatewayName' => ['type' => 'string', 'max' => 253, 'min' => 1, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*'], 'GatewaySummaries' => ['type' => 'list', 'member' => ['shape' => 'GatewaySummary']], 'GatewaySummary' => ['type' => 'structure', 'members' => ['Arn' => ['shape' => 'Arn'], 'Name' => ['shape' => 'GatewayName'], 'Description' => ['shape' => 'GatewayDescription'], 'GatewayGroupArn' => ['shape' => 'Arn'], 'SoftwareVersion' => ['shape' => 'GatewayVersion']]], 'GatewayVersion' => ['type' => 'string', 'max' => 50, 'min' => 1], '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']]], 'GetGatewayGroupRequest' => ['type' => 'structure', 'required' => ['GatewayGroupArn'], 'members' => ['GatewayGroupArn' => ['shape' => 'Arn']]], 'GetGatewayGroupResponse' => ['type' => 'structure', 'members' => ['GatewayGroup' => ['shape' => 'GatewayGroup']]], 'GetGatewayRequest' => ['type' => 'structure', 'required' => ['GatewayArn'], 'members' => ['GatewayArn' => ['shape' => 'Arn']]], 'GetGatewayResponse' => ['type' => 'structure', 'members' => ['Gateway' => ['shape' => 'Gateway']]], 'GetInvitationConfigurationRequest' => ['type' => 'structure', 'members' => []], 'GetInvitationConfigurationResponse' => ['type' => 'structure', 'members' => ['OrganizationName' => ['shape' => 'OrganizationName'], 'ContactEmail' => ['shape' => 'Email'], 'PrivateSkillIds' => ['shape' => 'ShortSkillIdList']]], 'GetNetworkProfileRequest' => ['type' => 'structure', 'required' => ['NetworkProfileArn'], 'members' => ['NetworkProfileArn' => ['shape' => 'Arn']]], 'GetNetworkProfileResponse' => ['type' => 'structure', 'members' => ['NetworkProfile' => ['shape' => 'NetworkProfile']]], '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'], 'InstantBooking' => ['type' => 'structure', 'members' => ['DurationInMinutes' => ['shape' => 'Minutes'], 'Enabled' => ['shape' => 'Boolean']]], 'InvalidCertificateAuthorityException' => ['type' => 'structure', 'members' => ['Message' => ['shape' => 'ErrorMessage']], 'exception' => \true], 'InvalidDeviceException' => ['type' => 'structure', 'members' => ['Message' => ['shape' => 'ErrorMessage']], 'exception' => \true], 'InvalidSecretsManagerResourceException' => ['type' => 'structure', 'members' => ['Message' => ['shape' => 'ErrorMessage']], 'exception' => \true], 'InvalidServiceLinkedRoleStateException' => ['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']]], 'ListGatewayGroupsRequest' => ['type' => 'structure', 'members' => ['NextToken' => ['shape' => 'NextToken'], 'MaxResults' => ['shape' => 'MaxResults']]], 'ListGatewayGroupsResponse' => ['type' => 'structure', 'members' => ['GatewayGroups' => ['shape' => 'GatewayGroupSummaries'], 'NextToken' => ['shape' => 'NextToken']]], 'ListGatewaysRequest' => ['type' => 'structure', 'members' => ['GatewayGroupArn' => ['shape' => 'Arn'], 'NextToken' => ['shape' => 'NextToken'], 'MaxResults' => ['shape' => 'MaxResults']]], 'ListGatewaysResponse' => ['type' => 'structure', 'members' => ['Gateways' => ['shape' => 'GatewaySummaries'], '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']]], 'Locale' => ['type' => 'string', 'enum' => ['en-US']], 'MacAddress' => ['type' => 'string'], 'MaxResults' => ['type' => 'integer', 'max' => 50, 'min' => 1], 'MaxVolumeLimit' => ['type' => 'integer'], 'MeetingRoomConfiguration' => ['type' => 'structure', 'members' => ['RoomUtilizationMetricsEnabled' => ['shape' => 'Boolean'], 'EndOfMeetingReminder' => ['shape' => 'EndOfMeetingReminder'], 'InstantBooking' => ['shape' => 'InstantBooking'], 'RequireCheckIn' => ['shape' => 'RequireCheckIn']]], 'MeetingSetting' => ['type' => 'structure', 'required' => ['RequirePin'], 'members' => ['RequirePin' => ['shape' => 'RequirePin']]], 'Minutes' => ['type' => 'integer'], 'NameInUseException' => ['type' => 'structure', 'members' => ['Message' => ['shape' => 'ErrorMessage']], 'exception' => \true], 'NetworkEapMethod' => ['type' => 'string', 'enum' => ['EAP_TLS']], 'NetworkProfile' => ['type' => 'structure', 'members' => ['NetworkProfileArn' => ['shape' => 'Arn'], 'NetworkProfileName' => ['shape' => 'NetworkProfileName'], 'Description' => ['shape' => 'NetworkProfileDescription'], 'Ssid' => ['shape' => 'NetworkSsid'], 'SecurityType' => ['shape' => 'NetworkSecurityType'], 'EapMethod' => ['shape' => 'NetworkEapMethod'], 'CurrentPassword' => ['shape' => 'CurrentWiFiPassword'], 'NextPassword' => ['shape' => 'NextWiFiPassword'], 'CertificateAuthorityArn' => ['shape' => 'Arn'], 'TrustAnchors' => ['shape' => 'TrustAnchorList']]], 'NetworkProfileData' => ['type' => 'structure', 'members' => ['NetworkProfileArn' => ['shape' => 'Arn'], 'NetworkProfileName' => ['shape' => 'NetworkProfileName'], 'Description' => ['shape' => 'NetworkProfileDescription'], 'Ssid' => ['shape' => 'NetworkSsid'], 'SecurityType' => ['shape' => 'NetworkSecurityType'], 'EapMethod' => ['shape' => 'NetworkEapMethod'], 'CertificateAuthorityArn' => ['shape' => 'Arn']]], 'NetworkProfileDataList' => ['type' => 'list', 'member' => ['shape' => 'NetworkProfileData']], 'NetworkProfileDescription' => ['type' => 'string', 'max' => 200, 'min' => 0, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*'], 'NetworkProfileName' => ['type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*'], 'NetworkSecurityType' => ['type' => 'string', 'enum' => ['OPEN', 'WEP', 'WPA_PSK', 'WPA2_PSK', 'WPA2_ENTERPRISE']], 'NetworkSsid' => ['type' => 'string', 'max' => 32, 'min' => 1, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*'], 'NewInThisVersionBulletPoints' => ['type' => 'list', 'member' => ['shape' => 'BulletPoint']], 'NextToken' => ['type' => 'string', 'max' => 1100, 'min' => 1], 'NextWiFiPassword' => ['type' => 'string', 'max' => 128, 'min' => 0, 'pattern' => '(^$)|([\\x00-\\x7F]{5,})', 'sensitive' => \true], 'NotFoundException' => ['type' => 'structure', 'members' => ['Message' => ['shape' => 'ErrorMessage']], 'exception' => \true], 'OneClickIdDelay' => ['type' => 'string', 'max' => 2, 'min' => 1], 'OneClickPinDelay' => ['type' => 'string', 'max' => 2, 'min' => 1], 'OrganizationName' => ['type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*'], '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']]], 'PhoneNumber' => ['type' => 'structure', 'required' => ['Number', 'Type'], 'members' => ['Number' => ['shape' => 'RawPhoneNumber'], 'Type' => ['shape' => 'PhoneNumberType']]], 'PhoneNumberList' => ['type' => 'list', 'member' => ['shape' => 'PhoneNumber'], 'max' => 3, 'min' => 0], 'PhoneNumberType' => ['type' => 'string', 'enum' => ['MOBILE', 'WORK', 'HOME'], 'sensitive' => \true], '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'], 'Locale' => ['shape' => 'DeviceLocale'], 'SetupModeDisabled' => ['shape' => 'Boolean'], 'MaxVolumeLimit' => ['shape' => 'MaxVolumeLimit'], 'PSTNEnabled' => ['shape' => 'Boolean'], 'AddressBookArn' => ['shape' => 'Arn'], 'MeetingRoomConfiguration' => ['shape' => 'MeetingRoomConfiguration']]], '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'], 'Locale' => ['shape' => 'DeviceLocale']]], 'ProfileDataList' => ['type' => 'list', 'member' => ['shape' => 'ProfileData']], 'ProfileName' => ['type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*'], 'ProviderCalendarId' => ['type' => 'string', 'max' => 100, 'min' => 0], 'PutConferencePreferenceRequest' => ['type' => 'structure', 'required' => ['ConferencePreference'], 'members' => ['ConferencePreference' => ['shape' => 'ConferencePreference']]], 'PutConferencePreferenceResponse' => ['type' => 'structure', 'members' => []], 'PutInvitationConfigurationRequest' => ['type' => 'structure', 'required' => ['OrganizationName'], 'members' => ['OrganizationName' => ['shape' => 'OrganizationName'], 'ContactEmail' => ['shape' => 'Email'], 'PrivateSkillIds' => ['shape' => 'ShortSkillIdList']]], 'PutInvitationConfigurationResponse' => ['type' => 'structure', 'members' => []], 'PutRoomSkillParameterRequest' => ['type' => 'structure', 'required' => ['SkillId', 'RoomSkillParameter'], 'members' => ['RoomArn' => ['shape' => 'Arn'], 'SkillId' => ['shape' => 'SkillId'], 'RoomSkillParameter' => ['shape' => 'RoomSkillParameter']]], 'PutRoomSkillParameterResponse' => ['type' => 'structure', 'members' => []], 'PutSkillAuthorizationRequest' => ['type' => 'structure', 'required' => ['AuthorizationResult', 'SkillId'], 'members' => ['AuthorizationResult' => ['shape' => 'AuthorizationResult'], 'SkillId' => ['shape' => 'SkillId'], 'RoomArn' => ['shape' => 'Arn']]], 'PutSkillAuthorizationResponse' => ['type' => 'structure', 'members' => []], 'RawPhoneNumber' => ['type' => 'string', 'max' => 50, 'min' => 0, 'pattern' => '^[\\+0-9\\#\\,\\(][\\+0-9\\-\\.\\/\\(\\)\\,\\#\\s]+$', 'sensitive' => \true], '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'], 'RequireCheckIn' => ['type' => 'structure', 'members' => ['ReleaseAfterMinutes' => ['shape' => 'Minutes'], 'Enabled' => ['shape' => 'Boolean']]], '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']]], 'ResourceAssociatedException' => ['type' => 'structure', 'members' => ['Message' => ['shape' => 'ErrorMessage']], 'exception' => \true], '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']]], 'SearchNetworkProfilesRequest' => ['type' => 'structure', 'members' => ['NextToken' => ['shape' => 'NextToken'], 'MaxResults' => ['shape' => 'MaxResults'], 'Filters' => ['shape' => 'FilterList'], 'SortCriteria' => ['shape' => 'SortList']]], 'SearchNetworkProfilesResponse' => ['type' => 'structure', 'members' => ['NetworkProfiles' => ['shape' => 'NetworkProfileDataList'], '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']]], 'SendAnnouncementRequest' => ['type' => 'structure', 'required' => ['RoomFilters', 'Content', 'ClientRequestToken'], 'members' => ['RoomFilters' => ['shape' => 'FilterList'], 'Content' => ['shape' => 'Content'], 'TimeToLiveInSeconds' => ['shape' => 'TimeToLiveInSeconds'], 'ClientRequestToken' => ['shape' => 'ClientRequestToken', 'idempotencyToken' => \true]]], 'SendAnnouncementResponse' => ['type' => 'structure', 'members' => ['AnnouncementArn' => ['shape' => 'Arn']]], 'SendInvitationRequest' => ['type' => 'structure', 'members' => ['UserArn' => ['shape' => 'Arn']]], 'SendInvitationResponse' => ['type' => 'structure', 'members' => []], 'ShortDescription' => ['type' => 'string'], 'ShortSkillIdList' => ['type' => 'list', 'member' => ['shape' => 'SkillId'], 'max' => 3, 'min' => 0], 'SipAddress' => ['type' => 'structure', 'required' => ['Uri', 'Type'], 'members' => ['Uri' => ['shape' => 'SipUri'], 'Type' => ['shape' => 'SipType']]], 'SipAddressList' => ['type' => 'list', 'member' => ['shape' => 'SipAddress'], 'max' => 1, 'min' => 0], 'SipType' => ['type' => 'string', 'enum' => ['WORK'], 'sensitive' => \true], 'SipUri' => ['type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '^sip[s]?:([^@:]+)\\@([^@]+)$', 'sensitive' => \true], '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']], 'Ssml' => ['type' => 'structure', 'required' => ['Locale', 'Value'], 'members' => ['Locale' => ['shape' => 'Locale'], 'Value' => ['shape' => 'SsmlValue']]], 'SsmlList' => ['type' => 'list', 'member' => ['shape' => 'Ssml'], 'max' => 1], 'SsmlValue' => ['type' => 'string', 'max' => 4096, 'min' => 0, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*'], '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']], 'Text' => ['type' => 'structure', 'required' => ['Locale', 'Value'], 'members' => ['Locale' => ['shape' => 'Locale'], 'Value' => ['shape' => 'TextValue']]], 'TextList' => ['type' => 'list', 'member' => ['shape' => 'Text'], 'max' => 1], 'TextValue' => ['type' => 'string', 'max' => 4096, 'min' => 0, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*'], 'TimeToLiveInSeconds' => ['type' => 'integer', 'max' => 3600, 'min' => 1], 'Timezone' => ['type' => 'string', 'max' => 100, 'min' => 1], 'TotalCount' => ['type' => 'integer'], 'TrustAnchor' => ['type' => 'string', 'pattern' => '-{5}BEGIN CERTIFICATE-{5}\\u000D?\\u000A([A-Za-z0-9/+]{64}\\u000D?\\u000A)*[A-Za-z0-9/+]{1,64}={0,2}\\u000D?\\u000A-{5}END CERTIFICATE-{5}(\\u000D?\\u000A)?'], 'TrustAnchorList' => ['type' => 'list', 'member' => ['shape' => 'TrustAnchor'], 'max' => 5, 'min' => 1], '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' => 'RawPhoneNumber'], 'PhoneNumbers' => ['shape' => 'PhoneNumberList'], 'SipAddresses' => ['shape' => 'SipAddressList']]], 'UpdateContactResponse' => ['type' => 'structure', 'members' => []], 'UpdateDeviceRequest' => ['type' => 'structure', 'members' => ['DeviceArn' => ['shape' => 'Arn'], 'DeviceName' => ['shape' => 'DeviceName']]], 'UpdateDeviceResponse' => ['type' => 'structure', 'members' => []], 'UpdateEndOfMeetingReminder' => ['type' => 'structure', 'members' => ['ReminderAtMinutes' => ['shape' => 'EndOfMeetingReminderMinutesList'], 'ReminderType' => ['shape' => 'EndOfMeetingReminderType'], 'Enabled' => ['shape' => 'Boolean']]], 'UpdateGatewayGroupRequest' => ['type' => 'structure', 'required' => ['GatewayGroupArn'], 'members' => ['GatewayGroupArn' => ['shape' => 'Arn'], 'Name' => ['shape' => 'GatewayGroupName'], 'Description' => ['shape' => 'GatewayGroupDescription']]], 'UpdateGatewayGroupResponse' => ['type' => 'structure', 'members' => []], 'UpdateGatewayRequest' => ['type' => 'structure', 'required' => ['GatewayArn'], 'members' => ['GatewayArn' => ['shape' => 'Arn'], 'Name' => ['shape' => 'GatewayName'], 'Description' => ['shape' => 'GatewayDescription'], 'SoftwareVersion' => ['shape' => 'GatewayVersion']]], 'UpdateGatewayResponse' => ['type' => 'structure', 'members' => []], 'UpdateInstantBooking' => ['type' => 'structure', 'members' => ['DurationInMinutes' => ['shape' => 'Minutes'], 'Enabled' => ['shape' => 'Boolean']]], 'UpdateMeetingRoomConfiguration' => ['type' => 'structure', 'members' => ['RoomUtilizationMetricsEnabled' => ['shape' => 'Boolean'], 'EndOfMeetingReminder' => ['shape' => 'UpdateEndOfMeetingReminder'], 'InstantBooking' => ['shape' => 'UpdateInstantBooking'], 'RequireCheckIn' => ['shape' => 'UpdateRequireCheckIn']]], 'UpdateNetworkProfileRequest' => ['type' => 'structure', 'required' => ['NetworkProfileArn'], 'members' => ['NetworkProfileArn' => ['shape' => 'Arn'], 'NetworkProfileName' => ['shape' => 'NetworkProfileName'], 'Description' => ['shape' => 'NetworkProfileDescription'], 'CurrentPassword' => ['shape' => 'CurrentWiFiPassword'], 'NextPassword' => ['shape' => 'NextWiFiPassword'], 'CertificateAuthorityArn' => ['shape' => 'Arn'], 'TrustAnchors' => ['shape' => 'TrustAnchorList']]], 'UpdateNetworkProfileResponse' => ['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'], 'Locale' => ['shape' => 'DeviceLocale'], 'SetupModeDisabled' => ['shape' => 'Boolean'], 'MaxVolumeLimit' => ['shape' => 'MaxVolumeLimit'], 'PSTNEnabled' => ['shape' => 'Boolean'], 'MeetingRoomConfiguration' => ['shape' => 'UpdateMeetingRoomConfiguration']]], 'UpdateProfileResponse' => ['type' => 'structure', 'members' => []], 'UpdateRequireCheckIn' => ['type' => 'structure', 'members' => ['ReleaseAfterMinutes' => ['shape' => 'Minutes'], 'Enabled' => ['shape' => 'Boolean']]], '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@_+.-]*']]];
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']]], 'AssociateDeviceWithNetworkProfile' => ['name' => 'AssociateDeviceWithNetworkProfile', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'AssociateDeviceWithNetworkProfileRequest'], 'output' => ['shape' => 'AssociateDeviceWithNetworkProfileResponse'], 'errors' => [['shape' => 'NotFoundException'], ['shape' => 'ConcurrentModificationException'], ['shape' => 'DeviceNotRegisteredException']]], 'AssociateDeviceWithRoom' => ['name' => 'AssociateDeviceWithRoom', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'AssociateDeviceWithRoomRequest'], 'output' => ['shape' => 'AssociateDeviceWithRoomResponse'], 'errors' => [['shape' => 'LimitExceededException'], ['shape' => 'ConcurrentModificationException'], ['shape' => 'DeviceNotRegisteredException']]], 'AssociateSkillGroupWithRoom' => ['name' => 'AssociateSkillGroupWithRoom', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'AssociateSkillGroupWithRoomRequest'], 'output' => ['shape' => 'AssociateSkillGroupWithRoomResponse'], 'errors' => [['shape' => 'ConcurrentModificationException']]], 'AssociateSkillWithSkillGroup' => ['name' => 'AssociateSkillWithSkillGroup', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'AssociateSkillWithSkillGroupRequest'], 'output' => ['shape' => 'AssociateSkillWithSkillGroupResponse'], 'errors' => [['shape' => 'ConcurrentModificationException'], ['shape' => 'NotFoundException'], ['shape' => 'SkillNotLinkedException']]], 'AssociateSkillWithUsers' => ['name' => 'AssociateSkillWithUsers', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'AssociateSkillWithUsersRequest'], 'output' => ['shape' => 'AssociateSkillWithUsersResponse'], 'errors' => [['shape' => 'ConcurrentModificationException'], ['shape' => 'NotFoundException']]], 'CreateAddressBook' => ['name' => 'CreateAddressBook', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'CreateAddressBookRequest'], 'output' => ['shape' => 'CreateAddressBookResponse'], 'errors' => [['shape' => 'AlreadyExistsException'], ['shape' => 'LimitExceededException']]], 'CreateBusinessReportSchedule' => ['name' => 'CreateBusinessReportSchedule', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'CreateBusinessReportScheduleRequest'], 'output' => ['shape' => 'CreateBusinessReportScheduleResponse'], 'errors' => [['shape' => 'AlreadyExistsException']]], 'CreateConferenceProvider' => ['name' => 'CreateConferenceProvider', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'CreateConferenceProviderRequest'], 'output' => ['shape' => 'CreateConferenceProviderResponse'], 'errors' => [['shape' => 'AlreadyExistsException']]], 'CreateContact' => ['name' => 'CreateContact', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'CreateContactRequest'], 'output' => ['shape' => 'CreateContactResponse'], 'errors' => [['shape' => 'AlreadyExistsException'], ['shape' => 'LimitExceededException']]], 'CreateGatewayGroup' => ['name' => 'CreateGatewayGroup', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'CreateGatewayGroupRequest'], 'output' => ['shape' => 'CreateGatewayGroupResponse'], 'errors' => [['shape' => 'AlreadyExistsException'], ['shape' => 'LimitExceededException']]], 'CreateNetworkProfile' => ['name' => 'CreateNetworkProfile', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'CreateNetworkProfileRequest'], 'output' => ['shape' => 'CreateNetworkProfileResponse'], 'errors' => [['shape' => 'AlreadyExistsException'], ['shape' => 'LimitExceededException'], ['shape' => 'ConcurrentModificationException'], ['shape' => 'InvalidCertificateAuthorityException'], ['shape' => 'InvalidServiceLinkedRoleStateException']]], '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']]], 'DeleteDeviceUsageData' => ['name' => 'DeleteDeviceUsageData', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DeleteDeviceUsageDataRequest'], 'output' => ['shape' => 'DeleteDeviceUsageDataResponse'], 'errors' => [['shape' => 'NotFoundException'], ['shape' => 'DeviceNotRegisteredException'], ['shape' => 'LimitExceededException']]], 'DeleteGatewayGroup' => ['name' => 'DeleteGatewayGroup', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DeleteGatewayGroupRequest'], 'output' => ['shape' => 'DeleteGatewayGroupResponse'], 'errors' => [['shape' => 'ResourceAssociatedException']]], 'DeleteNetworkProfile' => ['name' => 'DeleteNetworkProfile', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DeleteNetworkProfileRequest'], 'output' => ['shape' => 'DeleteNetworkProfileResponse'], 'errors' => [['shape' => 'ResourceInUseException'], ['shape' => 'ConcurrentModificationException'], ['shape' => 'NotFoundException']]], 'DeleteProfile' => ['name' => 'DeleteProfile', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DeleteProfileRequest'], 'output' => ['shape' => 'DeleteProfileResponse'], 'errors' => [['shape' => 'NotFoundException'], ['shape' => 'ConcurrentModificationException']]], 'DeleteRoom' => ['name' => 'DeleteRoom', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DeleteRoomRequest'], 'output' => ['shape' => 'DeleteRoomResponse'], 'errors' => [['shape' => 'NotFoundException'], ['shape' => 'ConcurrentModificationException']]], 'DeleteRoomSkillParameter' => ['name' => 'DeleteRoomSkillParameter', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DeleteRoomSkillParameterRequest'], 'output' => ['shape' => 'DeleteRoomSkillParameterResponse'], 'errors' => [['shape' => 'ConcurrentModificationException']]], 'DeleteSkillAuthorization' => ['name' => 'DeleteSkillAuthorization', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DeleteSkillAuthorizationRequest'], 'output' => ['shape' => 'DeleteSkillAuthorizationResponse'], 'errors' => [['shape' => 'NotFoundException'], ['shape' => 'ConcurrentModificationException']]], 'DeleteSkillGroup' => ['name' => 'DeleteSkillGroup', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DeleteSkillGroupRequest'], 'output' => ['shape' => 'DeleteSkillGroupResponse'], 'errors' => [['shape' => 'NotFoundException'], ['shape' => 'ConcurrentModificationException']]], 'DeleteUser' => ['name' => 'DeleteUser', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DeleteUserRequest'], 'output' => ['shape' => 'DeleteUserResponse'], 'errors' => [['shape' => 'NotFoundException'], ['shape' => 'ConcurrentModificationException']]], 'DisassociateContactFromAddressBook' => ['name' => 'DisassociateContactFromAddressBook', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DisassociateContactFromAddressBookRequest'], 'output' => ['shape' => 'DisassociateContactFromAddressBookResponse']], 'DisassociateDeviceFromRoom' => ['name' => 'DisassociateDeviceFromRoom', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DisassociateDeviceFromRoomRequest'], 'output' => ['shape' => 'DisassociateDeviceFromRoomResponse'], 'errors' => [['shape' => 'ConcurrentModificationException'], ['shape' => 'DeviceNotRegisteredException']]], 'DisassociateSkillFromSkillGroup' => ['name' => 'DisassociateSkillFromSkillGroup', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DisassociateSkillFromSkillGroupRequest'], 'output' => ['shape' => 'DisassociateSkillFromSkillGroupResponse'], 'errors' => [['shape' => 'ConcurrentModificationException'], ['shape' => 'NotFoundException']]], 'DisassociateSkillFromUsers' => ['name' => 'DisassociateSkillFromUsers', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DisassociateSkillFromUsersRequest'], 'output' => ['shape' => 'DisassociateSkillFromUsersResponse'], 'errors' => [['shape' => 'ConcurrentModificationException'], ['shape' => 'NotFoundException']]], 'DisassociateSkillGroupFromRoom' => ['name' => 'DisassociateSkillGroupFromRoom', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'DisassociateSkillGroupFromRoomRequest'], 'output' => ['shape' => 'DisassociateSkillGroupFromRoomResponse'], 'errors' => [['shape' => 'ConcurrentModificationException']]], 'ForgetSmartHomeAppliances' => ['name' => 'ForgetSmartHomeAppliances', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'ForgetSmartHomeAppliancesRequest'], 'output' => ['shape' => 'ForgetSmartHomeAppliancesResponse'], 'errors' => [['shape' => 'NotFoundException']]], 'GetAddressBook' => ['name' => 'GetAddressBook', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'GetAddressBookRequest'], 'output' => ['shape' => 'GetAddressBookResponse'], 'errors' => [['shape' => 'NotFoundException']]], 'GetConferencePreference' => ['name' => 'GetConferencePreference', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'GetConferencePreferenceRequest'], 'output' => ['shape' => 'GetConferencePreferenceResponse'], 'errors' => [['shape' => 'NotFoundException']]], 'GetConferenceProvider' => ['name' => 'GetConferenceProvider', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'GetConferenceProviderRequest'], 'output' => ['shape' => 'GetConferenceProviderResponse'], 'errors' => [['shape' => 'NotFoundException']]], 'GetContact' => ['name' => 'GetContact', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'GetContactRequest'], 'output' => ['shape' => 'GetContactResponse'], 'errors' => [['shape' => 'NotFoundException']]], 'GetDevice' => ['name' => 'GetDevice', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'GetDeviceRequest'], 'output' => ['shape' => 'GetDeviceResponse'], 'errors' => [['shape' => 'NotFoundException']]], 'GetGateway' => ['name' => 'GetGateway', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'GetGatewayRequest'], 'output' => ['shape' => 'GetGatewayResponse'], 'errors' => [['shape' => 'NotFoundException']]], 'GetGatewayGroup' => ['name' => 'GetGatewayGroup', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'GetGatewayGroupRequest'], 'output' => ['shape' => 'GetGatewayGroupResponse'], 'errors' => [['shape' => 'NotFoundException']]], 'GetInvitationConfiguration' => ['name' => 'GetInvitationConfiguration', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'GetInvitationConfigurationRequest'], 'output' => ['shape' => 'GetInvitationConfigurationResponse'], 'errors' => [['shape' => 'NotFoundException']]], 'GetNetworkProfile' => ['name' => 'GetNetworkProfile', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'GetNetworkProfileRequest'], 'output' => ['shape' => 'GetNetworkProfileResponse'], 'errors' => [['shape' => 'NotFoundException'], ['shape' => 'InvalidSecretsManagerResourceException']]], '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']]], 'ListGatewayGroups' => ['name' => 'ListGatewayGroups', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'ListGatewayGroupsRequest'], 'output' => ['shape' => 'ListGatewayGroupsResponse']], 'ListGateways' => ['name' => 'ListGateways', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'ListGatewaysRequest'], 'output' => ['shape' => 'ListGatewaysResponse']], 'ListSkills' => ['name' => 'ListSkills', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'ListSkillsRequest'], 'output' => ['shape' => 'ListSkillsResponse']], 'ListSkillsStoreCategories' => ['name' => 'ListSkillsStoreCategories', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'ListSkillsStoreCategoriesRequest'], 'output' => ['shape' => 'ListSkillsStoreCategoriesResponse']], 'ListSkillsStoreSkillsByCategory' => ['name' => 'ListSkillsStoreSkillsByCategory', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'ListSkillsStoreSkillsByCategoryRequest'], 'output' => ['shape' => 'ListSkillsStoreSkillsByCategoryResponse']], 'ListSmartHomeAppliances' => ['name' => 'ListSmartHomeAppliances', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'ListSmartHomeAppliancesRequest'], 'output' => ['shape' => 'ListSmartHomeAppliancesResponse'], 'errors' => [['shape' => 'NotFoundException']]], 'ListTags' => ['name' => 'ListTags', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'ListTagsRequest'], 'output' => ['shape' => 'ListTagsResponse'], 'errors' => [['shape' => 'NotFoundException']]], 'PutConferencePreference' => ['name' => 'PutConferencePreference', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'PutConferencePreferenceRequest'], 'output' => ['shape' => 'PutConferencePreferenceResponse'], 'errors' => [['shape' => 'NotFoundException']]], 'PutInvitationConfiguration' => ['name' => 'PutInvitationConfiguration', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'PutInvitationConfigurationRequest'], 'output' => ['shape' => 'PutInvitationConfigurationResponse'], 'errors' => [['shape' => 'NotFoundException'], ['shape' => 'ConcurrentModificationException']]], 'PutRoomSkillParameter' => ['name' => 'PutRoomSkillParameter', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'PutRoomSkillParameterRequest'], 'output' => ['shape' => 'PutRoomSkillParameterResponse'], 'errors' => [['shape' => 'ConcurrentModificationException']]], 'PutSkillAuthorization' => ['name' => 'PutSkillAuthorization', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'PutSkillAuthorizationRequest'], 'output' => ['shape' => 'PutSkillAuthorizationResponse'], 'errors' => [['shape' => 'UnauthorizedException'], ['shape' => 'ConcurrentModificationException']]], 'RegisterAVSDevice' => ['name' => 'RegisterAVSDevice', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'RegisterAVSDeviceRequest'], 'output' => ['shape' => 'RegisterAVSDeviceResponse'], 'errors' => [['shape' => 'LimitExceededException'], ['shape' => 'ConcurrentModificationException'], ['shape' => 'NotFoundException'], ['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']], 'SearchNetworkProfiles' => ['name' => 'SearchNetworkProfiles', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'SearchNetworkProfilesRequest'], 'output' => ['shape' => 'SearchNetworkProfilesResponse']], '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']], 'SendAnnouncement' => ['name' => 'SendAnnouncement', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'SendAnnouncementRequest'], 'output' => ['shape' => 'SendAnnouncementResponse'], 'errors' => [['shape' => 'LimitExceededException'], ['shape' => 'AlreadyExistsException']]], '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']]], 'UpdateGateway' => ['name' => 'UpdateGateway', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'UpdateGatewayRequest'], 'output' => ['shape' => 'UpdateGatewayResponse'], 'errors' => [['shape' => 'NotFoundException'], ['shape' => 'NameInUseException']]], 'UpdateGatewayGroup' => ['name' => 'UpdateGatewayGroup', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'UpdateGatewayGroupRequest'], 'output' => ['shape' => 'UpdateGatewayGroupResponse'], 'errors' => [['shape' => 'NotFoundException'], ['shape' => 'NameInUseException']]], 'UpdateNetworkProfile' => ['name' => 'UpdateNetworkProfile', 'http' => ['method' => 'POST', 'requestUri' => '/'], 'input' => ['shape' => 'UpdateNetworkProfileRequest'], 'output' => ['shape' => 'UpdateNetworkProfileResponse'], 'errors' => [['shape' => 'NotFoundException'], ['shape' => 'NameInUseException'], ['shape' => 'ConcurrentModificationException'], ['shape' => 'InvalidCertificateAuthorityException'], ['shape' => 'InvalidSecretsManagerResourceException']]], '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' => []], 'AssociateDeviceWithNetworkProfileRequest' => ['type' => 'structure', 'required' => ['DeviceArn', 'NetworkProfileArn'], 'members' => ['DeviceArn' => ['shape' => 'Arn'], 'NetworkProfileArn' => ['shape' => 'Arn']]], 'AssociateDeviceWithNetworkProfileResponse' => ['type' => 'structure', 'members' => []], 'AssociateDeviceWithRoomRequest' => ['type' => 'structure', 'members' => ['DeviceArn' => ['shape' => 'Arn'], 'RoomArn' => ['shape' => 'Arn']]], 'AssociateDeviceWithRoomResponse' => ['type' => 'structure', 'members' => []], 'AssociateSkillGroupWithRoomRequest' => ['type' => 'structure', 'members' => ['SkillGroupArn' => ['shape' => 'Arn'], 'RoomArn' => ['shape' => 'Arn']]], 'AssociateSkillGroupWithRoomResponse' => ['type' => 'structure', 'members' => []], 'AssociateSkillWithSkillGroupRequest' => ['type' => 'structure', 'required' => ['SkillId'], 'members' => ['SkillGroupArn' => ['shape' => 'Arn'], 'SkillId' => ['shape' => 'SkillId']]], 'AssociateSkillWithSkillGroupResponse' => ['type' => 'structure', 'members' => []], 'AssociateSkillWithUsersRequest' => ['type' => 'structure', 'required' => ['SkillId'], 'members' => ['SkillId' => ['shape' => 'SkillId']]], 'AssociateSkillWithUsersResponse' => ['type' => 'structure', 'members' => []], 'Audio' => ['type' => 'structure', 'required' => ['Locale', 'Location'], 'members' => ['Locale' => ['shape' => 'Locale'], 'Location' => ['shape' => 'AudioLocation']]], 'AudioList' => ['type' => 'list', 'member' => ['shape' => 'Audio'], 'max' => 1], 'AudioLocation' => ['type' => 'string', 'max' => 1200, 'min' => 0, 'pattern' => 'https://([A-Za-z0-9_.-]+)?(s3-[A-Za-z0-9-]+|s3\\.([A-Za-z0-9-])+|s3|s3.dualstack\\.([A-Za-z0-9-])+)+.amazonaws.com/.*'], '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' => 'BusinessReportDeliveryTime'], 'DownloadUrl' => ['shape' => 'BusinessReportDownloadUrl']]], 'BusinessReportContentRange' => ['type' => 'structure', 'required' => ['Interval'], 'members' => ['Interval' => ['shape' => 'BusinessReportInterval']]], 'BusinessReportDeliveryTime' => ['type' => 'timestamp'], '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', 'THIRTY_DAYS']], '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'], 'CertificateTime' => ['type' => 'timestamp'], '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']], 'ConnectionStatusUpdatedTime' => ['type' => 'timestamp'], 'Contact' => ['type' => 'structure', 'members' => ['ContactArn' => ['shape' => 'Arn'], 'DisplayName' => ['shape' => 'ContactName'], 'FirstName' => ['shape' => 'ContactName'], 'LastName' => ['shape' => 'ContactName'], 'PhoneNumber' => ['shape' => 'RawPhoneNumber'], 'PhoneNumbers' => ['shape' => 'PhoneNumberList'], 'SipAddresses' => ['shape' => 'SipAddressList']]], 'ContactData' => ['type' => 'structure', 'members' => ['ContactArn' => ['shape' => 'Arn'], 'DisplayName' => ['shape' => 'ContactName'], 'FirstName' => ['shape' => 'ContactName'], 'LastName' => ['shape' => 'ContactName'], 'PhoneNumber' => ['shape' => 'RawPhoneNumber'], 'PhoneNumbers' => ['shape' => 'PhoneNumberList'], 'SipAddresses' => ['shape' => 'SipAddressList']]], '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]*'], 'Content' => ['type' => 'structure', 'members' => ['TextList' => ['shape' => 'TextList'], 'SsmlList' => ['shape' => 'SsmlList'], 'AudioList' => ['shape' => 'AudioList']]], '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], 'Tags' => ['shape' => 'TagList']]], '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' => 'RawPhoneNumber'], 'PhoneNumbers' => ['shape' => 'PhoneNumberList'], 'SipAddresses' => ['shape' => 'SipAddressList'], 'ClientRequestToken' => ['shape' => 'ClientRequestToken', 'idempotencyToken' => \true]]], 'CreateContactResponse' => ['type' => 'structure', 'members' => ['ContactArn' => ['shape' => 'Arn']]], 'CreateEndOfMeetingReminder' => ['type' => 'structure', 'required' => ['ReminderAtMinutes', 'ReminderType', 'Enabled'], 'members' => ['ReminderAtMinutes' => ['shape' => 'EndOfMeetingReminderMinutesList'], 'ReminderType' => ['shape' => 'EndOfMeetingReminderType'], 'Enabled' => ['shape' => 'Boolean']]], 'CreateGatewayGroupRequest' => ['type' => 'structure', 'required' => ['Name', 'ClientRequestToken'], 'members' => ['Name' => ['shape' => 'GatewayGroupName'], 'Description' => ['shape' => 'GatewayGroupDescription'], 'ClientRequestToken' => ['shape' => 'ClientRequestToken', 'idempotencyToken' => \true]]], 'CreateGatewayGroupResponse' => ['type' => 'structure', 'members' => ['GatewayGroupArn' => ['shape' => 'Arn']]], 'CreateInstantBooking' => ['type' => 'structure', 'required' => ['DurationInMinutes', 'Enabled'], 'members' => ['DurationInMinutes' => ['shape' => 'Minutes'], 'Enabled' => ['shape' => 'Boolean']]], 'CreateMeetingRoomConfiguration' => ['type' => 'structure', 'members' => ['RoomUtilizationMetricsEnabled' => ['shape' => 'Boolean'], 'EndOfMeetingReminder' => ['shape' => 'CreateEndOfMeetingReminder'], 'InstantBooking' => ['shape' => 'CreateInstantBooking'], 'RequireCheckIn' => ['shape' => 'CreateRequireCheckIn']]], 'CreateNetworkProfileRequest' => ['type' => 'structure', 'required' => ['NetworkProfileName', 'Ssid', 'SecurityType', 'ClientRequestToken'], 'members' => ['NetworkProfileName' => ['shape' => 'NetworkProfileName'], 'Description' => ['shape' => 'NetworkProfileDescription'], 'Ssid' => ['shape' => 'NetworkSsid'], 'SecurityType' => ['shape' => 'NetworkSecurityType'], 'EapMethod' => ['shape' => 'NetworkEapMethod'], 'CurrentPassword' => ['shape' => 'CurrentWiFiPassword'], 'NextPassword' => ['shape' => 'NextWiFiPassword'], 'CertificateAuthorityArn' => ['shape' => 'Arn'], 'TrustAnchors' => ['shape' => 'TrustAnchorList'], 'ClientRequestToken' => ['shape' => 'ClientRequestToken', 'idempotencyToken' => \true]]], 'CreateNetworkProfileResponse' => ['type' => 'structure', 'members' => ['NetworkProfileArn' => ['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'], 'Locale' => ['shape' => 'DeviceLocale'], 'ClientRequestToken' => ['shape' => 'ClientRequestToken', 'idempotencyToken' => \true], 'SetupModeDisabled' => ['shape' => 'Boolean'], 'MaxVolumeLimit' => ['shape' => 'MaxVolumeLimit'], 'PSTNEnabled' => ['shape' => 'Boolean'], 'MeetingRoomConfiguration' => ['shape' => 'CreateMeetingRoomConfiguration'], 'Tags' => ['shape' => 'TagList']]], 'CreateProfileResponse' => ['type' => 'structure', 'members' => ['ProfileArn' => ['shape' => 'Arn']]], 'CreateRequireCheckIn' => ['type' => 'structure', 'required' => ['ReleaseAfterMinutes', 'Enabled'], 'members' => ['ReleaseAfterMinutes' => ['shape' => 'Minutes'], 'Enabled' => ['shape' => 'Boolean']]], '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], 'Tags' => ['shape' => 'TagList']]], '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']]], 'CurrentWiFiPassword' => ['type' => 'string', 'max' => 128, 'min' => 5, 'pattern' => '[\\x00-\\x7F]*', 'sensitive' => \true], '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' => []], 'DeleteDeviceUsageDataRequest' => ['type' => 'structure', 'required' => ['DeviceArn', 'DeviceUsageType'], 'members' => ['DeviceArn' => ['shape' => 'Arn'], 'DeviceUsageType' => ['shape' => 'DeviceUsageType']]], 'DeleteDeviceUsageDataResponse' => ['type' => 'structure', 'members' => []], 'DeleteGatewayGroupRequest' => ['type' => 'structure', 'required' => ['GatewayGroupArn'], 'members' => ['GatewayGroupArn' => ['shape' => 'Arn']]], 'DeleteGatewayGroupResponse' => ['type' => 'structure', 'members' => []], 'DeleteNetworkProfileRequest' => ['type' => 'structure', 'required' => ['NetworkProfileArn'], 'members' => ['NetworkProfileArn' => ['shape' => 'Arn']]], 'DeleteNetworkProfileResponse' => ['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'], 'NetworkProfileInfo' => ['shape' => 'DeviceNetworkProfileInfo']]], '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'], 'NetworkProfileArn' => ['shape' => 'Arn'], 'NetworkProfileName' => ['shape' => 'NetworkProfileName'], 'RoomArn' => ['shape' => 'Arn'], 'RoomName' => ['shape' => 'DeviceRoomName'], 'DeviceStatusInfo' => ['shape' => 'DeviceStatusInfo'], 'CreatedTime' => ['shape' => 'DeviceDataCreatedTime']]], 'DeviceDataCreatedTime' => ['type' => 'timestamp'], 'DeviceDataList' => ['type' => 'list', 'member' => ['shape' => 'DeviceData']], 'DeviceEvent' => ['type' => 'structure', 'members' => ['Type' => ['shape' => 'DeviceEventType'], 'Value' => ['shape' => 'DeviceEventValue'], 'Timestamp' => ['shape' => 'DeviceEventTime']]], 'DeviceEventList' => ['type' => 'list', 'member' => ['shape' => 'DeviceEvent']], 'DeviceEventTime' => ['type' => 'timestamp'], 'DeviceEventType' => ['type' => 'string', 'enum' => ['CONNECTION_STATUS', 'DEVICE_STATUS']], 'DeviceEventValue' => ['type' => 'string'], 'DeviceLocale' => ['type' => 'string', 'max' => 256, 'min' => 1], 'DeviceName' => ['type' => 'string', 'max' => 100, 'min' => 2, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*'], 'DeviceNetworkProfileInfo' => ['type' => 'structure', 'members' => ['NetworkProfileArn' => ['shape' => 'Arn'], 'CertificateArn' => ['shape' => 'Arn'], 'CertificateExpirationTime' => ['shape' => 'CertificateTime']]], 'DeviceNotRegisteredException' => ['type' => 'structure', 'members' => ['Message' => ['shape' => 'ErrorMessage']], 'exception' => \true], 'DeviceRoomName' => ['type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*'], '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', 'FAILED']], 'DeviceStatusDetail' => ['type' => 'structure', 'members' => ['Feature' => ['shape' => 'Feature'], 'Code' => ['shape' => 'DeviceStatusDetailCode']]], 'DeviceStatusDetailCode' => ['type' => 'string', 'enum' => ['DEVICE_SOFTWARE_UPDATE_NEEDED', 'DEVICE_WAS_OFFLINE', 'CREDENTIALS_ACCESS_FAILURE', 'TLS_VERSION_MISMATCH', 'ASSOCIATION_REJECTION', 'AUTHENTICATION_FAILURE', 'DHCP_FAILURE', 'INTERNET_UNAVAILABLE', 'DNS_FAILURE', 'UNKNOWN_FAILURE', 'CERTIFICATE_ISSUING_LIMIT_EXCEEDED', 'INVALID_CERTIFICATE_AUTHORITY', 'NETWORK_PROFILE_NOT_FOUND', 'INVALID_PASSWORD_STATE', 'PASSWORD_NOT_FOUND', 'PASSWORD_MANAGER_ACCESS_DENIED', 'CERTIFICATE_AUTHORITY_ACCESS_DENIED']], 'DeviceStatusDetails' => ['type' => 'list', 'member' => ['shape' => 'DeviceStatusDetail']], 'DeviceStatusInfo' => ['type' => 'structure', 'members' => ['DeviceStatusDetails' => ['shape' => 'DeviceStatusDetails'], 'ConnectionStatus' => ['shape' => 'ConnectionStatus'], 'ConnectionStatusUpdatedTime' => ['shape' => 'ConnectionStatusUpdatedTime']]], 'DeviceType' => ['type' => 'string', 'pattern' => '[a-zA-Z0-9]{1,200}'], 'DeviceUsageType' => ['type' => 'string', 'enum' => ['VOICE']], 'DisassociateContactFromAddressBookRequest' => ['type' => 'structure', 'required' => ['ContactArn', 'AddressBookArn'], 'members' => ['ContactArn' => ['shape' => 'Arn'], 'AddressBookArn' => ['shape' => 'Arn']]], 'DisassociateContactFromAddressBookResponse' => ['type' => 'structure', 'members' => []], 'DisassociateDeviceFromRoomRequest' => ['type' => 'structure', 'members' => ['DeviceArn' => ['shape' => 'Arn']]], 'DisassociateDeviceFromRoomResponse' => ['type' => 'structure', 'members' => []], 'DisassociateSkillFromSkillGroupRequest' => ['type' => 'structure', 'required' => ['SkillId'], 'members' => ['SkillGroupArn' => ['shape' => 'Arn'], 'SkillId' => ['shape' => 'SkillId']]], 'DisassociateSkillFromSkillGroupResponse' => ['type' => 'structure', 'members' => []], 'DisassociateSkillFromUsersRequest' => ['type' => 'structure', 'required' => ['SkillId'], 'members' => ['SkillId' => ['shape' => 'SkillId']]], 'DisassociateSkillFromUsersResponse' => ['type' => 'structure', 'members' => []], 'DisassociateSkillGroupFromRoomRequest' => ['type' => 'structure', 'members' => ['SkillGroupArn' => ['shape' => 'Arn'], 'RoomArn' => ['shape' => 'Arn']]], 'DisassociateSkillGroupFromRoomResponse' => ['type' => 'structure', 'members' => []], 'DistanceUnit' => ['type' => 'string', 'enum' => ['METRIC', 'IMPERIAL']], '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']], 'EndOfMeetingReminder' => ['type' => 'structure', 'members' => ['ReminderAtMinutes' => ['shape' => 'EndOfMeetingReminderMinutesList'], 'ReminderType' => ['shape' => 'EndOfMeetingReminderType'], 'Enabled' => ['shape' => 'Boolean']]], 'EndOfMeetingReminderMinutesList' => ['type' => 'list', 'member' => ['shape' => 'Minutes'], 'max' => 1, 'min' => 1], 'EndOfMeetingReminderType' => ['type' => 'string', 'enum' => ['ANNOUNCEMENT_TIME_CHECK', 'ANNOUNCEMENT_VARIABLE_TIME_LEFT', 'CHIME', 'KNOCK']], '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', 'NETWORK_PROFILE', 'SETTINGS', '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' => 50], 'ForgetSmartHomeAppliancesRequest' => ['type' => 'structure', 'required' => ['RoomArn'], 'members' => ['RoomArn' => ['shape' => 'Arn']]], 'ForgetSmartHomeAppliancesResponse' => ['type' => 'structure', 'members' => []], 'Gateway' => ['type' => 'structure', 'members' => ['Arn' => ['shape' => 'Arn'], 'Name' => ['shape' => 'GatewayName'], 'Description' => ['shape' => 'GatewayDescription'], 'GatewayGroupArn' => ['shape' => 'Arn'], 'SoftwareVersion' => ['shape' => 'GatewayVersion']]], 'GatewayDescription' => ['type' => 'string', 'max' => 200, 'min' => 0, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*'], 'GatewayGroup' => ['type' => 'structure', 'members' => ['Arn' => ['shape' => 'Arn'], 'Name' => ['shape' => 'GatewayGroupName'], 'Description' => ['shape' => 'GatewayGroupDescription']]], 'GatewayGroupDescription' => ['type' => 'string', 'max' => 200, 'min' => 0], 'GatewayGroupName' => ['type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*'], 'GatewayGroupSummaries' => ['type' => 'list', 'member' => ['shape' => 'GatewayGroupSummary']], 'GatewayGroupSummary' => ['type' => 'structure', 'members' => ['Arn' => ['shape' => 'Arn'], 'Name' => ['shape' => 'GatewayGroupName'], 'Description' => ['shape' => 'GatewayGroupDescription']]], 'GatewayName' => ['type' => 'string', 'max' => 253, 'min' => 1, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*'], 'GatewaySummaries' => ['type' => 'list', 'member' => ['shape' => 'GatewaySummary']], 'GatewaySummary' => ['type' => 'structure', 'members' => ['Arn' => ['shape' => 'Arn'], 'Name' => ['shape' => 'GatewayName'], 'Description' => ['shape' => 'GatewayDescription'], 'GatewayGroupArn' => ['shape' => 'Arn'], 'SoftwareVersion' => ['shape' => 'GatewayVersion']]], 'GatewayVersion' => ['type' => 'string', 'max' => 50, 'min' => 1], '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']]], 'GetGatewayGroupRequest' => ['type' => 'structure', 'required' => ['GatewayGroupArn'], 'members' => ['GatewayGroupArn' => ['shape' => 'Arn']]], 'GetGatewayGroupResponse' => ['type' => 'structure', 'members' => ['GatewayGroup' => ['shape' => 'GatewayGroup']]], 'GetGatewayRequest' => ['type' => 'structure', 'required' => ['GatewayArn'], 'members' => ['GatewayArn' => ['shape' => 'Arn']]], 'GetGatewayResponse' => ['type' => 'structure', 'members' => ['Gateway' => ['shape' => 'Gateway']]], 'GetInvitationConfigurationRequest' => ['type' => 'structure', 'members' => []], 'GetInvitationConfigurationResponse' => ['type' => 'structure', 'members' => ['OrganizationName' => ['shape' => 'OrganizationName'], 'ContactEmail' => ['shape' => 'Email'], 'PrivateSkillIds' => ['shape' => 'ShortSkillIdList']]], 'GetNetworkProfileRequest' => ['type' => 'structure', 'required' => ['NetworkProfileArn'], 'members' => ['NetworkProfileArn' => ['shape' => 'Arn']]], 'GetNetworkProfileResponse' => ['type' => 'structure', 'members' => ['NetworkProfile' => ['shape' => 'NetworkProfile']]], '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'], 'InstantBooking' => ['type' => 'structure', 'members' => ['DurationInMinutes' => ['shape' => 'Minutes'], 'Enabled' => ['shape' => 'Boolean']]], 'InvalidCertificateAuthorityException' => ['type' => 'structure', 'members' => ['Message' => ['shape' => 'ErrorMessage']], 'exception' => \true], 'InvalidDeviceException' => ['type' => 'structure', 'members' => ['Message' => ['shape' => 'ErrorMessage']], 'exception' => \true], 'InvalidSecretsManagerResourceException' => ['type' => 'structure', 'members' => ['Message' => ['shape' => 'ErrorMessage']], 'exception' => \true], 'InvalidServiceLinkedRoleStateException' => ['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']]], 'ListGatewayGroupsRequest' => ['type' => 'structure', 'members' => ['NextToken' => ['shape' => 'NextToken'], 'MaxResults' => ['shape' => 'MaxResults']]], 'ListGatewayGroupsResponse' => ['type' => 'structure', 'members' => ['GatewayGroups' => ['shape' => 'GatewayGroupSummaries'], 'NextToken' => ['shape' => 'NextToken']]], 'ListGatewaysRequest' => ['type' => 'structure', 'members' => ['GatewayGroupArn' => ['shape' => 'Arn'], 'NextToken' => ['shape' => 'NextToken'], 'MaxResults' => ['shape' => 'MaxResults']]], 'ListGatewaysResponse' => ['type' => 'structure', 'members' => ['Gateways' => ['shape' => 'GatewaySummaries'], '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']]], 'Locale' => ['type' => 'string', 'enum' => ['en-US']], 'MacAddress' => ['type' => 'string'], 'MaxResults' => ['type' => 'integer', 'max' => 50, 'min' => 1], 'MaxVolumeLimit' => ['type' => 'integer'], 'MeetingRoomConfiguration' => ['type' => 'structure', 'members' => ['RoomUtilizationMetricsEnabled' => ['shape' => 'Boolean'], 'EndOfMeetingReminder' => ['shape' => 'EndOfMeetingReminder'], 'InstantBooking' => ['shape' => 'InstantBooking'], 'RequireCheckIn' => ['shape' => 'RequireCheckIn']]], 'MeetingSetting' => ['type' => 'structure', 'required' => ['RequirePin'], 'members' => ['RequirePin' => ['shape' => 'RequirePin']]], 'Minutes' => ['type' => 'integer'], 'NameInUseException' => ['type' => 'structure', 'members' => ['Message' => ['shape' => 'ErrorMessage']], 'exception' => \true], 'NetworkEapMethod' => ['type' => 'string', 'enum' => ['EAP_TLS']], 'NetworkProfile' => ['type' => 'structure', 'members' => ['NetworkProfileArn' => ['shape' => 'Arn'], 'NetworkProfileName' => ['shape' => 'NetworkProfileName'], 'Description' => ['shape' => 'NetworkProfileDescription'], 'Ssid' => ['shape' => 'NetworkSsid'], 'SecurityType' => ['shape' => 'NetworkSecurityType'], 'EapMethod' => ['shape' => 'NetworkEapMethod'], 'CurrentPassword' => ['shape' => 'CurrentWiFiPassword'], 'NextPassword' => ['shape' => 'NextWiFiPassword'], 'CertificateAuthorityArn' => ['shape' => 'Arn'], 'TrustAnchors' => ['shape' => 'TrustAnchorList']]], 'NetworkProfileData' => ['type' => 'structure', 'members' => ['NetworkProfileArn' => ['shape' => 'Arn'], 'NetworkProfileName' => ['shape' => 'NetworkProfileName'], 'Description' => ['shape' => 'NetworkProfileDescription'], 'Ssid' => ['shape' => 'NetworkSsid'], 'SecurityType' => ['shape' => 'NetworkSecurityType'], 'EapMethod' => ['shape' => 'NetworkEapMethod'], 'CertificateAuthorityArn' => ['shape' => 'Arn']]], 'NetworkProfileDataList' => ['type' => 'list', 'member' => ['shape' => 'NetworkProfileData']], 'NetworkProfileDescription' => ['type' => 'string', 'max' => 200, 'min' => 0, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*'], 'NetworkProfileName' => ['type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*'], 'NetworkSecurityType' => ['type' => 'string', 'enum' => ['OPEN', 'WEP', 'WPA_PSK', 'WPA2_PSK', 'WPA2_ENTERPRISE']], 'NetworkSsid' => ['type' => 'string', 'max' => 32, 'min' => 1, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*'], 'NewInThisVersionBulletPoints' => ['type' => 'list', 'member' => ['shape' => 'BulletPoint']], 'NextToken' => ['type' => 'string', 'max' => 1100, 'min' => 1], 'NextWiFiPassword' => ['type' => 'string', 'max' => 128, 'min' => 0, 'pattern' => '(^$)|([\\x00-\\x7F]{5,})', 'sensitive' => \true], 'NotFoundException' => ['type' => 'structure', 'members' => ['Message' => ['shape' => 'ErrorMessage']], 'exception' => \true], 'OneClickIdDelay' => ['type' => 'string', 'max' => 2, 'min' => 1], 'OneClickPinDelay' => ['type' => 'string', 'max' => 2, 'min' => 1], 'OrganizationName' => ['type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*'], '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']]], 'PhoneNumber' => ['type' => 'structure', 'required' => ['Number', 'Type'], 'members' => ['Number' => ['shape' => 'RawPhoneNumber'], 'Type' => ['shape' => 'PhoneNumberType']]], 'PhoneNumberList' => ['type' => 'list', 'member' => ['shape' => 'PhoneNumber'], 'max' => 3, 'min' => 0], 'PhoneNumberType' => ['type' => 'string', 'enum' => ['MOBILE', 'WORK', 'HOME'], 'sensitive' => \true], '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'], 'Locale' => ['shape' => 'DeviceLocale'], 'SetupModeDisabled' => ['shape' => 'Boolean'], 'MaxVolumeLimit' => ['shape' => 'MaxVolumeLimit'], 'PSTNEnabled' => ['shape' => 'Boolean'], 'AddressBookArn' => ['shape' => 'Arn'], 'MeetingRoomConfiguration' => ['shape' => 'MeetingRoomConfiguration']]], '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'], 'Locale' => ['shape' => 'DeviceLocale']]], 'ProfileDataList' => ['type' => 'list', 'member' => ['shape' => 'ProfileData']], 'ProfileName' => ['type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*'], 'ProviderCalendarId' => ['type' => 'string', 'max' => 100, 'min' => 0], 'PutConferencePreferenceRequest' => ['type' => 'structure', 'required' => ['ConferencePreference'], 'members' => ['ConferencePreference' => ['shape' => 'ConferencePreference']]], 'PutConferencePreferenceResponse' => ['type' => 'structure', 'members' => []], 'PutInvitationConfigurationRequest' => ['type' => 'structure', 'required' => ['OrganizationName'], 'members' => ['OrganizationName' => ['shape' => 'OrganizationName'], 'ContactEmail' => ['shape' => 'Email'], 'PrivateSkillIds' => ['shape' => 'ShortSkillIdList']]], 'PutInvitationConfigurationResponse' => ['type' => 'structure', 'members' => []], 'PutRoomSkillParameterRequest' => ['type' => 'structure', 'required' => ['SkillId', 'RoomSkillParameter'], 'members' => ['RoomArn' => ['shape' => 'Arn'], 'SkillId' => ['shape' => 'SkillId'], 'RoomSkillParameter' => ['shape' => 'RoomSkillParameter']]], 'PutRoomSkillParameterResponse' => ['type' => 'structure', 'members' => []], 'PutSkillAuthorizationRequest' => ['type' => 'structure', 'required' => ['AuthorizationResult', 'SkillId'], 'members' => ['AuthorizationResult' => ['shape' => 'AuthorizationResult'], 'SkillId' => ['shape' => 'SkillId'], 'RoomArn' => ['shape' => 'Arn']]], 'PutSkillAuthorizationResponse' => ['type' => 'structure', 'members' => []], 'RawPhoneNumber' => ['type' => 'string', 'max' => 50, 'min' => 0, 'pattern' => '^[\\+0-9\\#\\,\\(][\\+0-9\\-\\.\\/\\(\\)\\,\\#\\s]+$', 'sensitive' => \true], 'RegisterAVSDeviceRequest' => ['type' => 'structure', 'required' => ['ClientId', 'UserCode', 'ProductId', 'AmazonId'], 'members' => ['ClientId' => ['shape' => 'ClientId'], 'UserCode' => ['shape' => 'UserCode'], 'ProductId' => ['shape' => 'ProductId'], 'DeviceSerialNumber' => ['shape' => 'DeviceSerialNumberForAVS'], 'AmazonId' => ['shape' => 'AmazonId'], 'RoomArn' => ['shape' => 'Arn']]], 'RegisterAVSDeviceResponse' => ['type' => 'structure', 'members' => ['DeviceArn' => ['shape' => 'Arn']]], 'RejectSkillRequest' => ['type' => 'structure', 'required' => ['SkillId'], 'members' => ['SkillId' => ['shape' => 'SkillId']]], 'RejectSkillResponse' => ['type' => 'structure', 'members' => []], 'ReleaseDate' => ['type' => 'string'], 'RequireCheckIn' => ['type' => 'structure', 'members' => ['ReleaseAfterMinutes' => ['shape' => 'Minutes'], 'Enabled' => ['shape' => 'Boolean']]], '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']]], 'ResourceAssociatedException' => ['type' => 'structure', 'members' => ['Message' => ['shape' => 'ErrorMessage']], 'exception' => \true], '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']]], 'SearchNetworkProfilesRequest' => ['type' => 'structure', 'members' => ['NextToken' => ['shape' => 'NextToken'], 'MaxResults' => ['shape' => 'MaxResults'], 'Filters' => ['shape' => 'FilterList'], 'SortCriteria' => ['shape' => 'SortList']]], 'SearchNetworkProfilesResponse' => ['type' => 'structure', 'members' => ['NetworkProfiles' => ['shape' => 'NetworkProfileDataList'], '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']]], 'SendAnnouncementRequest' => ['type' => 'structure', 'required' => ['RoomFilters', 'Content', 'ClientRequestToken'], 'members' => ['RoomFilters' => ['shape' => 'FilterList'], 'Content' => ['shape' => 'Content'], 'TimeToLiveInSeconds' => ['shape' => 'TimeToLiveInSeconds'], 'ClientRequestToken' => ['shape' => 'ClientRequestToken', 'idempotencyToken' => \true]]], 'SendAnnouncementResponse' => ['type' => 'structure', 'members' => ['AnnouncementArn' => ['shape' => 'Arn']]], 'SendInvitationRequest' => ['type' => 'structure', 'members' => ['UserArn' => ['shape' => 'Arn']]], 'SendInvitationResponse' => ['type' => 'structure', 'members' => []], 'ShortDescription' => ['type' => 'string'], 'ShortSkillIdList' => ['type' => 'list', 'member' => ['shape' => 'SkillId'], 'max' => 3, 'min' => 0], 'SipAddress' => ['type' => 'structure', 'required' => ['Uri', 'Type'], 'members' => ['Uri' => ['shape' => 'SipUri'], 'Type' => ['shape' => 'SipType']]], 'SipAddressList' => ['type' => 'list', 'member' => ['shape' => 'SipAddress'], 'max' => 1, 'min' => 0], 'SipType' => ['type' => 'string', 'enum' => ['WORK'], 'sensitive' => \true], 'SipUri' => ['type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '^sip[s]?:([^@:]+)\\@([^@]+)$', 'sensitive' => \true], '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']], 'Ssml' => ['type' => 'structure', 'required' => ['Locale', 'Value'], 'members' => ['Locale' => ['shape' => 'Locale'], 'Value' => ['shape' => 'SsmlValue']]], 'SsmlList' => ['type' => 'list', 'member' => ['shape' => 'Ssml'], 'max' => 1], 'SsmlValue' => ['type' => 'string', 'max' => 4096, 'min' => 0, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*'], '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']], 'Text' => ['type' => 'structure', 'required' => ['Locale', 'Value'], 'members' => ['Locale' => ['shape' => 'Locale'], 'Value' => ['shape' => 'TextValue']]], 'TextList' => ['type' => 'list', 'member' => ['shape' => 'Text'], 'max' => 1], 'TextValue' => ['type' => 'string', 'max' => 4096, 'min' => 0, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*'], 'TimeToLiveInSeconds' => ['type' => 'integer', 'max' => 3600, 'min' => 1], 'Timezone' => ['type' => 'string', 'max' => 100, 'min' => 1], 'TotalCount' => ['type' => 'integer'], 'TrustAnchor' => ['type' => 'string', 'pattern' => '-{5}BEGIN CERTIFICATE-{5}\\u000D?\\u000A([A-Za-z0-9/+]{64}\\u000D?\\u000A)*[A-Za-z0-9/+]{1,64}={0,2}\\u000D?\\u000A-{5}END CERTIFICATE-{5}(\\u000D?\\u000A)?'], 'TrustAnchorList' => ['type' => 'list', 'member' => ['shape' => 'TrustAnchor'], 'max' => 5, 'min' => 1], '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' => 'RawPhoneNumber'], 'PhoneNumbers' => ['shape' => 'PhoneNumberList'], 'SipAddresses' => ['shape' => 'SipAddressList']]], 'UpdateContactResponse' => ['type' => 'structure', 'members' => []], 'UpdateDeviceRequest' => ['type' => 'structure', 'members' => ['DeviceArn' => ['shape' => 'Arn'], 'DeviceName' => ['shape' => 'DeviceName']]], 'UpdateDeviceResponse' => ['type' => 'structure', 'members' => []], 'UpdateEndOfMeetingReminder' => ['type' => 'structure', 'members' => ['ReminderAtMinutes' => ['shape' => 'EndOfMeetingReminderMinutesList'], 'ReminderType' => ['shape' => 'EndOfMeetingReminderType'], 'Enabled' => ['shape' => 'Boolean']]], 'UpdateGatewayGroupRequest' => ['type' => 'structure', 'required' => ['GatewayGroupArn'], 'members' => ['GatewayGroupArn' => ['shape' => 'Arn'], 'Name' => ['shape' => 'GatewayGroupName'], 'Description' => ['shape' => 'GatewayGroupDescription']]], 'UpdateGatewayGroupResponse' => ['type' => 'structure', 'members' => []], 'UpdateGatewayRequest' => ['type' => 'structure', 'required' => ['GatewayArn'], 'members' => ['GatewayArn' => ['shape' => 'Arn'], 'Name' => ['shape' => 'GatewayName'], 'Description' => ['shape' => 'GatewayDescription'], 'SoftwareVersion' => ['shape' => 'GatewayVersion']]], 'UpdateGatewayResponse' => ['type' => 'structure', 'members' => []], 'UpdateInstantBooking' => ['type' => 'structure', 'members' => ['DurationInMinutes' => ['shape' => 'Minutes'], 'Enabled' => ['shape' => 'Boolean']]], 'UpdateMeetingRoomConfiguration' => ['type' => 'structure', 'members' => ['RoomUtilizationMetricsEnabled' => ['shape' => 'Boolean'], 'EndOfMeetingReminder' => ['shape' => 'UpdateEndOfMeetingReminder'], 'InstantBooking' => ['shape' => 'UpdateInstantBooking'], 'RequireCheckIn' => ['shape' => 'UpdateRequireCheckIn']]], 'UpdateNetworkProfileRequest' => ['type' => 'structure', 'required' => ['NetworkProfileArn'], 'members' => ['NetworkProfileArn' => ['shape' => 'Arn'], 'NetworkProfileName' => ['shape' => 'NetworkProfileName'], 'Description' => ['shape' => 'NetworkProfileDescription'], 'CurrentPassword' => ['shape' => 'CurrentWiFiPassword'], 'NextPassword' => ['shape' => 'NextWiFiPassword'], 'CertificateAuthorityArn' => ['shape' => 'Arn'], 'TrustAnchors' => ['shape' => 'TrustAnchorList']]], 'UpdateNetworkProfileResponse' => ['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'], 'Locale' => ['shape' => 'DeviceLocale'], 'SetupModeDisabled' => ['shape' => 'Boolean'], 'MaxVolumeLimit' => ['shape' => 'MaxVolumeLimit'], 'PSTNEnabled' => ['shape' => 'Boolean'], 'MeetingRoomConfiguration' => ['shape' => 'UpdateMeetingRoomConfiguration']]], 'UpdateProfileResponse' => ['type' => 'structure', 'members' => []], 'UpdateRequireCheckIn' => ['type' => 'structure', 'members' => ['ReleaseAfterMinutes' => ['shape' => 'Minutes'], 'Enabled' => ['shape' => 'Boolean']]], '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/amplify/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/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']]], 'CreateBackendEnvironment' => ['name' => 'CreateBackendEnvironment', 'http' => ['method' => 'POST', 'requestUri' => '/apps/{appId}/backendenvironments'], 'input' => ['shape' => 'CreateBackendEnvironmentRequest'], 'output' => ['shape' => 'CreateBackendEnvironmentResult'], 'errors' => [['shape' => 'BadRequestException'], ['shape' => 'UnauthorizedException'], ['shape' => 'NotFoundException'], ['shape' => 'InternalFailureException'], ['shape' => 'LimitExceededException']]], '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']]], 'CreateDeployment' => ['name' => 'CreateDeployment', 'http' => ['method' => 'POST', 'requestUri' => '/apps/{appId}/branches/{branchName}/deployments'], 'input' => ['shape' => 'CreateDeploymentRequest'], 'output' => ['shape' => 'CreateDeploymentResult'], 'errors' => [['shape' => 'BadRequestException'], ['shape' => 'UnauthorizedException'], ['shape' => 'InternalFailureException'], ['shape' => 'LimitExceededException']]], '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']]], 'CreateWebhook' => ['name' => 'CreateWebhook', 'http' => ['method' => 'POST', 'requestUri' => '/apps/{appId}/webhooks'], 'input' => ['shape' => 'CreateWebhookRequest'], 'output' => ['shape' => 'CreateWebhookResult'], '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']]], 'DeleteBackendEnvironment' => ['name' => 'DeleteBackendEnvironment', 'http' => ['method' => 'DELETE', 'requestUri' => '/apps/{appId}/backendenvironments/{environmentName}'], 'input' => ['shape' => 'DeleteBackendEnvironmentRequest'], 'output' => ['shape' => 'DeleteBackendEnvironmentResult'], 'errors' => [['shape' => 'BadRequestException'], ['shape' => 'UnauthorizedException'], ['shape' => 'NotFoundException'], ['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']]], 'DeleteWebhook' => ['name' => 'DeleteWebhook', 'http' => ['method' => 'DELETE', 'requestUri' => '/webhooks/{webhookId}'], 'input' => ['shape' => 'DeleteWebhookRequest'], 'output' => ['shape' => 'DeleteWebhookResult'], 'errors' => [['shape' => 'BadRequestException'], ['shape' => 'UnauthorizedException'], ['shape' => 'InternalFailureException'], ['shape' => 'NotFoundException'], ['shape' => 'LimitExceededException']]], 'GenerateAccessLogs' => ['name' => 'GenerateAccessLogs', 'http' => ['method' => 'POST', 'requestUri' => '/apps/{appId}/accesslogs'], 'input' => ['shape' => 'GenerateAccessLogsRequest'], 'output' => ['shape' => 'GenerateAccessLogsResult'], 'errors' => [['shape' => 'NotFoundException'], ['shape' => 'BadRequestException'], ['shape' => 'UnauthorizedException'], ['shape' => 'InternalFailureException']]], 'GetApp' => ['name' => 'GetApp', 'http' => ['method' => 'GET', 'requestUri' => '/apps/{appId}'], 'input' => ['shape' => 'GetAppRequest'], 'output' => ['shape' => 'GetAppResult'], 'errors' => [['shape' => 'BadRequestException'], ['shape' => 'NotFoundException'], ['shape' => 'UnauthorizedException'], ['shape' => 'InternalFailureException']]], 'GetArtifactUrl' => ['name' => 'GetArtifactUrl', 'http' => ['method' => 'GET', 'requestUri' => '/artifacts/{artifactId}'], 'input' => ['shape' => 'GetArtifactUrlRequest'], 'output' => ['shape' => 'GetArtifactUrlResult'], 'errors' => [['shape' => 'BadRequestException'], ['shape' => 'UnauthorizedException'], ['shape' => 'InternalFailureException'], ['shape' => 'NotFoundException'], ['shape' => 'LimitExceededException']]], 'GetBackendEnvironment' => ['name' => 'GetBackendEnvironment', 'http' => ['method' => 'GET', 'requestUri' => '/apps/{appId}/backendenvironments/{environmentName}'], 'input' => ['shape' => 'GetBackendEnvironmentRequest'], 'output' => ['shape' => 'GetBackendEnvironmentResult'], 'errors' => [['shape' => 'BadRequestException'], ['shape' => 'UnauthorizedException'], ['shape' => 'NotFoundException'], ['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']]], 'GetWebhook' => ['name' => 'GetWebhook', 'http' => ['method' => 'GET', 'requestUri' => '/webhooks/{webhookId}'], 'input' => ['shape' => 'GetWebhookRequest'], 'output' => ['shape' => 'GetWebhookResult'], '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']]], 'ListArtifacts' => ['name' => 'ListArtifacts', 'http' => ['method' => 'GET', 'requestUri' => '/apps/{appId}/branches/{branchName}/jobs/{jobId}/artifacts'], 'input' => ['shape' => 'ListArtifactsRequest'], 'output' => ['shape' => 'ListArtifactsResult'], 'errors' => [['shape' => 'BadRequestException'], ['shape' => 'UnauthorizedException'], ['shape' => 'InternalFailureException'], ['shape' => 'LimitExceededException']]], 'ListBackendEnvironments' => ['name' => 'ListBackendEnvironments', 'http' => ['method' => 'GET', 'requestUri' => '/apps/{appId}/backendenvironments'], 'input' => ['shape' => 'ListBackendEnvironmentsRequest'], 'output' => ['shape' => 'ListBackendEnvironmentsResult'], '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']]], 'ListTagsForResource' => ['name' => 'ListTagsForResource', 'http' => ['method' => 'GET', 'requestUri' => '/tags/{resourceArn}'], 'input' => ['shape' => 'ListTagsForResourceRequest'], 'output' => ['shape' => 'ListTagsForResourceResponse'], 'errors' => [['shape' => 'InternalFailureException'], ['shape' => 'BadRequestException'], ['shape' => 'ResourceNotFoundException']]], 'ListWebhooks' => ['name' => 'ListWebhooks', 'http' => ['method' => 'GET', 'requestUri' => '/apps/{appId}/webhooks'], 'input' => ['shape' => 'ListWebhooksRequest'], 'output' => ['shape' => 'ListWebhooksResult'], 'errors' => [['shape' => 'BadRequestException'], ['shape' => 'UnauthorizedException'], ['shape' => 'InternalFailureException'], ['shape' => 'LimitExceededException']]], 'StartDeployment' => ['name' => 'StartDeployment', 'http' => ['method' => 'POST', 'requestUri' => '/apps/{appId}/branches/{branchName}/deployments/start'], 'input' => ['shape' => 'StartDeploymentRequest'], 'output' => ['shape' => 'StartDeploymentResult'], 'errors' => [['shape' => 'BadRequestException'], ['shape' => 'UnauthorizedException'], ['shape' => 'InternalFailureException'], ['shape' => 'NotFoundException'], ['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']]], 'TagResource' => ['name' => 'TagResource', 'http' => ['method' => 'POST', 'requestUri' => '/tags/{resourceArn}'], 'input' => ['shape' => 'TagResourceRequest'], 'output' => ['shape' => 'TagResourceResponse'], 'errors' => [['shape' => 'InternalFailureException'], ['shape' => 'BadRequestException'], ['shape' => 'ResourceNotFoundException']]], 'UntagResource' => ['name' => 'UntagResource', 'http' => ['method' => 'DELETE', 'requestUri' => '/tags/{resourceArn}'], 'input' => ['shape' => 'UntagResourceRequest'], 'output' => ['shape' => 'UntagResourceResponse'], 'errors' => [['shape' => 'InternalFailureException'], ['shape' => 'BadRequestException'], ['shape' => 'ResourceNotFoundException']]], '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']]], 'UpdateWebhook' => ['name' => 'UpdateWebhook', 'http' => ['method' => 'POST', 'requestUri' => '/webhooks/{webhookId}'], 'input' => ['shape' => 'UpdateWebhookRequest'], 'output' => ['shape' => 'UpdateWebhookResult'], 'errors' => [['shape' => 'BadRequestException'], ['shape' => 'UnauthorizedException'], ['shape' => 'NotFoundException'], ['shape' => 'InternalFailureException'], ['shape' => 'DependentServiceFailureException']]]], 'shapes' => ['AccessToken' => ['type' => 'string', 'max' => 255, 'min' => 1], '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' => 'TagMap'], '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'], 'enableAutoBranchCreation' => ['shape' => 'EnableAutoBranchCreation'], 'autoBranchCreationPatterns' => ['shape' => 'AutoBranchCreationPatterns'], 'autoBranchCreationConfig' => ['shape' => 'AutoBranchCreationConfig']]], 'AppArn' => ['type' => 'string', 'max' => 1000], 'AppId' => ['type' => 'string', 'max' => 255, 'min' => 1], 'Apps' => ['type' => 'list', 'member' => ['shape' => 'App']], 'Artifact' => ['type' => 'structure', 'required' => ['artifactFileName', 'artifactId'], 'members' => ['artifactFileName' => ['shape' => 'ArtifactFileName'], 'artifactId' => ['shape' => 'ArtifactId']]], 'ArtifactFileName' => ['type' => 'string', 'max' => 1000], 'ArtifactId' => ['type' => 'string', 'max' => 255], 'ArtifactUrl' => ['type' => 'string', 'max' => 1000], 'Artifacts' => ['type' => 'list', 'member' => ['shape' => 'Artifact']], 'ArtifactsUrl' => ['type' => 'string', 'max' => 1000], 'AssociatedResource' => ['type' => 'string', 'max' => 2048, 'min' => 1], 'AssociatedResources' => ['type' => 'list', 'member' => ['shape' => 'AssociatedResource']], 'AutoBranchCreationConfig' => ['type' => 'structure', 'members' => ['stage' => ['shape' => 'Stage'], 'framework' => ['shape' => 'Framework'], 'enableAutoBuild' => ['shape' => 'EnableAutoBuild'], 'environmentVariables' => ['shape' => 'EnvironmentVariables'], 'basicAuthCredentials' => ['shape' => 'BasicAuthCredentials'], 'enableBasicAuth' => ['shape' => 'EnableBasicAuth'], 'buildSpec' => ['shape' => 'BuildSpec'], 'enablePullRequestPreview' => ['shape' => 'EnablePullRequestPreview'], 'pullRequestEnvironmentName' => ['shape' => 'PullRequestEnvironmentName']]], 'AutoBranchCreationPattern' => ['type' => 'string', 'max' => 2048, 'min' => 1], 'AutoBranchCreationPatterns' => ['type' => 'list', 'member' => ['shape' => 'AutoBranchCreationPattern']], 'BackendEnvironment' => ['type' => 'structure', 'required' => ['backendEnvironmentArn', 'environmentName', 'createTime', 'updateTime'], 'members' => ['backendEnvironmentArn' => ['shape' => 'BackendEnvironmentArn'], 'environmentName' => ['shape' => 'EnvironmentName'], 'stackName' => ['shape' => 'StackName'], 'deploymentArtifacts' => ['shape' => 'DeploymentArtifacts'], 'createTime' => ['shape' => 'CreateTime'], 'updateTime' => ['shape' => 'UpdateTime']]], 'BackendEnvironmentArn' => ['type' => 'string', 'max' => 1000, 'min' => 1], 'BackendEnvironments' => ['type' => 'list', 'member' => ['shape' => 'BackendEnvironment']], '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', 'displayName', 'enableNotification', 'createTime', 'updateTime', 'environmentVariables', 'enableAutoBuild', 'customDomains', 'framework', 'activeJobId', 'totalNumberOfJobs', 'enableBasicAuth', 'ttl', 'enablePullRequestPreview'], 'members' => ['branchArn' => ['shape' => 'BranchArn'], 'branchName' => ['shape' => 'BranchName'], 'description' => ['shape' => 'Description'], 'tags' => ['shape' => 'TagMap'], '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'], 'associatedResources' => ['shape' => 'AssociatedResources'], 'enablePullRequestPreview' => ['shape' => 'EnablePullRequestPreview'], 'pullRequestEnvironmentName' => ['shape' => 'PullRequestEnvironmentName'], 'destinationBranch' => ['shape' => 'BranchName'], 'sourceBranch' => ['shape' => 'BranchName'], 'backendEnvironmentArn' => ['shape' => 'BackendEnvironmentArn']]], '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], 'Code' => ['type' => 'string'], 'CommitId' => ['type' => 'string', 'max' => 255], 'CommitMessage' => ['type' => 'string', 'max' => 10000], 'CommitTime' => ['type' => 'timestamp'], 'Condition' => ['type' => 'string', 'max' => 2048, 'min' => 1], 'Context' => ['type' => 'string'], 'CreateAppRequest' => ['type' => 'structure', 'required' => ['name'], 'members' => ['name' => ['shape' => 'Name'], 'description' => ['shape' => 'Description'], 'repository' => ['shape' => 'Repository'], 'platform' => ['shape' => 'Platform'], 'iamServiceRoleArn' => ['shape' => 'ServiceRoleArn'], 'oauthToken' => ['shape' => 'OauthToken'], 'accessToken' => ['shape' => 'AccessToken'], 'environmentVariables' => ['shape' => 'EnvironmentVariables'], 'enableBranchAutoBuild' => ['shape' => 'EnableBranchAutoBuild'], 'enableBasicAuth' => ['shape' => 'EnableBasicAuth'], 'basicAuthCredentials' => ['shape' => 'BasicAuthCredentials'], 'customRules' => ['shape' => 'CustomRules'], 'tags' => ['shape' => 'TagMap'], 'buildSpec' => ['shape' => 'BuildSpec'], 'enableAutoBranchCreation' => ['shape' => 'EnableAutoBranchCreation'], 'autoBranchCreationPatterns' => ['shape' => 'AutoBranchCreationPatterns'], 'autoBranchCreationConfig' => ['shape' => 'AutoBranchCreationConfig']]], 'CreateAppResult' => ['type' => 'structure', 'required' => ['app'], 'members' => ['app' => ['shape' => 'App']]], 'CreateBackendEnvironmentRequest' => ['type' => 'structure', 'required' => ['appId', 'environmentName'], 'members' => ['appId' => ['shape' => 'AppId', 'location' => 'uri', 'locationName' => 'appId'], 'environmentName' => ['shape' => 'EnvironmentName'], 'stackName' => ['shape' => 'StackName'], 'deploymentArtifacts' => ['shape' => 'DeploymentArtifacts']]], 'CreateBackendEnvironmentResult' => ['type' => 'structure', 'required' => ['backendEnvironment'], 'members' => ['backendEnvironment' => ['shape' => 'BackendEnvironment']]], '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' => 'TagMap'], 'buildSpec' => ['shape' => 'BuildSpec'], 'ttl' => ['shape' => 'TTL'], 'displayName' => ['shape' => 'DisplayName'], 'enablePullRequestPreview' => ['shape' => 'EnablePullRequestPreview'], 'pullRequestEnvironmentName' => ['shape' => 'PullRequestEnvironmentName'], 'backendEnvironmentArn' => ['shape' => 'BackendEnvironmentArn']]], 'CreateBranchResult' => ['type' => 'structure', 'required' => ['branch'], 'members' => ['branch' => ['shape' => 'Branch']]], 'CreateDeploymentRequest' => ['type' => 'structure', 'required' => ['appId', 'branchName'], 'members' => ['appId' => ['shape' => 'AppId', 'location' => 'uri', 'locationName' => 'appId'], 'branchName' => ['shape' => 'BranchName', 'location' => 'uri', 'locationName' => 'branchName'], 'fileMap' => ['shape' => 'FileMap']]], 'CreateDeploymentResult' => ['type' => 'structure', 'required' => ['fileUploadUrls', 'zipUploadUrl'], 'members' => ['jobId' => ['shape' => 'JobId'], 'fileUploadUrls' => ['shape' => 'FileUploadUrls'], 'zipUploadUrl' => ['shape' => 'UploadUrl']]], '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'], 'CreateWebhookRequest' => ['type' => 'structure', 'required' => ['appId', 'branchName'], 'members' => ['appId' => ['shape' => 'AppId', 'location' => 'uri', 'locationName' => 'appId'], 'branchName' => ['shape' => 'BranchName'], 'description' => ['shape' => 'Description']]], 'CreateWebhookResult' => ['type' => 'structure', 'required' => ['webhook'], 'members' => ['webhook' => ['shape' => 'Webhook']]], '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']]], 'DeleteBackendEnvironmentRequest' => ['type' => 'structure', 'required' => ['appId', 'environmentName'], 'members' => ['appId' => ['shape' => 'AppId', 'location' => 'uri', 'locationName' => 'appId'], 'environmentName' => ['shape' => 'EnvironmentName', 'location' => 'uri', 'locationName' => 'environmentName']]], 'DeleteBackendEnvironmentResult' => ['type' => 'structure', 'required' => ['backendEnvironment'], 'members' => ['backendEnvironment' => ['shape' => 'BackendEnvironment']]], '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']]], 'DeleteWebhookRequest' => ['type' => 'structure', 'required' => ['webhookId'], 'members' => ['webhookId' => ['shape' => 'WebhookId', 'location' => 'uri', 'locationName' => 'webhookId']]], 'DeleteWebhookResult' => ['type' => 'structure', 'required' => ['webhook'], 'members' => ['webhook' => ['shape' => 'Webhook']]], 'DependentServiceFailureException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'ErrorMessage']], 'error' => ['httpStatusCode' => 503], 'exception' => \true], 'DeploymentArtifacts' => ['type' => 'string', 'max' => 1000, 'min' => 1], 'Description' => ['type' => 'string', 'max' => 1000], 'DisplayName' => ['type' => 'string', 'max' => 255], 'DomainAssociation' => ['type' => 'structure', 'required' => ['domainAssociationArn', 'domainName', 'enableAutoSubDomain', 'domainStatus', 'statusReason', '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', 'CREATING', 'REQUESTING_CERTIFICATE', 'UPDATING']], 'EnableAutoBranchCreation' => ['type' => 'boolean'], 'EnableAutoBuild' => ['type' => 'boolean'], 'EnableAutoSubDomain' => ['type' => 'boolean'], 'EnableBasicAuth' => ['type' => 'boolean'], 'EnableBranchAutoBuild' => ['type' => 'boolean'], 'EnableNotification' => ['type' => 'boolean'], 'EnablePullRequestPreview' => ['type' => 'boolean'], 'EndTime' => ['type' => 'timestamp'], 'EnvKey' => ['type' => 'string', 'max' => 255], 'EnvValue' => ['type' => 'string', 'max' => 1000], 'EnvironmentName' => ['type' => 'string', 'max' => 255, 'min' => 1], 'EnvironmentVariables' => ['type' => 'map', 'key' => ['shape' => 'EnvKey'], 'value' => ['shape' => 'EnvValue']], 'ErrorMessage' => ['type' => 'string', 'max' => 255], 'FileMap' => ['type' => 'map', 'key' => ['shape' => 'FileName'], 'value' => ['shape' => 'MD5Hash']], 'FileName' => ['type' => 'string', 'max' => 255], 'FileUploadUrls' => ['type' => 'map', 'key' => ['shape' => 'FileName'], 'value' => ['shape' => 'UploadUrl']], 'Framework' => ['type' => 'string', 'max' => 255], 'GenerateAccessLogsRequest' => ['type' => 'structure', 'required' => ['domainName', 'appId'], 'members' => ['startTime' => ['shape' => 'StartTime'], 'endTime' => ['shape' => 'EndTime'], 'domainName' => ['shape' => 'DomainName'], 'appId' => ['shape' => 'AppId', 'location' => 'uri', 'locationName' => 'appId']]], 'GenerateAccessLogsResult' => ['type' => 'structure', 'members' => ['logUrl' => ['shape' => 'LogUrl']]], 'GetAppRequest' => ['type' => 'structure', 'required' => ['appId'], 'members' => ['appId' => ['shape' => 'AppId', 'location' => 'uri', 'locationName' => 'appId']]], 'GetAppResult' => ['type' => 'structure', 'required' => ['app'], 'members' => ['app' => ['shape' => 'App']]], 'GetArtifactUrlRequest' => ['type' => 'structure', 'required' => ['artifactId'], 'members' => ['artifactId' => ['shape' => 'ArtifactId', 'location' => 'uri', 'locationName' => 'artifactId']]], 'GetArtifactUrlResult' => ['type' => 'structure', 'required' => ['artifactId', 'artifactUrl'], 'members' => ['artifactId' => ['shape' => 'ArtifactId'], 'artifactUrl' => ['shape' => 'ArtifactUrl']]], 'GetBackendEnvironmentRequest' => ['type' => 'structure', 'required' => ['appId', 'environmentName'], 'members' => ['appId' => ['shape' => 'AppId', 'location' => 'uri', 'locationName' => 'appId'], 'environmentName' => ['shape' => 'EnvironmentName', 'location' => 'uri', 'locationName' => 'environmentName']]], 'GetBackendEnvironmentResult' => ['type' => 'structure', 'required' => ['backendEnvironment'], 'members' => ['backendEnvironment' => ['shape' => 'BackendEnvironment']]], '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']]], 'GetWebhookRequest' => ['type' => 'structure', 'required' => ['webhookId'], 'members' => ['webhookId' => ['shape' => 'WebhookId', 'location' => 'uri', 'locationName' => 'webhookId']]], 'GetWebhookResult' => ['type' => 'structure', 'required' => ['webhook'], 'members' => ['webhook' => ['shape' => 'Webhook']]], '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', 'MANUAL', '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']]], 'ListArtifactsRequest' => ['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'], 'nextToken' => ['shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken'], 'maxResults' => ['shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults']]], 'ListArtifactsResult' => ['type' => 'structure', 'required' => ['artifacts'], 'members' => ['artifacts' => ['shape' => 'Artifacts'], 'nextToken' => ['shape' => 'NextToken']]], 'ListBackendEnvironmentsRequest' => ['type' => 'structure', 'required' => ['appId'], 'members' => ['appId' => ['shape' => 'AppId', 'location' => 'uri', 'locationName' => 'appId'], 'environmentName' => ['shape' => 'EnvironmentName'], 'nextToken' => ['shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken'], 'maxResults' => ['shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults']]], 'ListBackendEnvironmentsResult' => ['type' => 'structure', 'required' => ['backendEnvironments'], 'members' => ['backendEnvironments' => ['shape' => 'BackendEnvironments'], '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']]], 'ListTagsForResourceRequest' => ['type' => 'structure', 'required' => ['resourceArn'], 'members' => ['resourceArn' => ['shape' => 'ResourceArn', 'location' => 'uri', 'locationName' => 'resourceArn']]], 'ListTagsForResourceResponse' => ['type' => 'structure', 'members' => ['tags' => ['shape' => 'TagMap']]], 'ListWebhooksRequest' => ['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']]], 'ListWebhooksResult' => ['type' => 'structure', 'required' => ['webhooks'], 'members' => ['webhooks' => ['shape' => 'Webhooks'], 'nextToken' => ['shape' => 'NextToken']]], 'LogUrl' => ['type' => 'string', 'max' => 1000], 'MD5Hash' => ['type' => 'string', 'max' => 32], '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' => ['WEB']], 'ProductionBranch' => ['type' => 'structure', 'members' => ['lastDeployTime' => ['shape' => 'LastDeployTime'], 'status' => ['shape' => 'Status'], 'thumbnailUrl' => ['shape' => 'ThumbnailUrl'], 'branchName' => ['shape' => 'BranchName']]], 'PullRequestEnvironmentName' => ['type' => 'string', 'max' => 20], 'Repository' => ['type' => 'string', 'max' => 1000], 'ResourceArn' => ['type' => 'string', 'pattern' => '^arn:aws:amplify:.*'], 'ResourceNotFoundException' => ['type' => 'structure', 'required' => ['code', 'message'], 'members' => ['code' => ['shape' => 'Code'], 'message' => ['shape' => 'ErrorMessage']], 'error' => ['httpStatusCode' => 404], 'exception' => \true], 'Screenshots' => ['type' => 'map', 'key' => ['shape' => 'ThumbnailName'], 'value' => ['shape' => 'ThumbnailUrl']], 'ServiceRoleArn' => ['type' => 'string', 'max' => 1000, 'min' => 1], 'Source' => ['type' => 'string', 'max' => 2048, 'min' => 1], 'SourceUrl' => ['type' => 'string', 'max' => 1000], 'StackName' => ['type' => 'string', 'max' => 255, 'min' => 1], 'Stage' => ['type' => 'string', 'enum' => ['PRODUCTION', 'BETA', 'DEVELOPMENT', 'EXPERIMENTAL', 'PULL_REQUEST']], 'StartDeploymentRequest' => ['type' => 'structure', 'required' => ['appId', 'branchName'], 'members' => ['appId' => ['shape' => 'AppId', 'location' => 'uri', 'locationName' => 'appId'], 'branchName' => ['shape' => 'BranchName', 'location' => 'uri', 'locationName' => 'branchName'], 'jobId' => ['shape' => 'JobId'], 'sourceUrl' => ['shape' => 'SourceUrl']]], 'StartDeploymentResult' => ['type' => 'structure', 'required' => ['jobSummary'], 'members' => ['jobSummary' => ['shape' => 'JobSummary']]], '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' => 7, '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'], 'testArtifactsUrl' => ['shape' => 'TestArtifactsUrl'], 'testConfigUrl' => ['shape' => 'TestConfigUrl'], 'screenshots' => ['shape' => 'Screenshots'], 'statusReason' => ['shape' => 'StatusReason'], 'context' => ['shape' => 'Context']]], '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' => 128, 'min' => 1, 'pattern' => '^(?!aws:)[a-zA-Z+-=._:/]+$'], 'TagKeyList' => ['type' => 'list', 'member' => ['shape' => 'TagKey'], 'max' => 50, 'min' => 1], 'TagMap' => ['type' => 'map', 'key' => ['shape' => 'TagKey'], 'value' => ['shape' => 'TagValue'], 'max' => 50, 'min' => 1], 'TagResourceRequest' => ['type' => 'structure', 'required' => ['resourceArn', 'tags'], 'members' => ['resourceArn' => ['shape' => 'ResourceArn', 'location' => 'uri', 'locationName' => 'resourceArn'], 'tags' => ['shape' => 'TagMap']]], 'TagResourceResponse' => ['type' => 'structure', 'members' => []], 'TagValue' => ['type' => 'string', 'max' => 256], 'Target' => ['type' => 'string', 'max' => 2048, 'min' => 1], 'TestArtifactsUrl' => ['type' => 'string', 'max' => 1000], 'TestConfigUrl' => ['type' => 'string', 'max' => 1000], '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], 'UntagResourceRequest' => ['type' => 'structure', 'required' => ['resourceArn', 'tagKeys'], 'members' => ['resourceArn' => ['shape' => 'ResourceArn', 'location' => 'uri', 'locationName' => 'resourceArn'], 'tagKeys' => ['shape' => 'TagKeyList', 'location' => 'querystring', 'locationName' => 'tagKeys']]], 'UntagResourceResponse' => ['type' => 'structure', 'members' => []], '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'], 'enableAutoBranchCreation' => ['shape' => 'EnableAutoBranchCreation'], 'autoBranchCreationPatterns' => ['shape' => 'AutoBranchCreationPatterns'], 'autoBranchCreationConfig' => ['shape' => 'AutoBranchCreationConfig'], 'repository' => ['shape' => 'Repository'], 'oauthToken' => ['shape' => 'OauthToken'], 'accessToken' => ['shape' => 'AccessToken']]], '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'], 'displayName' => ['shape' => 'DisplayName'], 'enablePullRequestPreview' => ['shape' => 'EnablePullRequestPreview'], 'pullRequestEnvironmentName' => ['shape' => 'PullRequestEnvironmentName'], 'backendEnvironmentArn' => ['shape' => 'BackendEnvironmentArn']]], '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'], 'UpdateWebhookRequest' => ['type' => 'structure', 'required' => ['webhookId'], 'members' => ['webhookId' => ['shape' => 'WebhookId', 'location' => 'uri', 'locationName' => 'webhookId'], 'branchName' => ['shape' => 'BranchName'], 'description' => ['shape' => 'Description']]], 'UpdateWebhookResult' => ['type' => 'structure', 'required' => ['webhook'], 'members' => ['webhook' => ['shape' => 'Webhook']]], 'UploadUrl' => ['type' => 'string', 'max' => 1000], 'Verified' => ['type' => 'boolean'], 'Webhook' => ['type' => 'structure', 'required' => ['webhookArn', 'webhookId', 'webhookUrl', 'branchName', 'description', 'createTime', 'updateTime'], 'members' => ['webhookArn' => ['shape' => 'WebhookArn'], 'webhookId' => ['shape' => 'WebhookId'], 'webhookUrl' => ['shape' => 'WebhookUrl'], 'branchName' => ['shape' => 'BranchName'], 'description' => ['shape' => 'Description'], 'createTime' => ['shape' => 'CreateTime'], 'updateTime' => ['shape' => 'UpdateTime']]], 'WebhookArn' => ['type' => 'string', 'max' => 1000], 'WebhookId' => ['type' => 'string', 'max' => 255], 'WebhookUrl' => ['type' => 'string', 'max' => 1000], 'Webhooks' => ['type' => 'list', 'member' => ['shape' => 'Webhook']]]];
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']]], 'CreateBackendEnvironment' => ['name' => 'CreateBackendEnvironment', 'http' => ['method' => 'POST', 'requestUri' => '/apps/{appId}/backendenvironments'], 'input' => ['shape' => 'CreateBackendEnvironmentRequest'], 'output' => ['shape' => 'CreateBackendEnvironmentResult'], 'errors' => [['shape' => 'BadRequestException'], ['shape' => 'UnauthorizedException'], ['shape' => 'NotFoundException'], ['shape' => 'InternalFailureException'], ['shape' => 'LimitExceededException']]], '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']]], 'CreateDeployment' => ['name' => 'CreateDeployment', 'http' => ['method' => 'POST', 'requestUri' => '/apps/{appId}/branches/{branchName}/deployments'], 'input' => ['shape' => 'CreateDeploymentRequest'], 'output' => ['shape' => 'CreateDeploymentResult'], 'errors' => [['shape' => 'BadRequestException'], ['shape' => 'UnauthorizedException'], ['shape' => 'InternalFailureException'], ['shape' => 'LimitExceededException']]], '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']]], 'CreateWebhook' => ['name' => 'CreateWebhook', 'http' => ['method' => 'POST', 'requestUri' => '/apps/{appId}/webhooks'], 'input' => ['shape' => 'CreateWebhookRequest'], 'output' => ['shape' => 'CreateWebhookResult'], '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']]], 'DeleteBackendEnvironment' => ['name' => 'DeleteBackendEnvironment', 'http' => ['method' => 'DELETE', 'requestUri' => '/apps/{appId}/backendenvironments/{environmentName}'], 'input' => ['shape' => 'DeleteBackendEnvironmentRequest'], 'output' => ['shape' => 'DeleteBackendEnvironmentResult'], 'errors' => [['shape' => 'BadRequestException'], ['shape' => 'UnauthorizedException'], ['shape' => 'NotFoundException'], ['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']]], 'DeleteWebhook' => ['name' => 'DeleteWebhook', 'http' => ['method' => 'DELETE', 'requestUri' => '/webhooks/{webhookId}'], 'input' => ['shape' => 'DeleteWebhookRequest'], 'output' => ['shape' => 'DeleteWebhookResult'], 'errors' => [['shape' => 'BadRequestException'], ['shape' => 'UnauthorizedException'], ['shape' => 'InternalFailureException'], ['shape' => 'NotFoundException'], ['shape' => 'LimitExceededException']]], 'GenerateAccessLogs' => ['name' => 'GenerateAccessLogs', 'http' => ['method' => 'POST', 'requestUri' => '/apps/{appId}/accesslogs'], 'input' => ['shape' => 'GenerateAccessLogsRequest'], 'output' => ['shape' => 'GenerateAccessLogsResult'], 'errors' => [['shape' => 'NotFoundException'], ['shape' => 'BadRequestException'], ['shape' => 'UnauthorizedException'], ['shape' => 'InternalFailureException']]], 'GetApp' => ['name' => 'GetApp', 'http' => ['method' => 'GET', 'requestUri' => '/apps/{appId}'], 'input' => ['shape' => 'GetAppRequest'], 'output' => ['shape' => 'GetAppResult'], 'errors' => [['shape' => 'BadRequestException'], ['shape' => 'NotFoundException'], ['shape' => 'UnauthorizedException'], ['shape' => 'InternalFailureException']]], 'GetArtifactUrl' => ['name' => 'GetArtifactUrl', 'http' => ['method' => 'GET', 'requestUri' => '/artifacts/{artifactId}'], 'input' => ['shape' => 'GetArtifactUrlRequest'], 'output' => ['shape' => 'GetArtifactUrlResult'], 'errors' => [['shape' => 'BadRequestException'], ['shape' => 'UnauthorizedException'], ['shape' => 'InternalFailureException'], ['shape' => 'NotFoundException'], ['shape' => 'LimitExceededException']]], 'GetBackendEnvironment' => ['name' => 'GetBackendEnvironment', 'http' => ['method' => 'GET', 'requestUri' => '/apps/{appId}/backendenvironments/{environmentName}'], 'input' => ['shape' => 'GetBackendEnvironmentRequest'], 'output' => ['shape' => 'GetBackendEnvironmentResult'], 'errors' => [['shape' => 'BadRequestException'], ['shape' => 'UnauthorizedException'], ['shape' => 'NotFoundException'], ['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']]], 'GetWebhook' => ['name' => 'GetWebhook', 'http' => ['method' => 'GET', 'requestUri' => '/webhooks/{webhookId}'], 'input' => ['shape' => 'GetWebhookRequest'], 'output' => ['shape' => 'GetWebhookResult'], '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']]], 'ListArtifacts' => ['name' => 'ListArtifacts', 'http' => ['method' => 'GET', 'requestUri' => '/apps/{appId}/branches/{branchName}/jobs/{jobId}/artifacts'], 'input' => ['shape' => 'ListArtifactsRequest'], 'output' => ['shape' => 'ListArtifactsResult'], 'errors' => [['shape' => 'BadRequestException'], ['shape' => 'UnauthorizedException'], ['shape' => 'InternalFailureException'], ['shape' => 'LimitExceededException']]], 'ListBackendEnvironments' => ['name' => 'ListBackendEnvironments', 'http' => ['method' => 'GET', 'requestUri' => '/apps/{appId}/backendenvironments'], 'input' => ['shape' => 'ListBackendEnvironmentsRequest'], 'output' => ['shape' => 'ListBackendEnvironmentsResult'], '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']]], 'ListTagsForResource' => ['name' => 'ListTagsForResource', 'http' => ['method' => 'GET', 'requestUri' => '/tags/{resourceArn}'], 'input' => ['shape' => 'ListTagsForResourceRequest'], 'output' => ['shape' => 'ListTagsForResourceResponse'], 'errors' => [['shape' => 'InternalFailureException'], ['shape' => 'BadRequestException'], ['shape' => 'ResourceNotFoundException']]], 'ListWebhooks' => ['name' => 'ListWebhooks', 'http' => ['method' => 'GET', 'requestUri' => '/apps/{appId}/webhooks'], 'input' => ['shape' => 'ListWebhooksRequest'], 'output' => ['shape' => 'ListWebhooksResult'], 'errors' => [['shape' => 'BadRequestException'], ['shape' => 'UnauthorizedException'], ['shape' => 'InternalFailureException'], ['shape' => 'LimitExceededException']]], 'StartDeployment' => ['name' => 'StartDeployment', 'http' => ['method' => 'POST', 'requestUri' => '/apps/{appId}/branches/{branchName}/deployments/start'], 'input' => ['shape' => 'StartDeploymentRequest'], 'output' => ['shape' => 'StartDeploymentResult'], 'errors' => [['shape' => 'BadRequestException'], ['shape' => 'UnauthorizedException'], ['shape' => 'InternalFailureException'], ['shape' => 'NotFoundException'], ['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']]], 'TagResource' => ['name' => 'TagResource', 'http' => ['method' => 'POST', 'requestUri' => '/tags/{resourceArn}'], 'input' => ['shape' => 'TagResourceRequest'], 'output' => ['shape' => 'TagResourceResponse'], 'errors' => [['shape' => 'InternalFailureException'], ['shape' => 'BadRequestException'], ['shape' => 'ResourceNotFoundException']]], 'UntagResource' => ['name' => 'UntagResource', 'http' => ['method' => 'DELETE', 'requestUri' => '/tags/{resourceArn}'], 'input' => ['shape' => 'UntagResourceRequest'], 'output' => ['shape' => 'UntagResourceResponse'], 'errors' => [['shape' => 'InternalFailureException'], ['shape' => 'BadRequestException'], ['shape' => 'ResourceNotFoundException']]], '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']]], 'UpdateWebhook' => ['name' => 'UpdateWebhook', 'http' => ['method' => 'POST', 'requestUri' => '/webhooks/{webhookId}'], 'input' => ['shape' => 'UpdateWebhookRequest'], 'output' => ['shape' => 'UpdateWebhookResult'], 'errors' => [['shape' => 'BadRequestException'], ['shape' => 'UnauthorizedException'], ['shape' => 'NotFoundException'], ['shape' => 'InternalFailureException'], ['shape' => 'DependentServiceFailureException']]]], 'shapes' => ['AccessToken' => ['type' => 'string', 'max' => 255, 'min' => 1, 'sensitive' => \true], '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' => 'TagMap'], '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'], 'enableBranchAutoDeletion' => ['shape' => 'EnableBranchAutoDeletion'], 'enableBasicAuth' => ['shape' => 'EnableBasicAuth'], 'basicAuthCredentials' => ['shape' => 'BasicAuthCredentials'], 'customRules' => ['shape' => 'CustomRules'], 'productionBranch' => ['shape' => 'ProductionBranch'], 'buildSpec' => ['shape' => 'BuildSpec'], 'enableAutoBranchCreation' => ['shape' => 'EnableAutoBranchCreation'], 'autoBranchCreationPatterns' => ['shape' => 'AutoBranchCreationPatterns'], 'autoBranchCreationConfig' => ['shape' => 'AutoBranchCreationConfig']]], 'AppArn' => ['type' => 'string', 'max' => 1000], 'AppId' => ['type' => 'string', 'max' => 255, 'min' => 1], 'Apps' => ['type' => 'list', 'member' => ['shape' => 'App']], 'Artifact' => ['type' => 'structure', 'required' => ['artifactFileName', 'artifactId'], 'members' => ['artifactFileName' => ['shape' => 'ArtifactFileName'], 'artifactId' => ['shape' => 'ArtifactId']]], 'ArtifactFileName' => ['type' => 'string', 'max' => 1000], 'ArtifactId' => ['type' => 'string', 'max' => 255], 'ArtifactUrl' => ['type' => 'string', 'max' => 1000], 'Artifacts' => ['type' => 'list', 'member' => ['shape' => 'Artifact']], 'ArtifactsUrl' => ['type' => 'string', 'max' => 1000], 'AssociatedResource' => ['type' => 'string', 'max' => 2048, 'min' => 1], 'AssociatedResources' => ['type' => 'list', 'member' => ['shape' => 'AssociatedResource']], 'AutoBranchCreationConfig' => ['type' => 'structure', 'members' => ['stage' => ['shape' => 'Stage'], 'framework' => ['shape' => 'Framework'], 'enableAutoBuild' => ['shape' => 'EnableAutoBuild'], 'environmentVariables' => ['shape' => 'EnvironmentVariables'], 'basicAuthCredentials' => ['shape' => 'BasicAuthCredentials'], 'enableBasicAuth' => ['shape' => 'EnableBasicAuth'], 'buildSpec' => ['shape' => 'BuildSpec'], 'enablePullRequestPreview' => ['shape' => 'EnablePullRequestPreview'], 'pullRequestEnvironmentName' => ['shape' => 'PullRequestEnvironmentName']]], 'AutoBranchCreationPattern' => ['type' => 'string', 'max' => 2048, 'min' => 1], 'AutoBranchCreationPatterns' => ['type' => 'list', 'member' => ['shape' => 'AutoBranchCreationPattern']], 'AutoSubDomainCreationPattern' => ['type' => 'string', 'max' => 2048, 'min' => 1], 'AutoSubDomainCreationPatterns' => ['type' => 'list', 'member' => ['shape' => 'AutoSubDomainCreationPattern']], 'AutoSubDomainIAMRole' => ['type' => 'string', 'max' => 1000, 'pattern' => '^$|^arn:aws:iam::\\d{12}:role.+'], 'BackendEnvironment' => ['type' => 'structure', 'required' => ['backendEnvironmentArn', 'environmentName', 'createTime', 'updateTime'], 'members' => ['backendEnvironmentArn' => ['shape' => 'BackendEnvironmentArn'], 'environmentName' => ['shape' => 'EnvironmentName'], 'stackName' => ['shape' => 'StackName'], 'deploymentArtifacts' => ['shape' => 'DeploymentArtifacts'], 'createTime' => ['shape' => 'CreateTime'], 'updateTime' => ['shape' => 'UpdateTime']]], 'BackendEnvironmentArn' => ['type' => 'string', 'max' => 1000, 'min' => 1], 'BackendEnvironments' => ['type' => 'list', 'member' => ['shape' => 'BackendEnvironment']], 'BadRequestException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'ErrorMessage']], 'error' => ['httpStatusCode' => 400], 'exception' => \true], 'BasicAuthCredentials' => ['type' => 'string', 'max' => 2000, 'sensitive' => \true], 'Branch' => ['type' => 'structure', 'required' => ['branchArn', 'branchName', 'description', 'stage', 'displayName', 'enableNotification', 'createTime', 'updateTime', 'environmentVariables', 'enableAutoBuild', 'customDomains', 'framework', 'activeJobId', 'totalNumberOfJobs', 'enableBasicAuth', 'ttl', 'enablePullRequestPreview'], 'members' => ['branchArn' => ['shape' => 'BranchArn'], 'branchName' => ['shape' => 'BranchName'], 'description' => ['shape' => 'Description'], 'tags' => ['shape' => 'TagMap'], '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'], 'associatedResources' => ['shape' => 'AssociatedResources'], 'enablePullRequestPreview' => ['shape' => 'EnablePullRequestPreview'], 'pullRequestEnvironmentName' => ['shape' => 'PullRequestEnvironmentName'], 'destinationBranch' => ['shape' => 'BranchName'], 'sourceBranch' => ['shape' => 'BranchName'], 'backendEnvironmentArn' => ['shape' => 'BackendEnvironmentArn']]], '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], 'Code' => ['type' => 'string'], 'CommitId' => ['type' => 'string', 'max' => 255], 'CommitMessage' => ['type' => 'string', 'max' => 10000], 'CommitTime' => ['type' => 'timestamp'], 'Condition' => ['type' => 'string', 'max' => 2048, 'min' => 1], 'Context' => ['type' => 'string'], 'CreateAppRequest' => ['type' => 'structure', 'required' => ['name'], 'members' => ['name' => ['shape' => 'Name'], 'description' => ['shape' => 'Description'], 'repository' => ['shape' => 'Repository'], 'platform' => ['shape' => 'Platform'], 'iamServiceRoleArn' => ['shape' => 'ServiceRoleArn'], 'oauthToken' => ['shape' => 'OauthToken'], 'accessToken' => ['shape' => 'AccessToken'], 'environmentVariables' => ['shape' => 'EnvironmentVariables'], 'enableBranchAutoBuild' => ['shape' => 'EnableBranchAutoBuild'], 'enableBranchAutoDeletion' => ['shape' => 'EnableBranchAutoDeletion'], 'enableBasicAuth' => ['shape' => 'EnableBasicAuth'], 'basicAuthCredentials' => ['shape' => 'BasicAuthCredentials'], 'customRules' => ['shape' => 'CustomRules'], 'tags' => ['shape' => 'TagMap'], 'buildSpec' => ['shape' => 'BuildSpec'], 'enableAutoBranchCreation' => ['shape' => 'EnableAutoBranchCreation'], 'autoBranchCreationPatterns' => ['shape' => 'AutoBranchCreationPatterns'], 'autoBranchCreationConfig' => ['shape' => 'AutoBranchCreationConfig']]], 'CreateAppResult' => ['type' => 'structure', 'required' => ['app'], 'members' => ['app' => ['shape' => 'App']]], 'CreateBackendEnvironmentRequest' => ['type' => 'structure', 'required' => ['appId', 'environmentName'], 'members' => ['appId' => ['shape' => 'AppId', 'location' => 'uri', 'locationName' => 'appId'], 'environmentName' => ['shape' => 'EnvironmentName'], 'stackName' => ['shape' => 'StackName'], 'deploymentArtifacts' => ['shape' => 'DeploymentArtifacts']]], 'CreateBackendEnvironmentResult' => ['type' => 'structure', 'required' => ['backendEnvironment'], 'members' => ['backendEnvironment' => ['shape' => 'BackendEnvironment']]], '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' => 'TagMap'], 'buildSpec' => ['shape' => 'BuildSpec'], 'ttl' => ['shape' => 'TTL'], 'displayName' => ['shape' => 'DisplayName'], 'enablePullRequestPreview' => ['shape' => 'EnablePullRequestPreview'], 'pullRequestEnvironmentName' => ['shape' => 'PullRequestEnvironmentName'], 'backendEnvironmentArn' => ['shape' => 'BackendEnvironmentArn']]], 'CreateBranchResult' => ['type' => 'structure', 'required' => ['branch'], 'members' => ['branch' => ['shape' => 'Branch']]], 'CreateDeploymentRequest' => ['type' => 'structure', 'required' => ['appId', 'branchName'], 'members' => ['appId' => ['shape' => 'AppId', 'location' => 'uri', 'locationName' => 'appId'], 'branchName' => ['shape' => 'BranchName', 'location' => 'uri', 'locationName' => 'branchName'], 'fileMap' => ['shape' => 'FileMap']]], 'CreateDeploymentResult' => ['type' => 'structure', 'required' => ['fileUploadUrls', 'zipUploadUrl'], 'members' => ['jobId' => ['shape' => 'JobId'], 'fileUploadUrls' => ['shape' => 'FileUploadUrls'], 'zipUploadUrl' => ['shape' => 'UploadUrl']]], 'CreateDomainAssociationRequest' => ['type' => 'structure', 'required' => ['appId', 'domainName', 'subDomainSettings'], 'members' => ['appId' => ['shape' => 'AppId', 'location' => 'uri', 'locationName' => 'appId'], 'domainName' => ['shape' => 'DomainName'], 'enableAutoSubDomain' => ['shape' => 'EnableAutoSubDomain'], 'subDomainSettings' => ['shape' => 'SubDomainSettings'], 'autoSubDomainCreationPatterns' => ['shape' => 'AutoSubDomainCreationPatterns'], 'autoSubDomainIAMRole' => ['shape' => 'AutoSubDomainIAMRole']]], 'CreateDomainAssociationResult' => ['type' => 'structure', 'required' => ['domainAssociation'], 'members' => ['domainAssociation' => ['shape' => 'DomainAssociation']]], 'CreateTime' => ['type' => 'timestamp'], 'CreateWebhookRequest' => ['type' => 'structure', 'required' => ['appId', 'branchName'], 'members' => ['appId' => ['shape' => 'AppId', 'location' => 'uri', 'locationName' => 'appId'], 'branchName' => ['shape' => 'BranchName'], 'description' => ['shape' => 'Description']]], 'CreateWebhookResult' => ['type' => 'structure', 'required' => ['webhook'], 'members' => ['webhook' => ['shape' => 'Webhook']]], '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']]], 'DeleteBackendEnvironmentRequest' => ['type' => 'structure', 'required' => ['appId', 'environmentName'], 'members' => ['appId' => ['shape' => 'AppId', 'location' => 'uri', 'locationName' => 'appId'], 'environmentName' => ['shape' => 'EnvironmentName', 'location' => 'uri', 'locationName' => 'environmentName']]], 'DeleteBackendEnvironmentResult' => ['type' => 'structure', 'required' => ['backendEnvironment'], 'members' => ['backendEnvironment' => ['shape' => 'BackendEnvironment']]], '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']]], 'DeleteWebhookRequest' => ['type' => 'structure', 'required' => ['webhookId'], 'members' => ['webhookId' => ['shape' => 'WebhookId', 'location' => 'uri', 'locationName' => 'webhookId']]], 'DeleteWebhookResult' => ['type' => 'structure', 'required' => ['webhook'], 'members' => ['webhook' => ['shape' => 'Webhook']]], 'DependentServiceFailureException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'ErrorMessage']], 'error' => ['httpStatusCode' => 503], 'exception' => \true], 'DeploymentArtifacts' => ['type' => 'string', 'max' => 1000, 'min' => 1], 'Description' => ['type' => 'string', 'max' => 1000], 'DisplayName' => ['type' => 'string', 'max' => 255], 'DomainAssociation' => ['type' => 'structure', 'required' => ['domainAssociationArn', 'domainName', 'enableAutoSubDomain', 'domainStatus', 'statusReason', 'subDomains'], 'members' => ['domainAssociationArn' => ['shape' => 'DomainAssociationArn'], 'domainName' => ['shape' => 'DomainName'], 'enableAutoSubDomain' => ['shape' => 'EnableAutoSubDomain'], 'autoSubDomainCreationPatterns' => ['shape' => 'AutoSubDomainCreationPatterns'], 'autoSubDomainIAMRole' => ['shape' => 'AutoSubDomainIAMRole'], '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', 'CREATING', 'REQUESTING_CERTIFICATE', 'UPDATING']], 'EnableAutoBranchCreation' => ['type' => 'boolean'], 'EnableAutoBuild' => ['type' => 'boolean'], 'EnableAutoSubDomain' => ['type' => 'boolean'], 'EnableBasicAuth' => ['type' => 'boolean'], 'EnableBranchAutoBuild' => ['type' => 'boolean'], 'EnableBranchAutoDeletion' => ['type' => 'boolean'], 'EnableNotification' => ['type' => 'boolean'], 'EnablePullRequestPreview' => ['type' => 'boolean'], 'EndTime' => ['type' => 'timestamp'], 'EnvKey' => ['type' => 'string', 'max' => 255], 'EnvValue' => ['type' => 'string', 'max' => 1000], 'EnvironmentName' => ['type' => 'string', 'max' => 255, 'min' => 1], 'EnvironmentVariables' => ['type' => 'map', 'key' => ['shape' => 'EnvKey'], 'value' => ['shape' => 'EnvValue']], 'ErrorMessage' => ['type' => 'string', 'max' => 255], 'FileMap' => ['type' => 'map', 'key' => ['shape' => 'FileName'], 'value' => ['shape' => 'MD5Hash']], 'FileName' => ['type' => 'string', 'max' => 255], 'FileUploadUrls' => ['type' => 'map', 'key' => ['shape' => 'FileName'], 'value' => ['shape' => 'UploadUrl']], 'Framework' => ['type' => 'string', 'max' => 255], 'GenerateAccessLogsRequest' => ['type' => 'structure', 'required' => ['domainName', 'appId'], 'members' => ['startTime' => ['shape' => 'StartTime'], 'endTime' => ['shape' => 'EndTime'], 'domainName' => ['shape' => 'DomainName'], 'appId' => ['shape' => 'AppId', 'location' => 'uri', 'locationName' => 'appId']]], 'GenerateAccessLogsResult' => ['type' => 'structure', 'members' => ['logUrl' => ['shape' => 'LogUrl']]], 'GetAppRequest' => ['type' => 'structure', 'required' => ['appId'], 'members' => ['appId' => ['shape' => 'AppId', 'location' => 'uri', 'locationName' => 'appId']]], 'GetAppResult' => ['type' => 'structure', 'required' => ['app'], 'members' => ['app' => ['shape' => 'App']]], 'GetArtifactUrlRequest' => ['type' => 'structure', 'required' => ['artifactId'], 'members' => ['artifactId' => ['shape' => 'ArtifactId', 'location' => 'uri', 'locationName' => 'artifactId']]], 'GetArtifactUrlResult' => ['type' => 'structure', 'required' => ['artifactId', 'artifactUrl'], 'members' => ['artifactId' => ['shape' => 'ArtifactId'], 'artifactUrl' => ['shape' => 'ArtifactUrl']]], 'GetBackendEnvironmentRequest' => ['type' => 'structure', 'required' => ['appId', 'environmentName'], 'members' => ['appId' => ['shape' => 'AppId', 'location' => 'uri', 'locationName' => 'appId'], 'environmentName' => ['shape' => 'EnvironmentName', 'location' => 'uri', 'locationName' => 'environmentName']]], 'GetBackendEnvironmentResult' => ['type' => 'structure', 'required' => ['backendEnvironment'], 'members' => ['backendEnvironment' => ['shape' => 'BackendEnvironment']]], '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']]], 'GetWebhookRequest' => ['type' => 'structure', 'required' => ['webhookId'], 'members' => ['webhookId' => ['shape' => 'WebhookId', 'location' => 'uri', 'locationName' => 'webhookId']]], 'GetWebhookResult' => ['type' => 'structure', 'required' => ['webhook'], 'members' => ['webhook' => ['shape' => 'Webhook']]], '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', 'MANUAL', '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']]], 'ListArtifactsRequest' => ['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'], 'nextToken' => ['shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken'], 'maxResults' => ['shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults']]], 'ListArtifactsResult' => ['type' => 'structure', 'required' => ['artifacts'], 'members' => ['artifacts' => ['shape' => 'Artifacts'], 'nextToken' => ['shape' => 'NextToken']]], 'ListBackendEnvironmentsRequest' => ['type' => 'structure', 'required' => ['appId'], 'members' => ['appId' => ['shape' => 'AppId', 'location' => 'uri', 'locationName' => 'appId'], 'environmentName' => ['shape' => 'EnvironmentName', 'location' => 'querystring', 'locationName' => 'environmentName'], 'nextToken' => ['shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken'], 'maxResults' => ['shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults']]], 'ListBackendEnvironmentsResult' => ['type' => 'structure', 'required' => ['backendEnvironments'], 'members' => ['backendEnvironments' => ['shape' => 'BackendEnvironments'], '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']]], 'ListTagsForResourceRequest' => ['type' => 'structure', 'required' => ['resourceArn'], 'members' => ['resourceArn' => ['shape' => 'ResourceArn', 'location' => 'uri', 'locationName' => 'resourceArn']]], 'ListTagsForResourceResponse' => ['type' => 'structure', 'members' => ['tags' => ['shape' => 'TagMap']]], 'ListWebhooksRequest' => ['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']]], 'ListWebhooksResult' => ['type' => 'structure', 'required' => ['webhooks'], 'members' => ['webhooks' => ['shape' => 'Webhooks'], 'nextToken' => ['shape' => 'NextToken']]], 'LogUrl' => ['type' => 'string', 'max' => 1000], 'MD5Hash' => ['type' => 'string', 'max' => 32], '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, 'sensitive' => \true], 'Platform' => ['type' => 'string', 'enum' => ['WEB']], 'ProductionBranch' => ['type' => 'structure', 'members' => ['lastDeployTime' => ['shape' => 'LastDeployTime'], 'status' => ['shape' => 'Status'], 'thumbnailUrl' => ['shape' => 'ThumbnailUrl'], 'branchName' => ['shape' => 'BranchName']]], 'PullRequestEnvironmentName' => ['type' => 'string', 'max' => 20], 'Repository' => ['type' => 'string', 'max' => 1000], 'ResourceArn' => ['type' => 'string', 'pattern' => '^arn:aws:amplify:.*'], 'ResourceNotFoundException' => ['type' => 'structure', 'required' => ['code', 'message'], 'members' => ['code' => ['shape' => 'Code'], 'message' => ['shape' => 'ErrorMessage']], 'error' => ['httpStatusCode' => 404], 'exception' => \true], 'Screenshots' => ['type' => 'map', 'key' => ['shape' => 'ThumbnailName'], 'value' => ['shape' => 'ThumbnailUrl']], 'ServiceRoleArn' => ['type' => 'string', 'max' => 1000, 'min' => 1], 'Source' => ['type' => 'string', 'max' => 2048, 'min' => 1], 'SourceUrl' => ['type' => 'string', 'max' => 1000], 'StackName' => ['type' => 'string', 'max' => 255, 'min' => 1], 'Stage' => ['type' => 'string', 'enum' => ['PRODUCTION', 'BETA', 'DEVELOPMENT', 'EXPERIMENTAL', 'PULL_REQUEST']], 'StartDeploymentRequest' => ['type' => 'structure', 'required' => ['appId', 'branchName'], 'members' => ['appId' => ['shape' => 'AppId', 'location' => 'uri', 'locationName' => 'appId'], 'branchName' => ['shape' => 'BranchName', 'location' => 'uri', 'locationName' => 'branchName'], 'jobId' => ['shape' => 'JobId'], 'sourceUrl' => ['shape' => 'SourceUrl']]], 'StartDeploymentResult' => ['type' => 'structure', 'required' => ['jobSummary'], 'members' => ['jobSummary' => ['shape' => 'JobSummary']]], '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' => 7, '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'], 'testArtifactsUrl' => ['shape' => 'TestArtifactsUrl'], 'testConfigUrl' => ['shape' => 'TestConfigUrl'], 'screenshots' => ['shape' => 'Screenshots'], 'statusReason' => ['shape' => 'StatusReason'], 'context' => ['shape' => 'Context']]], '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' => 128, 'min' => 1, 'pattern' => '^(?!aws:)[a-zA-Z+-=._:/]+$'], 'TagKeyList' => ['type' => 'list', 'member' => ['shape' => 'TagKey'], 'max' => 50, 'min' => 1], 'TagMap' => ['type' => 'map', 'key' => ['shape' => 'TagKey'], 'value' => ['shape' => 'TagValue'], 'max' => 50, 'min' => 1], 'TagResourceRequest' => ['type' => 'structure', 'required' => ['resourceArn', 'tags'], 'members' => ['resourceArn' => ['shape' => 'ResourceArn', 'location' => 'uri', 'locationName' => 'resourceArn'], 'tags' => ['shape' => 'TagMap']]], 'TagResourceResponse' => ['type' => 'structure', 'members' => []], 'TagValue' => ['type' => 'string', 'max' => 256], 'Target' => ['type' => 'string', 'max' => 2048, 'min' => 1], 'TestArtifactsUrl' => ['type' => 'string', 'max' => 1000], 'TestConfigUrl' => ['type' => 'string', 'max' => 1000], '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], 'UntagResourceRequest' => ['type' => 'structure', 'required' => ['resourceArn', 'tagKeys'], 'members' => ['resourceArn' => ['shape' => 'ResourceArn', 'location' => 'uri', 'locationName' => 'resourceArn'], 'tagKeys' => ['shape' => 'TagKeyList', 'location' => 'querystring', 'locationName' => 'tagKeys']]], 'UntagResourceResponse' => ['type' => 'structure', 'members' => []], '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'], 'enableBranchAutoDeletion' => ['shape' => 'EnableBranchAutoDeletion'], 'enableBasicAuth' => ['shape' => 'EnableBasicAuth'], 'basicAuthCredentials' => ['shape' => 'BasicAuthCredentials'], 'customRules' => ['shape' => 'CustomRules'], 'buildSpec' => ['shape' => 'BuildSpec'], 'enableAutoBranchCreation' => ['shape' => 'EnableAutoBranchCreation'], 'autoBranchCreationPatterns' => ['shape' => 'AutoBranchCreationPatterns'], 'autoBranchCreationConfig' => ['shape' => 'AutoBranchCreationConfig'], 'repository' => ['shape' => 'Repository'], 'oauthToken' => ['shape' => 'OauthToken'], 'accessToken' => ['shape' => 'AccessToken']]], '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'], 'displayName' => ['shape' => 'DisplayName'], 'enablePullRequestPreview' => ['shape' => 'EnablePullRequestPreview'], 'pullRequestEnvironmentName' => ['shape' => 'PullRequestEnvironmentName'], 'backendEnvironmentArn' => ['shape' => 'BackendEnvironmentArn']]], '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'], 'autoSubDomainCreationPatterns' => ['shape' => 'AutoSubDomainCreationPatterns'], 'autoSubDomainIAMRole' => ['shape' => 'AutoSubDomainIAMRole']]], 'UpdateDomainAssociationResult' => ['type' => 'structure', 'required' => ['domainAssociation'], 'members' => ['domainAssociation' => ['shape' => 'DomainAssociation']]], 'UpdateTime' => ['type' => 'timestamp'], 'UpdateWebhookRequest' => ['type' => 'structure', 'required' => ['webhookId'], 'members' => ['webhookId' => ['shape' => 'WebhookId', 'location' => 'uri', 'locationName' => 'webhookId'], 'branchName' => ['shape' => 'BranchName'], 'description' => ['shape' => 'Description']]], 'UpdateWebhookResult' => ['type' => 'structure', 'required' => ['webhook'], 'members' => ['webhook' => ['shape' => 'Webhook']]], 'UploadUrl' => ['type' => 'string', 'max' => 1000], 'Verified' => ['type' => 'boolean'], 'Webhook' => ['type' => 'structure', 'required' => ['webhookArn', 'webhookId', 'webhookUrl', 'branchName', 'description', 'createTime', 'updateTime'], 'members' => ['webhookArn' => ['shape' => 'WebhookArn'], 'webhookId' => ['shape' => 'WebhookId'], 'webhookUrl' => ['shape' => 'WebhookUrl'], 'branchName' => ['shape' => 'BranchName'], 'description' => ['shape' => 'Description'], 'createTime' => ['shape' => 'CreateTime'], 'updateTime' => ['shape' => 'UpdateTime']]], 'WebhookArn' => ['type' => 'string', 'max' => 1000], 'WebhookId' => ['type' => 'string', 'max' => 255], 'WebhookUrl' => ['type' => 'string', 'max' => 1000], 'Webhooks' => ['type' => 'list', 'member' => ['shape' => 'Webhook']]]];
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'], ['shape' => 'BadRequestException']]], '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'], 'tags' => ['shape' => 'MapOfStringToString']]], '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'], 'tags' => ['shape' => 'MapOfStringToString']]], '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'], 'tags' => ['shape' => 'MapOfStringToString']]], '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'], 'tags' => ['shape' => 'MapOfStringToString'], 'securityPolicy' => ['shape' => 'SecurityPolicy']]], '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'], 'tags' => ['shape' => 'MapOfStringToString']]], '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'], 'tags' => ['shape' => 'MapOfStringToString']]], 'CreateVpcLinkRequest' => ['type' => 'structure', 'required' => ['name', 'targetArns'], 'members' => ['name' => ['shape' => 'String'], 'description' => ['shape' => 'String'], 'targetArns' => ['shape' => 'ListOfString'], 'tags' => ['shape' => 'MapOfStringToString']]], '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'], 'domainNameStatus' => ['shape' => 'DomainNameStatus'], 'domainNameStatusMessage' => ['shape' => 'String'], 'securityPolicy' => ['shape' => 'SecurityPolicy'], 'tags' => ['shape' => 'MapOfStringToString']]], 'DomainNameStatus' => ['type' => 'string', 'enum' => ['AVAILABLE', 'UPDATING', 'PENDING']], 'DomainNames' => ['type' => 'structure', 'members' => ['position' => ['shape' => 'String'], 'items' => ['shape' => 'ListOfDomainName', 'locationName' => 'item']]], 'Double' => ['type' => 'double'], 'EndpointConfiguration' => ['type' => 'structure', 'members' => ['types' => ['shape' => 'ListOfEndpointType'], 'vpcEndpointIds' => ['shape' => 'ListOfString']]], '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'], 'tags' => ['shape' => 'MapOfStringToString']]], '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'], 'tags' => ['shape' => 'MapOfStringToString']]], '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']]], 'SecurityPolicy' => ['type' => 'string', 'enum' => ['TLS_1_0', 'TLS_1_2']], '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'], 'tags' => ['shape' => 'MapOfStringToString']]], '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'], 'tags' => ['shape' => 'MapOfStringToString']]], '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'], ['shape' => 'BadRequestException']]], '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'], 'tags' => ['shape' => 'MapOfStringToString']]], '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'], 'tags' => ['shape' => 'MapOfStringToString']]], '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'], 'tags' => ['shape' => 'MapOfStringToString']]], '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'], 'tags' => ['shape' => 'MapOfStringToString'], 'securityPolicy' => ['shape' => 'SecurityPolicy']]], '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'], 'tags' => ['shape' => 'MapOfStringToString']]], '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'], 'tags' => ['shape' => 'MapOfStringToString']]], 'CreateVpcLinkRequest' => ['type' => 'structure', 'required' => ['name', 'targetArns'], 'members' => ['name' => ['shape' => 'String'], 'description' => ['shape' => 'String'], 'targetArns' => ['shape' => 'ListOfString'], 'tags' => ['shape' => 'MapOfStringToString']]], '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'], 'domainNameStatus' => ['shape' => 'DomainNameStatus'], 'domainNameStatusMessage' => ['shape' => 'String'], 'securityPolicy' => ['shape' => 'SecurityPolicy'], 'tags' => ['shape' => 'MapOfStringToString']]], 'DomainNameStatus' => ['type' => 'string', 'enum' => ['AVAILABLE', 'UPDATING', 'PENDING']], 'DomainNames' => ['type' => 'structure', 'members' => ['position' => ['shape' => 'String'], 'items' => ['shape' => 'ListOfDomainName', 'locationName' => 'item']]], 'Double' => ['type' => 'double'], 'EndpointConfiguration' => ['type' => 'structure', 'members' => ['types' => ['shape' => 'ListOfEndpointType'], 'vpcEndpointIds' => ['shape' => 'ListOfString']]], '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'], 'tags' => ['shape' => 'MapOfStringToString']]], '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'], 'tlsConfig' => ['shape' => 'TlsConfig']]], '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'], 'tlsConfig' => ['shape' => 'TlsConfig']]], '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'], 'tags' => ['shape' => 'MapOfStringToString']]], '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']]], 'SecurityPolicy' => ['type' => 'string', 'enum' => ['TLS_1_0', 'TLS_1_2']], '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'], 'TlsConfig' => ['type' => 'structure', 'members' => ['insecureSkipVerification' => ['shape' => 'Boolean']]], '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'], 'tags' => ['shape' => 'MapOfStringToString']]], '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'], 'tags' => ['shape' => 'MapOfStringToString']]], 'VpcLinkStatus' => ['type' => 'string', 'enum' => ['AVAILABLE', 'PENDING', 'DELETING', 'FAILED']], 'VpcLinks' => ['type' => 'structure', 'members' => ['position' => ['shape' => 'String'], 'items' => ['shape' => 'ListOfVpcLink', 'locationName' => 'item']]]]];
vendor/Aws3/Aws/data/apigatewayv2/2018-11-29/api-2.json.php CHANGED
@@ -1,4 +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'], ['shape' => 'AccessDeniedException']]], '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']]], 'CreateVpcLink' => ['name' => 'CreateVpcLink', 'http' => ['method' => 'POST', 'requestUri' => '/v2/vpclinks', 'responseCode' => 201], 'input' => ['shape' => 'CreateVpcLinkRequest'], 'output' => ['shape' => 'CreateVpcLinkResponse'], 'errors' => [['shape' => 'BadRequestException'], ['shape' => 'TooManyRequestsException']]], 'DeleteAccessLogSettings' => ['name' => 'DeleteAccessLogSettings', 'http' => ['method' => 'DELETE', 'requestUri' => '/v2/apis/{apiId}/stages/{stageName}/accesslogsettings', 'responseCode' => 204], 'input' => ['shape' => 'DeleteAccessLogSettingsRequest'], 'errors' => [['shape' => 'NotFoundException'], ['shape' => 'TooManyRequestsException']]], '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']]], 'DeleteCorsConfiguration' => ['name' => 'DeleteCorsConfiguration', 'http' => ['method' => 'DELETE', 'requestUri' => '/v2/apis/{apiId}/cors', 'responseCode' => 204], 'input' => ['shape' => 'DeleteCorsConfigurationRequest'], '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']]], 'DeleteRouteRequestParameter' => ['name' => 'DeleteRouteRequestParameter', 'http' => ['method' => 'DELETE', 'requestUri' => '/v2/apis/{apiId}/routes/{routeId}/requestparameters/{requestParameterKey}', 'responseCode' => 204], 'input' => ['shape' => 'DeleteRouteRequestParameterRequest'], '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']]], 'DeleteRouteSettings' => ['name' => 'DeleteRouteSettings', 'http' => ['method' => 'DELETE', 'requestUri' => '/v2/apis/{apiId}/stages/{stageName}/routesettings/{routeKey}', 'responseCode' => 204], 'input' => ['shape' => 'DeleteRouteSettingsRequest'], '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']]], 'DeleteVpcLink' => ['name' => 'DeleteVpcLink', 'http' => ['method' => 'DELETE', 'requestUri' => '/v2/vpclinks/{vpcLinkId}', 'responseCode' => 202], 'input' => ['shape' => 'DeleteVpcLinkRequest'], 'output' => ['shape' => 'DeleteVpcLinkResponse'], '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']]], 'GetTags' => ['name' => 'GetTags', 'http' => ['method' => 'GET', 'requestUri' => '/v2/tags/{resource-arn}', 'responseCode' => 200], 'input' => ['shape' => 'GetTagsRequest'], 'output' => ['shape' => 'GetTagsResponse'], 'errors' => [['shape' => 'NotFoundException'], ['shape' => 'TooManyRequestsException'], ['shape' => 'BadRequestException'], ['shape' => 'ConflictException']]], 'GetVpcLink' => ['name' => 'GetVpcLink', 'http' => ['method' => 'GET', 'requestUri' => '/v2/vpclinks/{vpcLinkId}', 'responseCode' => 200], 'input' => ['shape' => 'GetVpcLinkRequest'], 'output' => ['shape' => 'GetVpcLinkResponse'], 'errors' => [['shape' => 'NotFoundException'], ['shape' => 'TooManyRequestsException']]], 'GetVpcLinks' => ['name' => 'GetVpcLinks', 'http' => ['method' => 'GET', 'requestUri' => '/v2/vpclinks', 'responseCode' => 200], 'input' => ['shape' => 'GetVpcLinksRequest'], 'output' => ['shape' => 'GetVpcLinksResponse'], 'errors' => [['shape' => 'BadRequestException'], ['shape' => 'TooManyRequestsException']]], 'ImportApi' => ['name' => 'ImportApi', 'http' => ['method' => 'PUT', 'requestUri' => '/v2/apis', 'responseCode' => 201], 'input' => ['shape' => 'ImportApiRequest'], 'output' => ['shape' => 'ImportApiResponse'], 'errors' => [['shape' => 'NotFoundException'], ['shape' => 'TooManyRequestsException'], ['shape' => 'BadRequestException'], ['shape' => 'ConflictException']]], 'ReimportApi' => ['name' => 'ReimportApi', 'http' => ['method' => 'PUT', 'requestUri' => '/v2/apis/{apiId}', 'responseCode' => 201], 'input' => ['shape' => 'ReimportApiRequest'], 'output' => ['shape' => 'ReimportApiResponse'], 'errors' => [['shape' => 'NotFoundException'], ['shape' => 'TooManyRequestsException'], ['shape' => 'BadRequestException'], ['shape' => 'ConflictException']]], 'TagResource' => ['name' => 'TagResource', 'http' => ['method' => 'POST', 'requestUri' => '/v2/tags/{resource-arn}', 'responseCode' => 201], 'input' => ['shape' => 'TagResourceRequest'], 'output' => ['shape' => 'TagResourceResponse'], 'errors' => [['shape' => 'NotFoundException'], ['shape' => 'TooManyRequestsException'], ['shape' => 'BadRequestException'], ['shape' => 'ConflictException']]], 'UntagResource' => ['name' => 'UntagResource', 'http' => ['method' => 'DELETE', 'requestUri' => '/v2/tags/{resource-arn}', 'responseCode' => 204], 'input' => ['shape' => 'UntagResourceRequest'], 'errors' => [['shape' => 'NotFoundException'], ['shape' => 'TooManyRequestsException'], ['shape' => 'BadRequestException'], ['shape' => 'ConflictException']]], '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']]], 'UpdateVpcLink' => ['name' => 'UpdateVpcLink', 'http' => ['method' => 'PATCH', 'requestUri' => '/v2/vpclinks/{vpcLinkId}', 'responseCode' => 200], 'input' => ['shape' => 'UpdateVpcLinkRequest'], 'output' => ['shape' => 'UpdateVpcLinkResponse'], 'errors' => [['shape' => 'NotFoundException'], ['shape' => 'TooManyRequestsException'], ['shape' => 'BadRequestException']]]], 'shapes' => ['AccessDeniedException' => ['type' => 'structure', 'members' => ['Message' => ['shape' => '__string', 'locationName' => 'message']], 'exception' => \true, 'error' => ['httpStatusCode' => 403]], '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'], 'CorsConfiguration' => ['shape' => 'Cors', 'locationName' => 'corsConfiguration'], 'CreatedDate' => ['shape' => '__timestampIso8601', 'locationName' => 'createdDate'], 'Description' => ['shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description'], 'DisableSchemaValidation' => ['shape' => '__boolean', 'locationName' => 'disableSchemaValidation'], 'ImportInfo' => ['shape' => '__listOf__string', 'locationName' => 'importInfo'], 'Name' => ['shape' => 'StringWithLengthBetween1And128', 'locationName' => 'name'], 'ProtocolType' => ['shape' => 'ProtocolType', 'locationName' => 'protocolType'], 'RouteSelectionExpression' => ['shape' => 'SelectionExpression', 'locationName' => 'routeSelectionExpression'], 'Tags' => ['shape' => 'Tags', 'locationName' => 'tags'], 'Version' => ['shape' => 'StringWithLengthBetween1And64', 'locationName' => 'version'], 'Warnings' => ['shape' => '__listOf__string', 'locationName' => 'warnings']], 'required' => ['RouteSelectionExpression', 'Name', 'ProtocolType']], 'ApiMapping' => ['type' => 'structure', 'members' => ['ApiId' => ['shape' => 'Id', 'locationName' => 'apiId'], 'ApiMappingId' => ['shape' => 'Id', 'locationName' => 'apiMappingId'], 'ApiMappingKey' => ['shape' => 'SelectionKey', 'locationName' => 'apiMappingKey'], 'Stage' => ['shape' => 'StringWithLengthBetween1And128', 'locationName' => 'stage']], 'required' => ['Stage', 'ApiId']], 'ApiMappings' => ['type' => 'structure', 'members' => ['Items' => ['shape' => '__listOfApiMapping', 'locationName' => 'items'], 'NextToken' => ['shape' => 'NextToken', 'locationName' => 'nextToken']]], 'Apis' => ['type' => 'structure', 'members' => ['Items' => ['shape' => '__listOfApi', 'locationName' => 'items'], 'NextToken' => ['shape' => 'NextToken', 'locationName' => 'nextToken']]], 'Arn' => ['type' => 'string'], 'AuthorizationScopes' => ['type' => 'list', 'member' => ['shape' => 'StringWithLengthBetween1And64']], 'AuthorizationType' => ['type' => 'string', 'enum' => ['NONE', 'AWS_IAM', 'CUSTOM', 'JWT']], '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'], 'JwtConfiguration' => ['shape' => 'JWTConfiguration', 'locationName' => 'jwtConfiguration'], 'Name' => ['shape' => 'StringWithLengthBetween1And128', 'locationName' => 'name']], 'required' => ['Name']], 'AuthorizerType' => ['type' => 'string', 'enum' => ['REQUEST', 'JWT']], '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']], 'Cors' => ['type' => 'structure', 'members' => ['AllowCredentials' => ['shape' => '__boolean', 'locationName' => 'allowCredentials'], 'AllowHeaders' => ['shape' => 'CorsHeaderList', 'locationName' => 'allowHeaders'], 'AllowMethods' => ['shape' => 'CorsMethodList', 'locationName' => 'allowMethods'], 'AllowOrigins' => ['shape' => 'CorsOriginList', 'locationName' => 'allowOrigins'], 'ExposeHeaders' => ['shape' => 'CorsHeaderList', 'locationName' => 'exposeHeaders'], 'MaxAge' => ['shape' => 'IntegerWithLengthBetweenMinus1And86400', 'locationName' => 'maxAge']]], 'CorsHeaderList' => ['type' => 'list', 'member' => ['shape' => '__string']], 'CorsMethodList' => ['type' => 'list', 'member' => ['shape' => 'StringWithLengthBetween1And64']], 'CorsOriginList' => ['type' => 'list', 'member' => ['shape' => '__string']], 'CreateApiInput' => ['type' => 'structure', 'members' => ['ApiKeySelectionExpression' => ['shape' => 'SelectionExpression', 'locationName' => 'apiKeySelectionExpression'], 'CorsConfiguration' => ['shape' => 'Cors', 'locationName' => 'corsConfiguration'], 'CredentialsArn' => ['shape' => 'Arn', 'locationName' => 'credentialsArn'], 'Description' => ['shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description'], 'DisableSchemaValidation' => ['shape' => '__boolean', 'locationName' => 'disableSchemaValidation'], 'Name' => ['shape' => 'StringWithLengthBetween1And128', 'locationName' => 'name'], 'ProtocolType' => ['shape' => 'ProtocolType', 'locationName' => 'protocolType'], 'RouteKey' => ['shape' => 'SelectionKey', 'locationName' => 'routeKey'], 'RouteSelectionExpression' => ['shape' => 'SelectionExpression', 'locationName' => 'routeSelectionExpression'], 'Tags' => ['shape' => 'Tags', 'locationName' => 'tags'], 'Target' => ['shape' => 'UriWithLengthBetween1And2048', 'locationName' => 'target'], 'Version' => ['shape' => 'StringWithLengthBetween1And64', 'locationName' => 'version']], 'required' => ['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'], 'CorsConfiguration' => ['shape' => 'Cors', 'locationName' => 'corsConfiguration'], 'CredentialsArn' => ['shape' => 'Arn', 'locationName' => 'credentialsArn'], 'Description' => ['shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description'], 'DisableSchemaValidation' => ['shape' => '__boolean', 'locationName' => 'disableSchemaValidation'], 'Name' => ['shape' => 'StringWithLengthBetween1And128', 'locationName' => 'name'], 'ProtocolType' => ['shape' => 'ProtocolType', 'locationName' => 'protocolType'], 'RouteKey' => ['shape' => 'SelectionKey', 'locationName' => 'routeKey'], 'RouteSelectionExpression' => ['shape' => 'SelectionExpression', 'locationName' => 'routeSelectionExpression'], 'Tags' => ['shape' => 'Tags', 'locationName' => 'tags'], 'Target' => ['shape' => 'UriWithLengthBetween1And2048', 'locationName' => 'target'], 'Version' => ['shape' => 'StringWithLengthBetween1And64', 'locationName' => 'version']], 'required' => ['ProtocolType', 'Name']], 'CreateApiResponse' => ['type' => 'structure', 'members' => ['ApiEndpoint' => ['shape' => '__string', 'locationName' => 'apiEndpoint'], 'ApiId' => ['shape' => 'Id', 'locationName' => 'apiId'], 'ApiKeySelectionExpression' => ['shape' => 'SelectionExpression', 'locationName' => 'apiKeySelectionExpression'], 'CorsConfiguration' => ['shape' => 'Cors', 'locationName' => 'corsConfiguration'], 'CreatedDate' => ['shape' => '__timestampIso8601', 'locationName' => 'createdDate'], 'Description' => ['shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description'], 'DisableSchemaValidation' => ['shape' => '__boolean', 'locationName' => 'disableSchemaValidation'], 'ImportInfo' => ['shape' => '__listOf__string', 'locationName' => 'importInfo'], 'Name' => ['shape' => 'StringWithLengthBetween1And128', 'locationName' => 'name'], 'ProtocolType' => ['shape' => 'ProtocolType', 'locationName' => 'protocolType'], 'RouteSelectionExpression' => ['shape' => 'SelectionExpression', 'locationName' => 'routeSelectionExpression'], 'Tags' => ['shape' => 'Tags', 'locationName' => 'tags'], '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'], 'JwtConfiguration' => ['shape' => 'JWTConfiguration', 'locationName' => 'jwtConfiguration'], 'Name' => ['shape' => 'StringWithLengthBetween1And128', 'locationName' => 'name']], 'required' => ['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'], 'JwtConfiguration' => ['shape' => 'JWTConfiguration', 'locationName' => 'jwtConfiguration'], 'Name' => ['shape' => 'StringWithLengthBetween1And128', 'locationName' => 'name']], 'required' => ['ApiId', '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'], 'JwtConfiguration' => ['shape' => 'JWTConfiguration', 'locationName' => 'jwtConfiguration'], 'Name' => ['shape' => 'StringWithLengthBetween1And128', 'locationName' => 'name']]], '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' => ['AutoDeployed' => ['shape' => '__boolean', 'locationName' => 'autoDeployed'], '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'], 'Tags' => ['shape' => 'Tags', 'locationName' => 'tags']], 'required' => ['DomainName']], 'CreateDomainNameRequest' => ['type' => 'structure', 'members' => ['DomainName' => ['shape' => 'StringWithLengthBetween1And512', 'locationName' => 'domainName'], 'DomainNameConfigurations' => ['shape' => 'DomainNameConfigurations', 'locationName' => 'domainNameConfigurations'], 'Tags' => ['shape' => 'Tags', 'locationName' => 'tags']], 'required' => ['DomainName']], 'CreateDomainNameResponse' => ['type' => 'structure', 'members' => ['ApiMappingSelectionExpression' => ['shape' => 'SelectionExpression', 'locationName' => 'apiMappingSelectionExpression'], 'DomainName' => ['shape' => 'StringWithLengthBetween1And512', 'locationName' => 'domainName'], 'DomainNameConfigurations' => ['shape' => 'DomainNameConfigurations', 'locationName' => 'domainNameConfigurations'], 'Tags' => ['shape' => 'Tags', 'locationName' => 'tags']]], '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'], 'PayloadFormatVersion' => ['shape' => 'StringWithLengthBetween1And64', 'locationName' => 'payloadFormatVersion'], 'RequestParameters' => ['shape' => 'IntegrationParameters', 'locationName' => 'requestParameters'], 'RequestTemplates' => ['shape' => 'TemplateMap', 'locationName' => 'requestTemplates'], 'TemplateSelectionExpression' => ['shape' => 'SelectionExpression', 'locationName' => 'templateSelectionExpression'], 'TimeoutInMillis' => ['shape' => 'IntegerWithLengthBetween50And29000', 'locationName' => 'timeoutInMillis'], 'TlsConfig' => ['shape' => 'TlsConfigInput', 'locationName' => 'tlsConfig']], 'required' => ['IntegrationType']], 'CreateIntegrationRequest' => ['type' => 'structure', 'members' => ['ApiId' => ['shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId'], 'ConnectionId' => ['shape' => 'StringWithLengthBetween1And1024', 'locationName' => 'connectionId'], 'ConnectionType' => ['shape' => 'ConnectionType', 'locationName' => 'connectionType'], 'ContentHandlingStrategy' => ['shape' => 'ContentHandlingStrategy', 'locationName' => 'contentHandlingStrategy'], 'CredentialsArn' => ['shape' => 'Arn', 'locationName' => 'credentialsArn'], 'Description' => ['shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description'], 'IntegrationMethod' => ['shape' => 'StringWithLengthBetween1And64', 'locationName' => 'integrationMethod'], 'IntegrationType' => ['shape' => 'IntegrationType', 'locationName' => 'integrationType'], 'IntegrationUri' => ['shape' => 'UriWithLengthBetween1And2048', 'locationName' => 'integrationUri'], 'PassthroughBehavior' => ['shape' => 'PassthroughBehavior', 'locationName' => 'passthroughBehavior'], 'PayloadFormatVersion' => ['shape' => 'StringWithLengthBetween1And64', 'locationName' => 'payloadFormatVersion'], 'RequestParameters' => ['shape' => 'IntegrationParameters', 'locationName' => 'requestParameters'], 'RequestTemplates' => ['shape' => 'TemplateMap', 'locationName' => 'requestTemplates'], 'TemplateSelectionExpression' => ['shape' => 'SelectionExpression', 'locationName' => 'templateSelectionExpression'], 'TimeoutInMillis' => ['shape' => 'IntegerWithLengthBetween50And29000', 'locationName' => 'timeoutInMillis'], 'TlsConfig' => ['shape' => 'TlsConfigInput', 'locationName' => 'tlsConfig']], 'required' => ['ApiId', 'IntegrationType']], 'CreateIntegrationResult' => ['type' => 'structure', 'members' => ['ApiGatewayManaged' => ['shape' => '__boolean', 'locationName' => 'apiGatewayManaged'], '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'], 'PayloadFormatVersion' => ['shape' => 'StringWithLengthBetween1And64', 'locationName' => 'payloadFormatVersion'], 'RequestParameters' => ['shape' => 'IntegrationParameters', 'locationName' => 'requestParameters'], 'RequestTemplates' => ['shape' => 'TemplateMap', 'locationName' => 'requestTemplates'], 'TemplateSelectionExpression' => ['shape' => 'SelectionExpression', 'locationName' => 'templateSelectionExpression'], 'TimeoutInMillis' => ['shape' => 'IntegerWithLengthBetween50And29000', 'locationName' => 'timeoutInMillis'], 'TlsConfig' => ['shape' => 'TlsConfig', 'locationName' => 'tlsConfig']]], 'CreateIntegrationResponseInput' => ['type' => 'structure', 'members' => ['ContentHandlingStrategy' => ['shape' => 'ContentHandlingStrategy', 'locationName' => 'contentHandlingStrategy'], 'IntegrationResponseKey' => ['shape' => 'SelectionKey', 'locationName' => 'integrationResponseKey'], 'ResponseParameters' => ['shape' => 'IntegrationParameters', 'locationName' => 'responseParameters'], 'ResponseTemplates' => ['shape' => 'TemplateMap', 'locationName' => 'responseTemplates'], 'TemplateSelectionExpression' => ['shape' => 'SelectionExpression', 'locationName' => 'templateSelectionExpression']], 'required' => ['IntegrationResponseKey']], 'CreateIntegrationResponseRequest' => ['type' => 'structure', 'members' => ['ApiId' => ['shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId'], 'ContentHandlingStrategy' => ['shape' => 'ContentHandlingStrategy', 'locationName' => 'contentHandlingStrategy'], 'IntegrationId' => ['shape' => '__string', 'location' => 'uri', 'locationName' => 'integrationId'], 'IntegrationResponseKey' => ['shape' => 'SelectionKey', 'locationName' => 'integrationResponseKey'], 'ResponseParameters' => ['shape' => 'IntegrationParameters', 'locationName' => 'responseParameters'], 'ResponseTemplates' => ['shape' => 'TemplateMap', 'locationName' => 'responseTemplates'], 'TemplateSelectionExpression' => ['shape' => 'SelectionExpression', 'locationName' => 'templateSelectionExpression']], 'required' => ['ApiId', 'IntegrationId', 'IntegrationResponseKey']], 'CreateIntegrationResponseResponse' => ['type' => 'structure', 'members' => ['ContentHandlingStrategy' => ['shape' => 'ContentHandlingStrategy', 'locationName' => 'contentHandlingStrategy'], 'IntegrationResponseId' => ['shape' => 'Id', 'locationName' => 'integrationResponseId'], 'IntegrationResponseKey' => ['shape' => 'SelectionKey', 'locationName' => 'integrationResponseKey'], 'ResponseParameters' => ['shape' => 'IntegrationParameters', 'locationName' => 'responseParameters'], 'ResponseTemplates' => ['shape' => 'TemplateMap', 'locationName' => 'responseTemplates'], 'TemplateSelectionExpression' => ['shape' => 'SelectionExpression', 'locationName' => 'templateSelectionExpression']]], 'CreateModelInput' => ['type' => 'structure', 'members' => ['ContentType' => ['shape' => 'StringWithLengthBetween1And256', 'locationName' => 'contentType'], 'Description' => ['shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description'], 'Name' => ['shape' => 'StringWithLengthBetween1And128', 'locationName' => 'name'], 'Schema' => ['shape' => 'StringWithLengthBetween0And32K', 'locationName' => 'schema']], 'required' => ['Schema', 'Name']], 'CreateModelRequest' => ['type' => 'structure', 'members' => ['ApiId' => ['shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId'], 'ContentType' => ['shape' => 'StringWithLengthBetween1And256', 'locationName' => 'contentType'], 'Description' => ['shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description'], 'Name' => ['shape' => 'StringWithLengthBetween1And128', 'locationName' => 'name'], 'Schema' => ['shape' => 'StringWithLengthBetween0And32K', 'locationName' => 'schema']], 'required' => ['ApiId', 'Schema', 'Name']], 'CreateModelResponse' => ['type' => 'structure', 'members' => ['ContentType' => ['shape' => 'StringWithLengthBetween1And256', 'locationName' => 'contentType'], 'Description' => ['shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description'], 'ModelId' => ['shape' => 'Id', 'locationName' => 'modelId'], 'Name' => ['shape' => 'StringWithLengthBetween1And128', 'locationName' => 'name'], 'Schema' => ['shape' => 'StringWithLengthBetween0And32K', 'locationName' => 'schema']]], 'CreateRouteInput' => ['type' => 'structure', 'members' => ['ApiKeyRequired' => ['shape' => '__boolean', 'locationName' => 'apiKeyRequired'], 'AuthorizationScopes' => ['shape' => 'AuthorizationScopes', 'locationName' => 'authorizationScopes'], 'AuthorizationType' => ['shape' => 'AuthorizationType', 'locationName' => 'authorizationType'], 'AuthorizerId' => ['shape' => 'Id', 'locationName' => 'authorizerId'], 'ModelSelectionExpression' => ['shape' => 'SelectionExpression', 'locationName' => 'modelSelectionExpression'], 'OperationName' => ['shape' => 'StringWithLengthBetween1And64', 'locationName' => 'operationName'], 'RequestModels' => ['shape' => 'RouteModels', 'locationName' => 'requestModels'], 'RequestParameters' => ['shape' => 'RouteParameters', 'locationName' => 'requestParameters'], 'RouteKey' => ['shape' => 'SelectionKey', 'locationName' => 'routeKey'], 'RouteResponseSelectionExpression' => ['shape' => 'SelectionExpression', 'locationName' => 'routeResponseSelectionExpression'], 'Target' => ['shape' => 'StringWithLengthBetween1And128', 'locationName' => 'target']], 'required' => ['RouteKey']], 'CreateRouteRequest' => ['type' => 'structure', 'members' => ['ApiId' => ['shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId'], 'ApiKeyRequired' => ['shape' => '__boolean', 'locationName' => 'apiKeyRequired'], 'AuthorizationScopes' => ['shape' => 'AuthorizationScopes', 'locationName' => 'authorizationScopes'], 'AuthorizationType' => ['shape' => 'AuthorizationType', 'locationName' => 'authorizationType'], 'AuthorizerId' => ['shape' => 'Id', 'locationName' => 'authorizerId'], 'ModelSelectionExpression' => ['shape' => 'SelectionExpression', 'locationName' => 'modelSelectionExpression'], 'OperationName' => ['shape' => 'StringWithLengthBetween1And64', 'locationName' => 'operationName'], 'RequestModels' => ['shape' => 'RouteModels', 'locationName' => 'requestModels'], 'RequestParameters' => ['shape' => 'RouteParameters', 'locationName' => 'requestParameters'], 'RouteKey' => ['shape' => 'SelectionKey', 'locationName' => 'routeKey'], 'RouteResponseSelectionExpression' => ['shape' => 'SelectionExpression', 'locationName' => 'routeResponseSelectionExpression'], 'Target' => ['shape' => 'StringWithLengthBetween1And128', 'locationName' => 'target']], 'required' => ['ApiId', 'RouteKey']], 'CreateRouteResult' => ['type' => 'structure', 'members' => ['ApiGatewayManaged' => ['shape' => '__boolean', 'locationName' => 'apiGatewayManaged'], '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'], 'AutoDeploy' => ['shape' => '__boolean', 'locationName' => 'autoDeploy'], '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'], 'Tags' => ['shape' => 'Tags', 'locationName' => 'tags']], 'required' => ['StageName']], 'CreateStageRequest' => ['type' => 'structure', 'members' => ['AccessLogSettings' => ['shape' => 'AccessLogSettings', 'locationName' => 'accessLogSettings'], 'ApiId' => ['shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId'], 'AutoDeploy' => ['shape' => '__boolean', 'locationName' => 'autoDeploy'], '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'], 'Tags' => ['shape' => 'Tags', 'locationName' => 'tags']], 'required' => ['ApiId', 'StageName']], 'CreateStageResponse' => ['type' => 'structure', 'members' => ['AccessLogSettings' => ['shape' => 'AccessLogSettings', 'locationName' => 'accessLogSettings'], 'ApiGatewayManaged' => ['shape' => '__boolean', 'locationName' => 'apiGatewayManaged'], 'AutoDeploy' => ['shape' => '__boolean', 'locationName' => 'autoDeploy'], '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'], 'LastDeploymentStatusMessage' => ['shape' => '__string', 'locationName' => 'lastDeploymentStatusMessage'], 'LastUpdatedDate' => ['shape' => '__timestampIso8601', 'locationName' => 'lastUpdatedDate'], 'RouteSettings' => ['shape' => 'RouteSettingsMap', 'locationName' => 'routeSettings'], 'StageName' => ['shape' => 'StringWithLengthBetween1And128', 'locationName' => 'stageName'], 'StageVariables' => ['shape' => 'StageVariablesMap', 'locationName' => 'stageVariables'], 'Tags' => ['shape' => 'Tags', 'locationName' => 'tags']]], 'CreateVpcLinkInput' => ['type' => 'structure', 'members' => ['Name' => ['shape' => 'StringWithLengthBetween1And128', 'locationName' => 'name'], 'SecurityGroupIds' => ['shape' => 'SecurityGroupIdList', 'locationName' => 'securityGroupIds'], 'SubnetIds' => ['shape' => 'SubnetIdList', 'locationName' => 'subnetIds'], 'Tags' => ['shape' => 'Tags', 'locationName' => 'tags']], 'required' => ['SubnetIds', 'Name']], 'CreateVpcLinkRequest' => ['type' => 'structure', 'members' => ['Name' => ['shape' => 'StringWithLengthBetween1And128', 'locationName' => 'name'], 'SecurityGroupIds' => ['shape' => 'SecurityGroupIdList', 'locationName' => 'securityGroupIds'], 'SubnetIds' => ['shape' => 'SubnetIdList', 'locationName' => 'subnetIds'], 'Tags' => ['shape' => 'Tags', 'locationName' => 'tags']], 'required' => ['SubnetIds', 'Name']], 'CreateVpcLinkResponse' => ['type' => 'structure', 'members' => ['CreatedDate' => ['shape' => '__timestampIso8601', 'locationName' => 'createdDate'], 'Name' => ['shape' => 'StringWithLengthBetween1And128', 'locationName' => 'name'], 'SecurityGroupIds' => ['shape' => 'SecurityGroupIdList', 'locationName' => 'securityGroupIds'], 'SubnetIds' => ['shape' => 'SubnetIdList', 'locationName' => 'subnetIds'], 'Tags' => ['shape' => 'Tags', 'locationName' => 'tags'], 'VpcLinkId' => ['shape' => 'Id', 'locationName' => 'vpcLinkId'], 'VpcLinkStatus' => ['shape' => 'VpcLinkStatus', 'locationName' => 'vpcLinkStatus'], 'VpcLinkStatusMessage' => ['shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'vpcLinkStatusMessage'], 'VpcLinkVersion' => ['shape' => 'VpcLinkVersion', 'locationName' => 'vpcLinkVersion']]], 'DeleteAccessLogSettingsRequest' => ['type' => 'structure', 'members' => ['ApiId' => ['shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId'], 'StageName' => ['shape' => '__string', 'location' => 'uri', 'locationName' => 'stageName']], 'required' => ['StageName', 'ApiId']], 'DeleteApiMappingRequest' => ['type' => 'structure', 'members' => ['ApiMappingId' => ['shape' => '__string', 'location' => 'uri', 'locationName' => 'apiMappingId'], 'DomainName' => ['shape' => '__string', 'location' => 'uri', 'locationName' => 'domainName']], 'required' => ['ApiMappingId', 'DomainName']], 'DeleteApiRequest' => ['type' => 'structure', 'members' => ['ApiId' => ['shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId']], 'required' => ['ApiId']], 'DeleteAuthorizerRequest' => ['type' => 'structure', 'members' => ['ApiId' => ['shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId'], 'AuthorizerId' => ['shape' => '__string', 'location' => 'uri', 'locationName' => 'authorizerId']], 'required' => ['AuthorizerId', 'ApiId']], 'DeleteCorsConfigurationRequest' => ['type' => 'structure', 'members' => ['ApiId' => ['shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId']], 'required' => ['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']], 'DeleteRouteRequestParameterRequest' => ['type' => 'structure', 'members' => ['ApiId' => ['shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId'], 'RequestParameterKey' => ['shape' => '__string', 'location' => 'uri', 'locationName' => 'requestParameterKey'], 'RouteId' => ['shape' => '__string', 'location' => 'uri', 'locationName' => 'routeId']], 'required' => ['RequestParameterKey', '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']], 'DeleteRouteSettingsRequest' => ['type' => 'structure', 'members' => ['ApiId' => ['shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId'], 'RouteKey' => ['shape' => '__string', 'location' => 'uri', 'locationName' => 'routeKey'], 'StageName' => ['shape' => '__string', 'location' => 'uri', 'locationName' => 'stageName']], 'required' => ['StageName', 'RouteKey', 'ApiId']], 'DeleteStageRequest' => ['type' => 'structure', 'members' => ['ApiId' => ['shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId'], 'StageName' => ['shape' => '__string', 'location' => 'uri', 'locationName' => 'stageName']], 'required' => ['StageName', 'ApiId']], 'DeleteVpcLinkRequest' => ['type' => 'structure', 'members' => ['VpcLinkId' => ['shape' => '__string', 'location' => 'uri', 'locationName' => 'vpcLinkId']], 'required' => ['VpcLinkId']], 'DeleteVpcLinkResponse' => ['type' => 'structure', 'members' => []], 'Deployment' => ['type' => 'structure', 'members' => ['AutoDeployed' => ['shape' => '__boolean', 'locationName' => 'autoDeployed'], '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'], 'Tags' => ['shape' => 'Tags', 'locationName' => 'tags']], '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'], 'DomainNameStatus' => ['shape' => 'DomainNameStatus', 'locationName' => 'domainNameStatus'], 'DomainNameStatusMessage' => ['shape' => '__string', 'locationName' => 'domainNameStatusMessage'], 'EndpointType' => ['shape' => 'EndpointType', 'locationName' => 'endpointType'], 'HostedZoneId' => ['shape' => '__string', 'locationName' => 'hostedZoneId'], 'SecurityPolicy' => ['shape' => 'SecurityPolicy', 'locationName' => 'securityPolicy']]], 'DomainNameConfigurations' => ['type' => 'list', 'member' => ['shape' => 'DomainNameConfiguration']], 'DomainNameStatus' => ['type' => 'string', 'enum' => ['AVAILABLE', 'UPDATING']], 'DomainNames' => ['type' => 'structure', 'members' => ['Items' => ['shape' => '__listOfDomainName', 'locationName' => 'items'], 'NextToken' => ['shape' => 'NextToken', 'locationName' => 'nextToken']]], 'EndpointType' => ['type' => 'string', 'enum' => ['REGIONAL', 'EDGE']], 'GetApiMappingRequest' => ['type' => 'structure', 'members' => ['ApiMappingId' => ['shape' => '__string', 'location' => 'uri', 'locationName' => 'apiMappingId'], 'DomainName' => ['shape' => '__string', 'location' => 'uri', 'locationName' => 'domainName']], 'required' => ['ApiMappingId', 'DomainName']], 'GetApiMappingResponse' => ['type' => 'structure', 'members' => ['ApiId' => ['shape' => 'Id', 'locationName' => 'apiId'], 'ApiMappingId' => ['shape' => 'Id', 'locationName' => 'apiMappingId'], 'ApiMappingKey' => ['shape' => 'SelectionKey', 'locationName' => 'apiMappingKey'], 'Stage' => ['shape' => 'StringWithLengthBetween1And128', 'locationName' => 'stage']]], 'GetApiMappingsRequest' => ['type' => 'structure', 'members' => ['DomainName' => ['shape' => '__string', 'location' => 'uri', 'locationName' => 'domainName'], 'MaxResults' => ['shape' => '__string', 'location' => 'querystring', 'locationName' => 'maxResults'], 'NextToken' => ['shape' => '__string', 'location' => 'querystring', 'locationName' => 'nextToken']], 'required' => ['DomainName']], 'GetApiMappingsResponse' => ['type' => 'structure', 'members' => ['Items' => ['shape' => '__listOfApiMapping', 'locationName' => 'items'], 'NextToken' => ['shape' => 'NextToken', 'locationName' => 'nextToken']]], 'GetApiRequest' => ['type' => 'structure', 'members' => ['ApiId' => ['shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId']], 'required' => ['ApiId']], 'GetApiResponse' => ['type' => 'structure', 'members' => ['ApiEndpoint' => ['shape' => '__string', 'locationName' => 'apiEndpoint'], 'ApiId' => ['shape' => 'Id', 'locationName' => 'apiId'], 'ApiKeySelectionExpression' => ['shape' => 'SelectionExpression', 'locationName' => 'apiKeySelectionExpression'], 'CorsConfiguration' => ['shape' => 'Cors', 'locationName' => 'corsConfiguration'], 'CreatedDate' => ['shape' => '__timestampIso8601', 'locationName' => 'createdDate'], 'Description' => ['shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description'], 'DisableSchemaValidation' => ['shape' => '__boolean', 'locationName' => 'disableSchemaValidation'], 'ImportInfo' => ['shape' => '__listOf__string', 'locationName' => 'importInfo'], 'Name' => ['shape' => 'StringWithLengthBetween1And128', 'locationName' => 'name'], 'ProtocolType' => ['shape' => 'ProtocolType', 'locationName' => 'protocolType'], 'RouteSelectionExpression' => ['shape' => 'SelectionExpression', 'locationName' => 'routeSelectionExpression'], 'Tags' => ['shape' => 'Tags', 'locationName' => 'tags'], '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'], 'JwtConfiguration' => ['shape' => 'JWTConfiguration', 'locationName' => 'jwtConfiguration'], 'Name' => ['shape' => 'StringWithLengthBetween1And128', 'locationName' => 'name']]], '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' => ['AutoDeployed' => ['shape' => '__boolean', 'locationName' => 'autoDeployed'], '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'], 'Tags' => ['shape' => 'Tags', 'locationName' => 'tags']]], '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' => ['ApiGatewayManaged' => ['shape' => '__boolean', 'locationName' => 'apiGatewayManaged'], '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'], 'PayloadFormatVersion' => ['shape' => 'StringWithLengthBetween1And64', 'locationName' => 'payloadFormatVersion'], 'RequestParameters' => ['shape' => 'IntegrationParameters', 'locationName' => 'requestParameters'], 'RequestTemplates' => ['shape' => 'TemplateMap', 'locationName' => 'requestTemplates'], 'TemplateSelectionExpression' => ['shape' => 'SelectionExpression', 'locationName' => 'templateSelectionExpression'], 'TimeoutInMillis' => ['shape' => 'IntegerWithLengthBetween50And29000', 'locationName' => 'timeoutInMillis'], 'TlsConfig' => ['shape' => 'TlsConfig', 'locationName' => 'tlsConfig']]], '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' => ['ApiGatewayManaged' => ['shape' => '__boolean', 'locationName' => 'apiGatewayManaged'], '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'], 'ApiGatewayManaged' => ['shape' => '__boolean', 'locationName' => 'apiGatewayManaged'], 'AutoDeploy' => ['shape' => '__boolean', 'locationName' => 'autoDeploy'], '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'], 'LastDeploymentStatusMessage' => ['shape' => '__string', 'locationName' => 'lastDeploymentStatusMessage'], 'LastUpdatedDate' => ['shape' => '__timestampIso8601', 'locationName' => 'lastUpdatedDate'], 'RouteSettings' => ['shape' => 'RouteSettingsMap', 'locationName' => 'routeSettings'], 'StageName' => ['shape' => 'StringWithLengthBetween1And128', 'locationName' => 'stageName'], 'StageVariables' => ['shape' => 'StageVariablesMap', 'locationName' => 'stageVariables'], 'Tags' => ['shape' => 'Tags', 'locationName' => 'tags']]], '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']]], 'GetTagsRequest' => ['type' => 'structure', 'members' => ['ResourceArn' => ['shape' => '__string', 'location' => 'uri', 'locationName' => 'resource-arn']], 'required' => ['ResourceArn']], 'GetTagsResponse' => ['type' => 'structure', 'members' => ['Tags' => ['shape' => 'Tags', 'locationName' => 'tags']]], 'GetVpcLinkRequest' => ['type' => 'structure', 'members' => ['VpcLinkId' => ['shape' => '__string', 'location' => 'uri', 'locationName' => 'vpcLinkId']], 'required' => ['VpcLinkId']], 'GetVpcLinkResponse' => ['type' => 'structure', 'members' => ['CreatedDate' => ['shape' => '__timestampIso8601', 'locationName' => 'createdDate'], 'Name' => ['shape' => 'StringWithLengthBetween1And128', 'locationName' => 'name'], 'SecurityGroupIds' => ['shape' => 'SecurityGroupIdList', 'locationName' => 'securityGroupIds'], 'SubnetIds' => ['shape' => 'SubnetIdList', 'locationName' => 'subnetIds'], 'Tags' => ['shape' => 'Tags', 'locationName' => 'tags'], 'VpcLinkId' => ['shape' => 'Id', 'locationName' => 'vpcLinkId'], 'VpcLinkStatus' => ['shape' => 'VpcLinkStatus', 'locationName' => 'vpcLinkStatus'], 'VpcLinkStatusMessage' => ['shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'vpcLinkStatusMessage'], 'VpcLinkVersion' => ['shape' => 'VpcLinkVersion', 'locationName' => 'vpcLinkVersion']]], 'GetVpcLinksRequest' => ['type' => 'structure', 'members' => ['MaxResults' => ['shape' => '__string', 'location' => 'querystring', 'locationName' => 'maxResults'], 'NextToken' => ['shape' => '__string', 'location' => 'querystring', 'locationName' => 'nextToken']]], 'GetVpcLinksResponse' => ['type' => 'structure', 'members' => ['Items' => ['shape' => '__listOfVpcLink', 'locationName' => 'items'], 'NextToken' => ['shape' => 'NextToken', 'locationName' => 'nextToken']]], 'Id' => ['type' => 'string'], 'IdentitySourceList' => ['type' => 'list', 'member' => ['shape' => '__string']], 'ImportApiInput' => ['type' => 'structure', 'members' => ['Body' => ['shape' => '__string', 'locationName' => 'body']], 'required' => ['Body']], 'ImportApiRequest' => ['type' => 'structure', 'members' => ['Basepath' => ['shape' => '__string', 'location' => 'querystring', 'locationName' => 'basepath'], 'Body' => ['shape' => '__string', 'locationName' => 'body'], 'FailOnWarnings' => ['shape' => '__boolean', 'location' => 'querystring', 'locationName' => 'failOnWarnings']], 'required' => ['Body']], 'ImportApiResponse' => ['type' => 'structure', 'members' => ['ApiEndpoint' => ['shape' => '__string', 'locationName' => 'apiEndpoint'], 'ApiId' => ['shape' => 'Id', 'locationName' => 'apiId'], 'ApiKeySelectionExpression' => ['shape' => 'SelectionExpression', 'locationName' => 'apiKeySelectionExpression'], 'CorsConfiguration' => ['shape' => 'Cors', 'locationName' => 'corsConfiguration'], 'CreatedDate' => ['shape' => '__timestampIso8601', 'locationName' => 'createdDate'], 'Description' => ['shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description'], 'DisableSchemaValidation' => ['shape' => '__boolean', 'locationName' => 'disableSchemaValidation'], 'ImportInfo' => ['shape' => '__listOf__string', 'locationName' => 'importInfo'], 'Name' => ['shape' => 'StringWithLengthBetween1And128', 'locationName' => 'name'], 'ProtocolType' => ['shape' => 'ProtocolType', 'locationName' => 'protocolType'], 'RouteSelectionExpression' => ['shape' => 'SelectionExpression', 'locationName' => 'routeSelectionExpression'], 'Tags' => ['shape' => 'Tags', 'locationName' => 'tags'], 'Version' => ['shape' => 'StringWithLengthBetween1And64', 'locationName' => 'version'], 'Warnings' => ['shape' => '__listOf__string', 'locationName' => 'warnings']]], 'IntegerWithLengthBetween0And3600' => ['type' => 'integer', 'min' => 0, 'max' => 3600], 'IntegerWithLengthBetween50And29000' => ['type' => 'integer', 'min' => 50, 'max' => 29000], 'IntegerWithLengthBetweenMinus1And86400' => ['type' => 'integer', 'min' => -1, 'max' => 86400], 'Integration' => ['type' => 'structure', 'members' => ['ApiGatewayManaged' => ['shape' => '__boolean', 'locationName' => 'apiGatewayManaged'], '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'], 'PayloadFormatVersion' => ['shape' => 'StringWithLengthBetween1And64', 'locationName' => 'payloadFormatVersion'], 'RequestParameters' => ['shape' => 'IntegrationParameters', 'locationName' => 'requestParameters'], 'RequestTemplates' => ['shape' => 'TemplateMap', 'locationName' => 'requestTemplates'], 'TemplateSelectionExpression' => ['shape' => 'SelectionExpression', 'locationName' => 'templateSelectionExpression'], 'TimeoutInMillis' => ['shape' => 'IntegerWithLengthBetween50And29000', 'locationName' => 'timeoutInMillis'], 'TlsConfig' => ['shape' => 'TlsConfig', 'locationName' => 'tlsConfig']]], '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']]], 'JWTConfiguration' => ['type' => 'structure', 'members' => ['Audience' => ['shape' => '__listOf__string', 'locationName' => 'audience'], 'Issuer' => ['shape' => 'UriWithLengthBetween1And2048', 'locationName' => 'issuer']]], 'LimitExceededException' => ['type' => 'structure', 'members' => ['LimitType' => ['shape' => '__string', 'locationName' => 'limitType'], 'Message' => ['shape' => '__string', 'locationName' => 'message']]], 'LoggingLevel' => ['type' => 'string', 'enum' => ['ERROR', 'INFO', 'OFF']], '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', 'HTTP']], 'ReimportApiInput' => ['type' => 'structure', 'members' => ['Body' => ['shape' => '__string', 'locationName' => 'body']], 'required' => ['Body']], 'ReimportApiRequest' => ['type' => 'structure', 'members' => ['ApiId' => ['shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId'], 'Basepath' => ['shape' => '__string', 'location' => 'querystring', 'locationName' => 'basepath'], 'Body' => ['shape' => '__string', 'locationName' => 'body'], 'FailOnWarnings' => ['shape' => '__boolean', 'location' => 'querystring', 'locationName' => 'failOnWarnings']], 'required' => ['ApiId', 'Body']], 'ReimportApiResponse' => ['type' => 'structure', 'members' => ['ApiEndpoint' => ['shape' => '__string', 'locationName' => 'apiEndpoint'], 'ApiId' => ['shape' => 'Id', 'locationName' => 'apiId'], 'ApiKeySelectionExpression' => ['shape' => 'SelectionExpression', 'locationName' => 'apiKeySelectionExpression'], 'CorsConfiguration' => ['shape' => 'Cors', 'locationName' => 'corsConfiguration'], 'CreatedDate' => ['shape' => '__timestampIso8601', 'locationName' => 'createdDate'], 'Description' => ['shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description'], 'DisableSchemaValidation' => ['shape' => '__boolean', 'locationName' => 'disableSchemaValidation'], 'ImportInfo' => ['shape' => '__listOf__string', 'locationName' => 'importInfo'], 'Name' => ['shape' => 'StringWithLengthBetween1And128', 'locationName' => 'name'], 'ProtocolType' => ['shape' => 'ProtocolType', 'locationName' => 'protocolType'], 'RouteSelectionExpression' => ['shape' => 'SelectionExpression', 'locationName' => 'routeSelectionExpression'], 'Tags' => ['shape' => 'Tags', 'locationName' => 'tags'], 'Version' => ['shape' => 'StringWithLengthBetween1And64', 'locationName' => 'version'], 'Warnings' => ['shape' => '__listOf__string', 'locationName' => 'warnings']]], 'Route' => ['type' => 'structure', 'members' => ['ApiGatewayManaged' => ['shape' => '__boolean', 'locationName' => 'apiGatewayManaged'], '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']]], 'SecurityGroupIdList' => ['type' => 'list', 'member' => ['shape' => '__string']], 'SecurityPolicy' => ['type' => 'string', 'enum' => ['TLS_1_0', 'TLS_1_2']], 'SelectionExpression' => ['type' => 'string'], 'SelectionKey' => ['type' => 'string'], 'Stage' => ['type' => 'structure', 'members' => ['AccessLogSettings' => ['shape' => 'AccessLogSettings', 'locationName' => 'accessLogSettings'], 'ApiGatewayManaged' => ['shape' => '__boolean', 'locationName' => 'apiGatewayManaged'], 'AutoDeploy' => ['shape' => '__boolean', 'locationName' => 'autoDeploy'], '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'], 'LastDeploymentStatusMessage' => ['shape' => '__string', 'locationName' => 'lastDeploymentStatusMessage'], 'LastUpdatedDate' => ['shape' => '__timestampIso8601', 'locationName' => 'lastUpdatedDate'], 'RouteSettings' => ['shape' => 'RouteSettingsMap', 'locationName' => 'routeSettings'], 'StageName' => ['shape' => 'StringWithLengthBetween1And128', 'locationName' => 'stageName'], 'StageVariables' => ['shape' => 'StageVariablesMap', 'locationName' => 'stageVariables'], 'Tags' => ['shape' => 'Tags', 'locationName' => 'tags']], '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'], 'StringWithLengthBetween1And1600' => ['type' => 'string'], 'StringWithLengthBetween1And256' => ['type' => 'string'], 'StringWithLengthBetween1And512' => ['type' => 'string'], 'StringWithLengthBetween1And64' => ['type' => 'string'], 'SubnetIdList' => ['type' => 'list', 'member' => ['shape' => '__string']], 'TagResourceInput' => ['type' => 'structure', 'members' => ['Tags' => ['shape' => 'Tags', 'locationName' => 'tags']]], 'TagResourceRequest' => ['type' => 'structure', 'members' => ['ResourceArn' => ['shape' => '__string', 'location' => 'uri', 'locationName' => 'resource-arn'], 'Tags' => ['shape' => 'Tags', 'locationName' => 'tags']], 'required' => ['ResourceArn']], 'TagResourceResponse' => ['type' => 'structure', 'members' => []], 'Tags' => ['type' => 'map', 'key' => ['shape' => '__string'], 'value' => ['shape' => 'StringWithLengthBetween1And1600']], 'Template' => ['type' => 'structure', 'members' => ['Value' => ['shape' => '__string', 'locationName' => 'value']]], 'TemplateMap' => ['type' => 'map', 'key' => ['shape' => '__string'], 'value' => ['shape' => 'StringWithLengthBetween0And32K']], 'TlsConfig' => ['type' => 'structure', 'members' => ['ServerNameToVerify' => ['shape' => 'StringWithLengthBetween1And512', 'locationName' => 'serverNameToVerify']]], 'TlsConfigInput' => ['type' => 'structure', 'members' => ['ServerNameToVerify' => ['shape' => 'StringWithLengthBetween1And512', 'locationName' => 'serverNameToVerify']]], 'TooManyRequestsException' => ['type' => 'structure', 'members' => ['LimitType' => ['shape' => '__string', 'locationName' => 'limitType'], 'Message' => ['shape' => '__string', 'locationName' => 'message']], 'exception' => \true, 'error' => ['httpStatusCode' => 429]], 'UntagResourceRequest' => ['type' => 'structure', 'members' => ['ResourceArn' => ['shape' => '__string', 'location' => 'uri', 'locationName' => 'resource-arn'], 'TagKeys' => ['shape' => '__listOf__string', 'location' => 'querystring', 'locationName' => 'tagKeys']], 'required' => ['ResourceArn', 'TagKeys']], 'UpdateApiInput' => ['type' => 'structure', 'members' => ['ApiKeySelectionExpression' => ['shape' => 'SelectionExpression', 'locationName' => 'apiKeySelectionExpression'], 'CorsConfiguration' => ['shape' => 'Cors', 'locationName' => 'corsConfiguration'], 'CredentialsArn' => ['shape' => 'Arn', 'locationName' => 'credentialsArn'], 'Description' => ['shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description'], 'DisableSchemaValidation' => ['shape' => '__boolean', 'locationName' => 'disableSchemaValidation'], 'Name' => ['shape' => 'StringWithLengthBetween1And128', 'locationName' => 'name'], 'RouteKey' => ['shape' => 'SelectionKey', 'locationName' => 'routeKey'], 'RouteSelectionExpression' => ['shape' => 'SelectionExpression', 'locationName' => 'routeSelectionExpression'], 'Target' => ['shape' => 'UriWithLengthBetween1And2048', 'locationName' => 'target'], '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'], 'CorsConfiguration' => ['shape' => 'Cors', 'locationName' => 'corsConfiguration'], 'CredentialsArn' => ['shape' => 'Arn', 'locationName' => 'credentialsArn'], 'Description' => ['shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description'], 'DisableSchemaValidation' => ['shape' => '__boolean', 'locationName' => 'disableSchemaValidation'], 'Name' => ['shape' => 'StringWithLengthBetween1And128', 'locationName' => 'name'], 'RouteKey' => ['shape' => 'SelectionKey', 'locationName' => 'routeKey'], 'RouteSelectionExpression' => ['shape' => 'SelectionExpression', 'locationName' => 'routeSelectionExpression'], 'Target' => ['shape' => 'UriWithLengthBetween1And2048', 'locationName' => 'target'], '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'], 'CorsConfiguration' => ['shape' => 'Cors', 'locationName' => 'corsConfiguration'], 'CreatedDate' => ['shape' => '__timestampIso8601', 'locationName' => 'createdDate'], 'Description' => ['shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description'], 'DisableSchemaValidation' => ['shape' => '__boolean', 'locationName' => 'disableSchemaValidation'], 'ImportInfo' => ['shape' => '__listOf__string', 'locationName' => 'importInfo'], 'Name' => ['shape' => 'StringWithLengthBetween1And128', 'locationName' => 'name'], 'ProtocolType' => ['shape' => 'ProtocolType', 'locationName' => 'protocolType'], 'RouteSelectionExpression' => ['shape' => 'SelectionExpression', 'locationName' => 'routeSelectionExpression'], 'Tags' => ['shape' => 'Tags', 'locationName' => 'tags'], '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'], 'JwtConfiguration' => ['shape' => 'JWTConfiguration', 'locationName' => 'jwtConfiguration'], 'Name' => ['shape' => 'StringWithLengthBetween1And128', 'locationName' => 'name']]], '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'], 'JwtConfiguration' => ['shape' => 'JWTConfiguration', 'locationName' => 'jwtConfiguration'], 'Name' => ['shape' => 'StringWithLengthBetween1And128', 'locationName' => 'name']], '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'], 'JwtConfiguration' => ['shape' => 'JWTConfiguration', 'locationName' => 'jwtConfiguration'], 'Name' => ['shape' => 'StringWithLengthBetween1And128', 'locationName' => 'name']]], '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' => ['AutoDeployed' => ['shape' => '__boolean', 'locationName' => 'autoDeployed'], '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'], 'Tags' => ['shape' => 'Tags', 'locationName' => 'tags']]], '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'], 'PayloadFormatVersion' => ['shape' => 'StringWithLengthBetween1And64', 'locationName' => 'payloadFormatVersion'], 'RequestParameters' => ['shape' => 'IntegrationParameters', 'locationName' => 'requestParameters'], 'RequestTemplates' => ['shape' => 'TemplateMap', 'locationName' => 'requestTemplates'], 'TemplateSelectionExpression' => ['shape' => 'SelectionExpression', 'locationName' => 'templateSelectionExpression'], 'TimeoutInMillis' => ['shape' => 'IntegerWithLengthBetween50And29000', 'locationName' => 'timeoutInMillis'], 'TlsConfig' => ['shape' => 'TlsConfigInput', 'locationName' => 'tlsConfig']]], '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'], 'PayloadFormatVersion' => ['shape' => 'StringWithLengthBetween1And64', 'locationName' => 'payloadFormatVersion'], 'RequestParameters' => ['shape' => 'IntegrationParameters', 'locationName' => 'requestParameters'], 'RequestTemplates' => ['shape' => 'TemplateMap', 'locationName' => 'requestTemplates'], 'TemplateSelectionExpression' => ['shape' => 'SelectionExpression', 'locationName' => 'templateSelectionExpression'], 'TimeoutInMillis' => ['shape' => 'IntegerWithLengthBetween50And29000', 'locationName' => 'timeoutInMillis'], 'TlsConfig' => ['shape' => 'TlsConfigInput', 'locationName' => 'tlsConfig']], 'required' => ['ApiId', 'IntegrationId']], 'UpdateIntegrationResult' => ['type' => 'structure', 'members' => ['ApiGatewayManaged' => ['shape' => '__boolean', 'locationName' => 'apiGatewayManaged'], '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'], 'PayloadFormatVersion' => ['shape' => 'StringWithLengthBetween1And64', 'locationName' => 'payloadFormatVersion'], 'RequestParameters' => ['shape' => 'IntegrationParameters', 'locationName' => 'requestParameters'], 'RequestTemplates' => ['shape' => 'TemplateMap', 'locationName' => 'requestTemplates'], 'TemplateSelectionExpression' => ['shape' => 'SelectionExpression', 'locationName' => 'templateSelectionExpression'], 'TimeoutInMillis' => ['shape' => 'IntegerWithLengthBetween50And29000', 'locationName' => 'timeoutInMillis'], 'TlsConfig' => ['shape' => 'TlsConfig', 'locationName' => 'tlsConfig']]], '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']]
1
  <?php
2
 
3
  // This file was auto-generated from sdk-root/src/data/apigatewayv2/2018-11-29/api-2.json