From d881baf4d47c3e60b8b5cf1c44bf3faf8801f06b Mon Sep 17 00:00:00 2001 From: Gary Crye Date: Wed, 2 Nov 2022 14:03:43 -0600 Subject: [PATCH 01/10] Bump production dependency versions --- package.json | 4 +- yarn.lock | 161 +++++++++++++++++++++++++++++++++++++++++++++------ 2 files changed, 144 insertions(+), 21 deletions(-) diff --git a/package.json b/package.json index c456077..474b1eb 100644 --- a/package.json +++ b/package.json @@ -15,8 +15,8 @@ "author": "Scott Hutchings", "license": "Apache-2.0", "dependencies": { - "@actions/core": "^1.2.6", - "aws-sdk": "^2.677.0" + "@actions/core": "^1.10.0", + "aws-sdk": "^2.1246.0" }, "devDependencies": { "@types/jest": "^24.0.23", diff --git a/yarn.lock b/yarn.lock index 9c49401..8771ee1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,10 +2,20 @@ # yarn lockfile v1 -"@actions/core@^1.2.6": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@actions/core/-/core-1.3.0.tgz#f5e4b24c889e7f2e58b466cc8c7481292284eba0" - integrity sha512-xxtX0Cwdhb8LcgatfJkokqT8KzPvcIbwL9xpLU09nOwBzaStbfm0dNncsP0M4us+EpoPdWy7vbzU5vSOH7K6pg== +"@actions/core@^1.10.0": + version "1.10.0" + resolved "https://registry.yarnpkg.com/@actions/core/-/core-1.10.0.tgz#44551c3c71163949a2f06e94d9ca2157a0cfac4f" + integrity sha512-2aZDDa3zrrZbP5ZYg159sNoLRb61nQ7awl5pSvIq5Qpj81vwDzdMRKzkWJGJuwVvWpvZKx7vspJALyvaaIQyug== + dependencies: + "@actions/http-client" "^2.0.1" + uuid "^8.3.2" + +"@actions/http-client@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@actions/http-client/-/http-client-2.0.1.tgz#873f4ca98fe32f6839462a6f046332677322f99c" + integrity sha512-PIXiMVtz6VvyaRsGY268qvj57hXQEpsYogYOu2nrQhlf+XCGmZstmuZBbAybUl1nQGnvS1k1eEsQ69ZoD7xlSw== + dependencies: + tunnel "^0.0.6" "@ardatan/aggregate-error@0.0.1": version "0.0.1" @@ -883,19 +893,25 @@ atob@^2.1.2: resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== -aws-sdk@^2.677.0: - version "2.709.0" - resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.709.0.tgz#33b0c0fe8b9420c65610545394be047ac2d93c8f" - integrity sha512-F3sKXsCiutj9RglVXdqb/XJ3Ko3G+pX081Nf1YjVJpLydwE2v16FGxrLqE5pqyWMDeUf5nZHnBoMuOYD8ip+Kw== +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== + +aws-sdk@^2.1246.0: + version "2.1246.0" + resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1246.0.tgz#c32f66e02bfa1a5a16cd907690f964247968d911" + integrity sha512-knOW3OsR5G67vc7RsGG7NJiukW2IKBQM5WiQo5SpWCO6PgNcpqnjqbfBEphFIzcwE5WYutHB6Ic1zW0yx27feQ== dependencies: buffer "4.9.2" events "1.1.1" ieee754 "1.1.13" - jmespath "0.15.0" + jmespath "0.16.0" querystring "0.2.0" sax "1.2.1" url "0.10.3" - uuid "3.3.2" + util "^0.12.4" + uuid "8.0.0" xml2js "0.4.19" aws-sign2@~0.7.0: @@ -1096,6 +1112,14 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" +call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" @@ -2042,6 +2066,13 @@ flatted@^2.0.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" @@ -2111,6 +2142,15 @@ get-caller-file@^2.0.1: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== +get-intrinsic@^1.0.2, get-intrinsic@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" + integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.3" + get-stdin@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" @@ -2171,6 +2211,13 @@ globby@11.0.1: merge2 "^1.3.0" slash "^3.0.0" +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: version "4.2.4" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" @@ -2225,6 +2272,18 @@ has-symbols@^1.0.0, has-symbols@^1.0.1: resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== +has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + has-value@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" @@ -2352,7 +2411,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2: +inherits@2, inherits@^2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -2406,6 +2465,14 @@ is-accessor-descriptor@^1.0.0: dependencies: kind-of "^6.0.0" +is-arguments@^1.0.4: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" @@ -2416,6 +2483,11 @@ is-buffer@^1.1.5: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== +is-callable@^1.1.3: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + is-callable@^1.1.4, is-callable@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.0.tgz#83336560b54a38e35e3a2df7afd0454d691468bb" @@ -2492,6 +2564,13 @@ is-generator-fn@^2.0.0: resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== +is-generator-function@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" + integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== + dependencies: + has-tostringtag "^1.0.0" + is-glob@4.0.1, is-glob@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" @@ -2542,6 +2621,17 @@ is-symbol@^1.0.2: dependencies: has-symbols "^1.0.1" +is-typed-array@^1.1.10, is-typed-array@^1.1.3: + version "1.1.10" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f" + integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + is-typedarray@^1.0.0, is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" @@ -3010,10 +3100,10 @@ jest@^24.9.0: import-local "^2.0.0" jest-cli "^24.9.0" -jmespath@0.15.0: - version "0.15.0" - resolved "https://registry.yarnpkg.com/jmespath/-/jmespath-0.15.0.tgz#a3f222a9aae9f966f5d27c796510e28091764217" - integrity sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc= +jmespath@0.16.0: + version "0.16.0" + resolved "https://registry.yarnpkg.com/jmespath/-/jmespath-0.16.0.tgz#b15b0a85dfd4d930d43e69ed605943c802785076" + integrity sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw== "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" @@ -4712,6 +4802,11 @@ tunnel-agent@^0.6.0: dependencies: safe-buffer "^5.0.1" +tunnel@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" + integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== + tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" @@ -4811,16 +4906,32 @@ util.promisify@^1.0.0: has-symbols "^1.0.1" object.getownpropertydescriptors "^2.1.0" -uuid@3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" - integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== +util@^0.12.4: + version "0.12.5" + resolved "https://registry.yarnpkg.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc" + integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== + dependencies: + inherits "^2.0.3" + is-arguments "^1.0.4" + is-generator-function "^1.0.7" + is-typed-array "^1.1.3" + which-typed-array "^1.1.2" + +uuid@8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.0.0.tgz#bc6ccf91b5ff0ac07bbcdbf1c7c4e150db4dbb6c" + integrity sha512-jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw== uuid@^3.3.2: version "3.4.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + valid-url@1.0.9: version "1.0.9" resolved "https://registry.yarnpkg.com/valid-url/-/valid-url-1.0.9.tgz#1c14479b40f1397a75782f115e4086447433a200" @@ -4908,6 +5019,18 @@ which-module@^2.0.0: resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= +which-typed-array@^1.1.2: + version "1.1.9" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" + integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + is-typed-array "^1.1.10" + which@^1.2.9, which@^1.3.0: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" From 075c7bc1e8b80f651693ecdd7a3a7947821e961e Mon Sep 17 00:00:00 2001 From: Gary Crye Date: Wed, 2 Nov 2022 14:04:36 -0600 Subject: [PATCH 02/10] Mark inputs as required --- dist/index.js | 5968 ++++++++++++++++++++++++++++++++++++++++--------- src/index.ts | 6 +- 2 files changed, 4962 insertions(+), 1012 deletions(-) diff --git a/dist/index.js b/dist/index.js index dc71bfd..52c29c6 100644 --- a/dist/index.js +++ b/dist/index.js @@ -156,6 +156,28 @@ module.exports = { }; +/***/ }), + +/***/ 4: +/***/ (function(__unusedmodule, exports) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _default = '00000000-0000-0000-0000-000000000000'; +exports.default = _default; + +/***/ }), + +/***/ 16: +/***/ (function(module) { + +module.exports = require("tls"); + /***/ }), /***/ 19: @@ -206,9 +228,11 @@ module.exports = { /***/ (function(__unusedmodule, __unusedexports, __webpack_require__) { var AWS = __webpack_require__(395); -var STS = __webpack_require__(733); +var STS = __webpack_require__(106); var iniLoader = AWS.util.iniLoader; +var ASSUME_ROLE_DEFAULT_REGION = 'us-east-1'; + /** * Represents credentials loaded from shared credentials file * (defaulting to ~/.aws/credentials or defined by the @@ -276,9 +300,9 @@ AWS.SharedIniFileCredentials = AWS.util.inherit(AWS.Credentials, { * failing to establish a connection with the server after * `connectTimeout` milliseconds. This timeout has no effect once a socket * connection has been established. - * * **timeout** [Integer] — Sets the socket to timeout after timeout - * milliseconds of inactivity on the socket. Defaults to two minutes - * (120000). + * * **timeout** [Integer] — The number of milliseconds a request can + * take before automatically being terminated. + * Defaults to two minutes (120000). */ constructor: function SharedIniFileCredentials(options) { AWS.Credentials.call(this); @@ -398,6 +422,27 @@ AWS.SharedIniFileCredentials = AWS.util.inherit(AWS.Credentials, { var mfaSerial = roleProfile['mfa_serial']; var sourceProfileName = roleProfile['source_profile']; + // From experimentation, the following behavior mimics the AWS CLI: + // + // 1. Use region from the profile if present. + // 2. Otherwise fall back to N. Virginia (global endpoint). + // + // It is necessary to do the fallback explicitly, because if + // 'AWS_STS_REGIONAL_ENDPOINTS=regional', the underlying STS client will + // otherwise throw an error if region is left 'undefined'. + // + // Experimentation shows that the AWS CLI (tested at version 1.18.136) + // ignores the following potential sources of a region for the purposes of + // this AssumeRole call: + // + // - The [default] profile + // - The AWS_REGION environment variable + // + // Ignoring the [default] profile for the purposes of AssumeRole is arguably + // a bug in the CLI since it does use the [default] region for service + // calls... but right now we're matching behavior of the other tool. + var profileRegion = roleProfile['region'] || ASSUME_ROLE_DEFAULT_REGION; + if (!sourceProfileName) { throw AWS.util.error( new Error('source_profile is not set using profile ' + this.profile), @@ -425,6 +470,7 @@ AWS.SharedIniFileCredentials = AWS.util.inherit(AWS.Credentials, { this.roleArn = roleArn; var sts = new STS({ credentials: sourceCredentials, + region: profileRegion, httpOptions: this.httpOptions }); @@ -465,6 +511,92 @@ AWS.SharedIniFileCredentials = AWS.util.inherit(AWS.Credentials, { }); +/***/ }), + +/***/ 25: +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "v1", { + enumerable: true, + get: function () { + return _v.default; + } +}); +Object.defineProperty(exports, "v3", { + enumerable: true, + get: function () { + return _v2.default; + } +}); +Object.defineProperty(exports, "v4", { + enumerable: true, + get: function () { + return _v3.default; + } +}); +Object.defineProperty(exports, "v5", { + enumerable: true, + get: function () { + return _v4.default; + } +}); +Object.defineProperty(exports, "NIL", { + enumerable: true, + get: function () { + return _nil.default; + } +}); +Object.defineProperty(exports, "version", { + enumerable: true, + get: function () { + return _version.default; + } +}); +Object.defineProperty(exports, "validate", { + enumerable: true, + get: function () { + return _validate.default; + } +}); +Object.defineProperty(exports, "stringify", { + enumerable: true, + get: function () { + return _stringify.default; + } +}); +Object.defineProperty(exports, "parse", { + enumerable: true, + get: function () { + return _parse.default; + } +}); + +var _v = _interopRequireDefault(__webpack_require__(810)); + +var _v2 = _interopRequireDefault(__webpack_require__(572)); + +var _v3 = _interopRequireDefault(__webpack_require__(293)); + +var _v4 = _interopRequireDefault(__webpack_require__(638)); + +var _nil = _interopRequireDefault(__webpack_require__(4)); + +var _version = _interopRequireDefault(__webpack_require__(135)); + +var _validate = _interopRequireDefault(__webpack_require__(634)); + +var _stringify = _interopRequireDefault(__webpack_require__(960)); + +var _parse = _interopRequireDefault(__webpack_require__(204)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + /***/ }), /***/ 35: @@ -510,7 +642,7 @@ AWS.SharedIniFileCredentials = AWS.util.inherit(AWS.Credentials, { /***/ (function(__unusedmodule, __unusedexports, __webpack_require__) { var AWS = __webpack_require__(395); -var STS = __webpack_require__(733); +var STS = __webpack_require__(106); /** * Represents temporary credentials retrieved from {AWS.STS}. Without any @@ -645,7 +777,53 @@ AWS.TemporaryCredentials = AWS.util.inherit(AWS.Credentials, { /***/ 56: /***/ (function(module) { -module.exports = {"version":"2.0","metadata":{"apiVersion":"2014-06-30","endpointPrefix":"cognito-identity","jsonVersion":"1.1","protocol":"json","serviceFullName":"Amazon Cognito Identity","serviceId":"Cognito Identity","signatureVersion":"v4","targetPrefix":"AWSCognitoIdentityService","uid":"cognito-identity-2014-06-30"},"operations":{"CreateIdentityPool":{"input":{"type":"structure","required":["IdentityPoolName","AllowUnauthenticatedIdentities"],"members":{"IdentityPoolName":{},"AllowUnauthenticatedIdentities":{"type":"boolean"},"AllowClassicFlow":{"type":"boolean"},"SupportedLoginProviders":{"shape":"S5"},"DeveloperProviderName":{},"OpenIdConnectProviderARNs":{"shape":"S9"},"CognitoIdentityProviders":{"shape":"Sb"},"SamlProviderARNs":{"shape":"Sg"},"IdentityPoolTags":{"shape":"Sh"}}},"output":{"shape":"Sk"}},"DeleteIdentities":{"input":{"type":"structure","required":["IdentityIdsToDelete"],"members":{"IdentityIdsToDelete":{"type":"list","member":{}}}},"output":{"type":"structure","members":{"UnprocessedIdentityIds":{"type":"list","member":{"type":"structure","members":{"IdentityId":{},"ErrorCode":{}}}}}}},"DeleteIdentityPool":{"input":{"type":"structure","required":["IdentityPoolId"],"members":{"IdentityPoolId":{}}}},"DescribeIdentity":{"input":{"type":"structure","required":["IdentityId"],"members":{"IdentityId":{}}},"output":{"shape":"Sv"}},"DescribeIdentityPool":{"input":{"type":"structure","required":["IdentityPoolId"],"members":{"IdentityPoolId":{}}},"output":{"shape":"Sk"}},"GetCredentialsForIdentity":{"input":{"type":"structure","required":["IdentityId"],"members":{"IdentityId":{},"Logins":{"shape":"S10"},"CustomRoleArn":{}}},"output":{"type":"structure","members":{"IdentityId":{},"Credentials":{"type":"structure","members":{"AccessKeyId":{},"SecretKey":{},"SessionToken":{},"Expiration":{"type":"timestamp"}}}}}},"GetId":{"input":{"type":"structure","required":["IdentityPoolId"],"members":{"AccountId":{},"IdentityPoolId":{},"Logins":{"shape":"S10"}}},"output":{"type":"structure","members":{"IdentityId":{}}}},"GetIdentityPoolRoles":{"input":{"type":"structure","required":["IdentityPoolId"],"members":{"IdentityPoolId":{}}},"output":{"type":"structure","members":{"IdentityPoolId":{},"Roles":{"shape":"S1c"},"RoleMappings":{"shape":"S1e"}}}},"GetOpenIdToken":{"input":{"type":"structure","required":["IdentityId"],"members":{"IdentityId":{},"Logins":{"shape":"S10"}}},"output":{"type":"structure","members":{"IdentityId":{},"Token":{}}}},"GetOpenIdTokenForDeveloperIdentity":{"input":{"type":"structure","required":["IdentityPoolId","Logins"],"members":{"IdentityPoolId":{},"IdentityId":{},"Logins":{"shape":"S10"},"TokenDuration":{"type":"long"}}},"output":{"type":"structure","members":{"IdentityId":{},"Token":{}}}},"ListIdentities":{"input":{"type":"structure","required":["IdentityPoolId","MaxResults"],"members":{"IdentityPoolId":{},"MaxResults":{"type":"integer"},"NextToken":{},"HideDisabled":{"type":"boolean"}}},"output":{"type":"structure","members":{"IdentityPoolId":{},"Identities":{"type":"list","member":{"shape":"Sv"}},"NextToken":{}}}},"ListIdentityPools":{"input":{"type":"structure","required":["MaxResults"],"members":{"MaxResults":{"type":"integer"},"NextToken":{}}},"output":{"type":"structure","members":{"IdentityPools":{"type":"list","member":{"type":"structure","members":{"IdentityPoolId":{},"IdentityPoolName":{}}}},"NextToken":{}}}},"ListTagsForResource":{"input":{"type":"structure","required":["ResourceArn"],"members":{"ResourceArn":{}}},"output":{"type":"structure","members":{"Tags":{"shape":"Sh"}}}},"LookupDeveloperIdentity":{"input":{"type":"structure","required":["IdentityPoolId"],"members":{"IdentityPoolId":{},"IdentityId":{},"DeveloperUserIdentifier":{},"MaxResults":{"type":"integer"},"NextToken":{}}},"output":{"type":"structure","members":{"IdentityId":{},"DeveloperUserIdentifierList":{"type":"list","member":{}},"NextToken":{}}}},"MergeDeveloperIdentities":{"input":{"type":"structure","required":["SourceUserIdentifier","DestinationUserIdentifier","DeveloperProviderName","IdentityPoolId"],"members":{"SourceUserIdentifier":{},"DestinationUserIdentifier":{},"DeveloperProviderName":{},"IdentityPoolId":{}}},"output":{"type":"structure","members":{"IdentityId":{}}}},"SetIdentityPoolRoles":{"input":{"type":"structure","required":["IdentityPoolId","Roles"],"members":{"IdentityPoolId":{},"Roles":{"shape":"S1c"},"RoleMappings":{"shape":"S1e"}}}},"TagResource":{"input":{"type":"structure","required":["ResourceArn","Tags"],"members":{"ResourceArn":{},"Tags":{"shape":"Sh"}}},"output":{"type":"structure","members":{}}},"UnlinkDeveloperIdentity":{"input":{"type":"structure","required":["IdentityId","IdentityPoolId","DeveloperProviderName","DeveloperUserIdentifier"],"members":{"IdentityId":{},"IdentityPoolId":{},"DeveloperProviderName":{},"DeveloperUserIdentifier":{}}}},"UnlinkIdentity":{"input":{"type":"structure","required":["IdentityId","Logins","LoginsToRemove"],"members":{"IdentityId":{},"Logins":{"shape":"S10"},"LoginsToRemove":{"shape":"Sw"}}}},"UntagResource":{"input":{"type":"structure","required":["ResourceArn","TagKeys"],"members":{"ResourceArn":{},"TagKeys":{"type":"list","member":{}}}},"output":{"type":"structure","members":{}}},"UpdateIdentityPool":{"input":{"shape":"Sk"},"output":{"shape":"Sk"}}},"shapes":{"S5":{"type":"map","key":{},"value":{}},"S9":{"type":"list","member":{}},"Sb":{"type":"list","member":{"type":"structure","members":{"ProviderName":{},"ClientId":{},"ServerSideTokenCheck":{"type":"boolean"}}}},"Sg":{"type":"list","member":{}},"Sh":{"type":"map","key":{},"value":{}},"Sk":{"type":"structure","required":["IdentityPoolId","IdentityPoolName","AllowUnauthenticatedIdentities"],"members":{"IdentityPoolId":{},"IdentityPoolName":{},"AllowUnauthenticatedIdentities":{"type":"boolean"},"AllowClassicFlow":{"type":"boolean"},"SupportedLoginProviders":{"shape":"S5"},"DeveloperProviderName":{},"OpenIdConnectProviderARNs":{"shape":"S9"},"CognitoIdentityProviders":{"shape":"Sb"},"SamlProviderARNs":{"shape":"Sg"},"IdentityPoolTags":{"shape":"Sh"}}},"Sv":{"type":"structure","members":{"IdentityId":{},"Logins":{"shape":"Sw"},"CreationDate":{"type":"timestamp"},"LastModifiedDate":{"type":"timestamp"}}},"Sw":{"type":"list","member":{}},"S10":{"type":"map","key":{},"value":{}},"S1c":{"type":"map","key":{},"value":{}},"S1e":{"type":"map","key":{},"value":{"type":"structure","required":["Type"],"members":{"Type":{},"AmbiguousRoleResolution":{},"RulesConfiguration":{"type":"structure","required":["Rules"],"members":{"Rules":{"type":"list","member":{"type":"structure","required":["Claim","MatchType","Value","RoleARN"],"members":{"Claim":{},"MatchType":{},"Value":{},"RoleARN":{}}}}}}}}}}}; +module.exports = {"version":"2.0","metadata":{"apiVersion":"2014-06-30","endpointPrefix":"cognito-identity","jsonVersion":"1.1","protocol":"json","serviceFullName":"Amazon Cognito Identity","serviceId":"Cognito Identity","signatureVersion":"v4","targetPrefix":"AWSCognitoIdentityService","uid":"cognito-identity-2014-06-30"},"operations":{"CreateIdentityPool":{"input":{"type":"structure","required":["IdentityPoolName","AllowUnauthenticatedIdentities"],"members":{"IdentityPoolName":{},"AllowUnauthenticatedIdentities":{"type":"boolean"},"AllowClassicFlow":{"type":"boolean"},"SupportedLoginProviders":{"shape":"S5"},"DeveloperProviderName":{},"OpenIdConnectProviderARNs":{"shape":"S9"},"CognitoIdentityProviders":{"shape":"Sb"},"SamlProviderARNs":{"shape":"Sg"},"IdentityPoolTags":{"shape":"Sh"}}},"output":{"shape":"Sk"}},"DeleteIdentities":{"input":{"type":"structure","required":["IdentityIdsToDelete"],"members":{"IdentityIdsToDelete":{"type":"list","member":{}}}},"output":{"type":"structure","members":{"UnprocessedIdentityIds":{"type":"list","member":{"type":"structure","members":{"IdentityId":{},"ErrorCode":{}}}}}}},"DeleteIdentityPool":{"input":{"type":"structure","required":["IdentityPoolId"],"members":{"IdentityPoolId":{}}}},"DescribeIdentity":{"input":{"type":"structure","required":["IdentityId"],"members":{"IdentityId":{}}},"output":{"shape":"Sv"}},"DescribeIdentityPool":{"input":{"type":"structure","required":["IdentityPoolId"],"members":{"IdentityPoolId":{}}},"output":{"shape":"Sk"}},"GetCredentialsForIdentity":{"input":{"type":"structure","required":["IdentityId"],"members":{"IdentityId":{},"Logins":{"shape":"S10"},"CustomRoleArn":{}}},"output":{"type":"structure","members":{"IdentityId":{},"Credentials":{"type":"structure","members":{"AccessKeyId":{},"SecretKey":{},"SessionToken":{},"Expiration":{"type":"timestamp"}}}}},"authtype":"none"},"GetId":{"input":{"type":"structure","required":["IdentityPoolId"],"members":{"AccountId":{},"IdentityPoolId":{},"Logins":{"shape":"S10"}}},"output":{"type":"structure","members":{"IdentityId":{}}},"authtype":"none"},"GetIdentityPoolRoles":{"input":{"type":"structure","required":["IdentityPoolId"],"members":{"IdentityPoolId":{}}},"output":{"type":"structure","members":{"IdentityPoolId":{},"Roles":{"shape":"S1c"},"RoleMappings":{"shape":"S1e"}}}},"GetOpenIdToken":{"input":{"type":"structure","required":["IdentityId"],"members":{"IdentityId":{},"Logins":{"shape":"S10"}}},"output":{"type":"structure","members":{"IdentityId":{},"Token":{}}},"authtype":"none"},"GetOpenIdTokenForDeveloperIdentity":{"input":{"type":"structure","required":["IdentityPoolId","Logins"],"members":{"IdentityPoolId":{},"IdentityId":{},"Logins":{"shape":"S10"},"PrincipalTags":{"shape":"S1s"},"TokenDuration":{"type":"long"}}},"output":{"type":"structure","members":{"IdentityId":{},"Token":{}}}},"GetPrincipalTagAttributeMap":{"input":{"type":"structure","required":["IdentityPoolId","IdentityProviderName"],"members":{"IdentityPoolId":{},"IdentityProviderName":{}}},"output":{"type":"structure","members":{"IdentityPoolId":{},"IdentityProviderName":{},"UseDefaults":{"type":"boolean"},"PrincipalTags":{"shape":"S1s"}}}},"ListIdentities":{"input":{"type":"structure","required":["IdentityPoolId","MaxResults"],"members":{"IdentityPoolId":{},"MaxResults":{"type":"integer"},"NextToken":{},"HideDisabled":{"type":"boolean"}}},"output":{"type":"structure","members":{"IdentityPoolId":{},"Identities":{"type":"list","member":{"shape":"Sv"}},"NextToken":{}}}},"ListIdentityPools":{"input":{"type":"structure","required":["MaxResults"],"members":{"MaxResults":{"type":"integer"},"NextToken":{}}},"output":{"type":"structure","members":{"IdentityPools":{"type":"list","member":{"type":"structure","members":{"IdentityPoolId":{},"IdentityPoolName":{}}}},"NextToken":{}}}},"ListTagsForResource":{"input":{"type":"structure","required":["ResourceArn"],"members":{"ResourceArn":{}}},"output":{"type":"structure","members":{"Tags":{"shape":"Sh"}}}},"LookupDeveloperIdentity":{"input":{"type":"structure","required":["IdentityPoolId"],"members":{"IdentityPoolId":{},"IdentityId":{},"DeveloperUserIdentifier":{},"MaxResults":{"type":"integer"},"NextToken":{}}},"output":{"type":"structure","members":{"IdentityId":{},"DeveloperUserIdentifierList":{"type":"list","member":{}},"NextToken":{}}}},"MergeDeveloperIdentities":{"input":{"type":"structure","required":["SourceUserIdentifier","DestinationUserIdentifier","DeveloperProviderName","IdentityPoolId"],"members":{"SourceUserIdentifier":{},"DestinationUserIdentifier":{},"DeveloperProviderName":{},"IdentityPoolId":{}}},"output":{"type":"structure","members":{"IdentityId":{}}}},"SetIdentityPoolRoles":{"input":{"type":"structure","required":["IdentityPoolId","Roles"],"members":{"IdentityPoolId":{},"Roles":{"shape":"S1c"},"RoleMappings":{"shape":"S1e"}}}},"SetPrincipalTagAttributeMap":{"input":{"type":"structure","required":["IdentityPoolId","IdentityProviderName"],"members":{"IdentityPoolId":{},"IdentityProviderName":{},"UseDefaults":{"type":"boolean"},"PrincipalTags":{"shape":"S1s"}}},"output":{"type":"structure","members":{"IdentityPoolId":{},"IdentityProviderName":{},"UseDefaults":{"type":"boolean"},"PrincipalTags":{"shape":"S1s"}}}},"TagResource":{"input":{"type":"structure","required":["ResourceArn","Tags"],"members":{"ResourceArn":{},"Tags":{"shape":"Sh"}}},"output":{"type":"structure","members":{}}},"UnlinkDeveloperIdentity":{"input":{"type":"structure","required":["IdentityId","IdentityPoolId","DeveloperProviderName","DeveloperUserIdentifier"],"members":{"IdentityId":{},"IdentityPoolId":{},"DeveloperProviderName":{},"DeveloperUserIdentifier":{}}}},"UnlinkIdentity":{"input":{"type":"structure","required":["IdentityId","Logins","LoginsToRemove"],"members":{"IdentityId":{},"Logins":{"shape":"S10"},"LoginsToRemove":{"shape":"Sw"}}},"authtype":"none"},"UntagResource":{"input":{"type":"structure","required":["ResourceArn","TagKeys"],"members":{"ResourceArn":{},"TagKeys":{"type":"list","member":{}}}},"output":{"type":"structure","members":{}}},"UpdateIdentityPool":{"input":{"shape":"Sk"},"output":{"shape":"Sk"}}},"shapes":{"S5":{"type":"map","key":{},"value":{}},"S9":{"type":"list","member":{}},"Sb":{"type":"list","member":{"type":"structure","members":{"ProviderName":{},"ClientId":{},"ServerSideTokenCheck":{"type":"boolean"}}}},"Sg":{"type":"list","member":{}},"Sh":{"type":"map","key":{},"value":{}},"Sk":{"type":"structure","required":["IdentityPoolId","IdentityPoolName","AllowUnauthenticatedIdentities"],"members":{"IdentityPoolId":{},"IdentityPoolName":{},"AllowUnauthenticatedIdentities":{"type":"boolean"},"AllowClassicFlow":{"type":"boolean"},"SupportedLoginProviders":{"shape":"S5"},"DeveloperProviderName":{},"OpenIdConnectProviderARNs":{"shape":"S9"},"CognitoIdentityProviders":{"shape":"Sb"},"SamlProviderARNs":{"shape":"Sg"},"IdentityPoolTags":{"shape":"Sh"}}},"Sv":{"type":"structure","members":{"IdentityId":{},"Logins":{"shape":"Sw"},"CreationDate":{"type":"timestamp"},"LastModifiedDate":{"type":"timestamp"}}},"Sw":{"type":"list","member":{}},"S10":{"type":"map","key":{},"value":{}},"S1c":{"type":"map","key":{},"value":{}},"S1e":{"type":"map","key":{},"value":{"type":"structure","required":["Type"],"members":{"Type":{},"AmbiguousRoleResolution":{},"RulesConfiguration":{"type":"structure","required":["Rules"],"members":{"Rules":{"type":"list","member":{"type":"structure","required":["Claim","MatchType","Value","RoleARN"],"members":{"Claim":{},"MatchType":{},"Value":{},"RoleARN":{}}}}}}}}},"S1s":{"type":"map","key":{},"value":{}}}}; + +/***/ }), + +/***/ 62: +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "v1", { + enumerable: true, + get: function () { + return _v.default; + } +}); +Object.defineProperty(exports, "v3", { + enumerable: true, + get: function () { + return _v2.default; + } +}); +Object.defineProperty(exports, "v4", { + enumerable: true, + get: function () { + return _v3.default; + } +}); +Object.defineProperty(exports, "v5", { + enumerable: true, + get: function () { + return _v4.default; + } +}); + +var _v = _interopRequireDefault(__webpack_require__(893)); + +var _v2 = _interopRequireDefault(__webpack_require__(209)); + +var _v3 = _interopRequireDefault(__webpack_require__(733)); + +var _v4 = _interopRequireDefault(__webpack_require__(384)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /***/ }), @@ -657,7 +835,7 @@ module.exports = {"version":"2.0","metadata":{"apiVersion":"2014-06-30","endpoin // We use any as a valid input type /* eslint-disable @typescript-eslint/no-explicit-any */ Object.defineProperty(exports, "__esModule", { value: true }); -exports.toCommandValue = void 0; +exports.toCommandProperties = exports.toCommandValue = void 0; /** * Sanitizes an input into a string so it can be passed into issueCommand safely * @param input input to sanitize into a string @@ -672,123 +850,27 @@ function toCommandValue(input) { return JSON.stringify(input); } exports.toCommandValue = toCommandValue; -//# sourceMappingURL=utils.js.map - -/***/ }), - -/***/ 86: -/***/ (function(module, __unusedexports, __webpack_require__) { - -var rng = __webpack_require__(139); -var bytesToUuid = __webpack_require__(722); - -// **`v1()` - Generate time-based UUID** -// -// Inspired by https://github.com/LiosK/UUID.js -// and http://docs.python.org/library/uuid.html - -var _nodeId; -var _clockseq; - -// Previous uuid creation time -var _lastMSecs = 0; -var _lastNSecs = 0; - -// See https://github.com/broofa/node-uuid for API details -function v1(options, buf, offset) { - var i = buf && offset || 0; - var b = buf || []; - - options = options || {}; - var node = options.node || _nodeId; - var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; - - // node and clockseq need to be initialized to random values if they're not - // specified. We do this lazily to minimize issues related to insufficient - // system entropy. See #189 - if (node == null || clockseq == null) { - var seedBytes = rng(); - if (node == null) { - // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) - node = _nodeId = [ - seedBytes[0] | 0x01, - seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5] - ]; - } - if (clockseq == null) { - // Per 4.2.2, randomize (14 bit) clockseq - clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff; +/** + * + * @param annotationProperties + * @returns The command properties to send with the actual annotation command + * See IssueCommandProperties: https://github.com/actions/runner/blob/main/src/Runner.Worker/ActionCommandManager.cs#L646 + */ +function toCommandProperties(annotationProperties) { + if (!Object.keys(annotationProperties).length) { + return {}; } - } - - // UUID timestamps are 100 nano-second units since the Gregorian epoch, - // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so - // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs' - // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. - var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime(); - - // Per 4.2.1.2, use count of uuid's generated during the current clock - // cycle to simulate higher resolution clock - var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; - - // Time since last uuid creation (in msecs) - var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000; - - // Per 4.2.1.2, Bump clockseq on clock regression - if (dt < 0 && options.clockseq === undefined) { - clockseq = clockseq + 1 & 0x3fff; - } - - // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new - // time interval - if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) { - nsecs = 0; - } - - // Per 4.2.1.2 Throw error if too many uuids are requested - if (nsecs >= 10000) { - throw new Error('uuid.v1(): Can\'t create more than 10M uuids/sec'); - } - - _lastMSecs = msecs; - _lastNSecs = nsecs; - _clockseq = clockseq; - - // Per 4.1.4 - Convert from unix epoch to Gregorian epoch - msecs += 12219292800000; - - // `time_low` - var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; - b[i++] = tl >>> 24 & 0xff; - b[i++] = tl >>> 16 & 0xff; - b[i++] = tl >>> 8 & 0xff; - b[i++] = tl & 0xff; - - // `time_mid` - var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff; - b[i++] = tmh >>> 8 & 0xff; - b[i++] = tmh & 0xff; - - // `time_high_and_version` - b[i++] = tmh >>> 24 & 0xf | 0x10; // include version - b[i++] = tmh >>> 16 & 0xff; - - // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) - b[i++] = clockseq >>> 8 | 0x80; - - // `clock_seq_low` - b[i++] = clockseq & 0xff; - - // `node` - for (var n = 0; n < 6; ++n) { - b[i + n] = node[n]; - } - - return buf ? buf : bytesToUuid(b); + return { + title: annotationProperties.title, + file: annotationProperties.file, + line: annotationProperties.startLine, + endLine: annotationProperties.endLine, + col: annotationProperties.startColumn, + endColumn: annotationProperties.endColumn + }; } - -module.exports = v1; - +exports.toCommandProperties = toCommandProperties; +//# sourceMappingURL=utils.js.map /***/ }), @@ -825,13 +907,14 @@ var __importStar = (this && this.__importStar) || function (mod) { return result; }; Object.defineProperty(exports, "__esModule", { value: true }); -exports.issueCommand = void 0; +exports.prepareKeyValueMessage = exports.issueFileCommand = void 0; // We use any as a valid input type /* eslint-disable @typescript-eslint/no-explicit-any */ const fs = __importStar(__webpack_require__(747)); const os = __importStar(__webpack_require__(87)); +const uuid_1 = __webpack_require__(25); const utils_1 = __webpack_require__(82); -function issueCommand(command, message) { +function issueFileCommand(command, message) { const filePath = process.env[`GITHUB_${command}`]; if (!filePath) { throw new Error(`Unable to find environment variable for file command ${command}`); @@ -843,7 +926,22 @@ function issueCommand(command, message) { encoding: 'utf8' }); } -exports.issueCommand = issueCommand; +exports.issueFileCommand = issueFileCommand; +function prepareKeyValueMessage(key, value) { + const delimiter = `ghadelimiter_${uuid_1.v4()}`; + const convertedValue = utils_1.toCommandValue(value); + // These should realistically never happen, but just in case someone finds a + // way to exploit uuid generation let's not allow keys or values that contain + // the delimiter. + if (key.includes(delimiter)) { + throw new Error(`Unexpected input: name should not contain the delimiter "${delimiter}"`); + } + if (convertedValue.includes(delimiter)) { + throw new Error(`Unexpected input: value should not contain the delimiter "${delimiter}"`); + } + return `${key}<<${delimiter}${os.EOL}${convertedValue}${os.EOL}${delimiter}`; +} +exports.prepareKeyValueMessage = prepareKeyValueMessage; //# sourceMappingURL=file-command.js.map /***/ }), @@ -871,11 +969,27 @@ __webpack_require__(751); * AWS.config.credentials = new AWS.EC2MetadataCredentials({ * httpOptions: { timeout: 5000 }, // 5 second timeout * maxRetries: 10, // retry 10 times - * retryDelayOptions: { base: 200 } // see AWS.Config for information + * retryDelayOptions: { base: 200 }, // see AWS.Config for information + * logger: console // see AWS.Config for information * }); * ``` * + * If your requests are timing out in connecting to the metadata service, such + * as when testing on a development machine, you can use the connectTimeout + * option, specified in milliseconds, which also defaults to 1 second. + * + * If the requests failed or returns expired credentials, it will + * extend the expiration of current credential, with a warning message. For more + * information, please go to: + * https://docs.aws.amazon.com/sdkref/latest/guide/feature-static-credentials.html + * + * @!attribute originalExpiration + * @return [Date] The optional original expiration of the current credential. + * In case of AWS outage, the EC2 metadata will extend expiration of the + * existing credential. + * * @see AWS.Config.retryDelayOptions + * @see AWS.Config.logger * * @!macro nobrowser */ @@ -888,10 +1002,12 @@ AWS.EC2MetadataCredentials = AWS.util.inherit(AWS.Credentials, { {maxRetries: this.defaultMaxRetries}, options); if (!options.httpOptions) options.httpOptions = {}; options.httpOptions = AWS.util.merge( - {timeout: this.defaultTimeout}, options.httpOptions); + {timeout: this.defaultTimeout, + connectTimeout: this.defaultConnectTimeout}, + options.httpOptions); this.metadataService = new AWS.MetadataService(options); - this.metadata = {}; + this.logger = options.logger || AWS.config && AWS.config.logger; }, /** @@ -899,11 +1015,23 @@ AWS.EC2MetadataCredentials = AWS.util.inherit(AWS.Credentials, { */ defaultTimeout: 1000, + /** + * @api private + */ + defaultConnectTimeout: 1000, + /** * @api private */ defaultMaxRetries: 3, + /** + * The original expiration of the current credential. In case of AWS + * outage, the EC2 metadata will extend expiration of the existing + * credential. + */ + originalExpiration: undefined, + /** * Loads the credentials from the instance metadata service * @@ -926,46 +1054,479 @@ AWS.EC2MetadataCredentials = AWS.util.inherit(AWS.Credentials, { load: function load(callback) { var self = this; self.metadataService.loadCredentials(function(err, creds) { - if (!err) { - var currentTime = AWS.util.date.getDate(); - var expireTime = new Date(creds.Expiration); - if (expireTime < currentTime) { - err = AWS.util.error( - new Error('EC2 Instance Metadata Serivce provided expired credentials'), - { code: 'EC2MetadataCredentialsProviderFailure' } - ); + if (err) { + if (self.hasLoadedCredentials()) { + self.extendExpirationIfExpired(); + callback(); } else { - self.expired = false; - self.metadata = creds; - self.accessKeyId = creds.AccessKeyId; - self.secretAccessKey = creds.SecretAccessKey; - self.sessionToken = creds.Token; - self.expireTime = expireTime; + callback(err); } + } else { + self.setCredentials(creds); + self.extendExpirationIfExpired(); + callback(); } - callback(err); }); + }, + + /** + * Whether this credential has been loaded. + * @api private + */ + hasLoadedCredentials: function hasLoadedCredentials() { + return this.AccessKeyId && this.secretAccessKey; + }, + + /** + * if expired, extend the expiration by 15 minutes base plus a jitter of 5 + * minutes range. + * @api private + */ + extendExpirationIfExpired: function extendExpirationIfExpired() { + if (this.needsRefresh()) { + this.originalExpiration = this.originalExpiration || this.expireTime; + this.expired = false; + var nextTimeout = 15 * 60 + Math.floor(Math.random() * 5 * 60); + var currentTime = AWS.util.date.getDate().getTime(); + this.expireTime = new Date(currentTime + nextTimeout * 1000); + // TODO: add doc link; + this.logger.warn('Attempting credential expiration extension due to a ' + + 'credential service availability issue. A refresh of these ' + + 'credentials will be attempted again at ' + this.expireTime + + '\nFor more information, please visit: https://docs.aws.amazon.com/sdkref/latest/guide/feature-static-credentials.html'); + } + }, + + /** + * Update the credential with new credential responded from EC2 metadata + * service. + * @api private + */ + setCredentials: function setCredentials(creds) { + var currentTime = AWS.util.date.getDate().getTime(); + var expireTime = new Date(creds.Expiration); + this.expired = currentTime >= expireTime ? true : false; + this.metadata = creds; + this.accessKeyId = creds.AccessKeyId; + this.secretAccessKey = creds.SecretAccessKey; + this.sessionToken = creds.Token; + this.expireTime = expireTime; } }); /***/ }), -/***/ 120: -/***/ (function(__unusedmodule, exports, __webpack_require__) { +/***/ 106: +/***/ (function(module, __unusedexports, __webpack_require__) { -"use strict"; +__webpack_require__(234); +var AWS = __webpack_require__(395); +var Service = AWS.Service; +var apiLoader = AWS.apiLoader; + +apiLoader.services['sts'] = {}; +AWS.STS = Service.defineService('sts', ['2011-06-15']); +__webpack_require__(861); +Object.defineProperty(apiLoader.services['sts'], '2011-06-15', { + get: function get() { + var model = __webpack_require__(715); + model.paginators = __webpack_require__(262).pagination; + return model; + }, + enumerable: true, + configurable: true +}); + +module.exports = AWS.STS; + + +/***/ }), + +/***/ 108: +/***/ (function(module) { + +module.exports = {"rules":{"*/*":{"endpoint":"{service}.{region}.amazonaws.com"},"cn-*/*":{"endpoint":"{service}.{region}.amazonaws.com.cn"},"us-iso-*/*":"usIso","us-isob-*/*":"usIsob","*/budgets":"globalSSL","*/cloudfront":"globalSSL","*/sts":"globalSSL","*/importexport":{"endpoint":"{service}.amazonaws.com","signatureVersion":"v2","globalEndpoint":true},"*/route53":"globalSSL","cn-*/route53":{"endpoint":"{service}.amazonaws.com.cn","globalEndpoint":true,"signingRegion":"cn-northwest-1"},"us-gov-*/route53":"globalGovCloud","us-iso-*/route53":{"endpoint":"{service}.c2s.ic.gov","globalEndpoint":true,"signingRegion":"us-iso-east-1"},"us-isob-*/route53":{"endpoint":"{service}.sc2s.sgov.gov","globalEndpoint":true,"signingRegion":"us-isob-east-1"},"*/waf":"globalSSL","*/iam":"globalSSL","cn-*/iam":{"endpoint":"{service}.cn-north-1.amazonaws.com.cn","globalEndpoint":true,"signingRegion":"cn-north-1"},"us-gov-*/iam":"globalGovCloud","us-gov-*/sts":{"endpoint":"{service}.{region}.amazonaws.com"},"us-gov-west-1/s3":"s3signature","us-west-1/s3":"s3signature","us-west-2/s3":"s3signature","eu-west-1/s3":"s3signature","ap-southeast-1/s3":"s3signature","ap-southeast-2/s3":"s3signature","ap-northeast-1/s3":"s3signature","sa-east-1/s3":"s3signature","us-east-1/s3":{"endpoint":"{service}.amazonaws.com","signatureVersion":"s3"},"us-east-1/sdb":{"endpoint":"{service}.amazonaws.com","signatureVersion":"v2"},"*/sdb":{"endpoint":"{service}.{region}.amazonaws.com","signatureVersion":"v2"}},"fipsRules":{"*/*":"fipsStandard","us-gov-*/*":"fipsStandard","us-iso-*/*":{"endpoint":"{service}-fips.{region}.c2s.ic.gov"},"us-iso-*/dms":"usIso","us-isob-*/*":{"endpoint":"{service}-fips.{region}.sc2s.sgov.gov"},"us-isob-*/dms":"usIsob","cn-*/*":{"endpoint":"{service}-fips.{region}.amazonaws.com.cn"},"*/api.ecr":"fips.api.ecr","*/api.sagemaker":"fips.api.sagemaker","*/batch":"fipsDotPrefix","*/eks":"fipsDotPrefix","*/models.lex":"fips.models.lex","*/runtime.lex":"fips.runtime.lex","*/runtime.sagemaker":{"endpoint":"runtime-fips.sagemaker.{region}.amazonaws.com"},"*/iam":"fipsWithoutRegion","*/route53":"fipsWithoutRegion","*/transcribe":"fipsDotPrefix","*/waf":"fipsWithoutRegion","us-gov-*/transcribe":"fipsDotPrefix","us-gov-*/api.ecr":"fips.api.ecr","us-gov-*/api.sagemaker":"fips.api.sagemaker","us-gov-*/models.lex":"fips.models.lex","us-gov-*/runtime.lex":"fips.runtime.lex","us-gov-*/acm-pca":"fipsWithServiceOnly","us-gov-*/batch":"fipsWithServiceOnly","us-gov-*/config":"fipsWithServiceOnly","us-gov-*/eks":"fipsWithServiceOnly","us-gov-*/elasticmapreduce":"fipsWithServiceOnly","us-gov-*/identitystore":"fipsWithServiceOnly","us-gov-*/dynamodb":"fipsWithServiceOnly","us-gov-*/elasticloadbalancing":"fipsWithServiceOnly","us-gov-*/guardduty":"fipsWithServiceOnly","us-gov-*/monitoring":"fipsWithServiceOnly","us-gov-*/resource-groups":"fipsWithServiceOnly","us-gov-*/runtime.sagemaker":"fipsWithServiceOnly","us-gov-*/servicecatalog-appregistry":"fipsWithServiceOnly","us-gov-*/servicequotas":"fipsWithServiceOnly","us-gov-*/ssm":"fipsWithServiceOnly","us-gov-*/sts":"fipsWithServiceOnly","us-gov-*/support":"fipsWithServiceOnly","us-gov-west-1/states":"fipsWithServiceOnly","us-iso-east-1/elasticfilesystem":{"endpoint":"elasticfilesystem-fips.{region}.c2s.ic.gov"},"us-gov-west-1/organizations":"fipsWithServiceOnly","us-gov-west-1/route53":{"endpoint":"route53.us-gov.amazonaws.com"}},"dualstackRules":{"*/*":{"endpoint":"{service}.{region}.api.aws"},"cn-*/*":{"endpoint":"{service}.{region}.api.amazonwebservices.com.cn"},"*/s3":"dualstackLegacy","cn-*/s3":"dualstackLegacyCn","*/s3-control":"dualstackLegacy","cn-*/s3-control":"dualstackLegacyCn","ap-south-1/ec2":"dualstackLegacyEc2","eu-west-1/ec2":"dualstackLegacyEc2","sa-east-1/ec2":"dualstackLegacyEc2","us-east-1/ec2":"dualstackLegacyEc2","us-east-2/ec2":"dualstackLegacyEc2","us-west-2/ec2":"dualstackLegacyEc2"},"dualstackFipsRules":{"*/*":{"endpoint":"{service}-fips.{region}.api.aws"},"cn-*/*":{"endpoint":"{service}-fips.{region}.api.amazonwebservices.com.cn"},"*/s3":"dualstackFipsLegacy","cn-*/s3":"dualstackFipsLegacyCn","*/s3-control":"dualstackFipsLegacy","cn-*/s3-control":"dualstackFipsLegacyCn"},"patterns":{"globalSSL":{"endpoint":"https://{service}.amazonaws.com","globalEndpoint":true,"signingRegion":"us-east-1"},"globalGovCloud":{"endpoint":"{service}.us-gov.amazonaws.com","globalEndpoint":true,"signingRegion":"us-gov-west-1"},"s3signature":{"endpoint":"{service}.{region}.amazonaws.com","signatureVersion":"s3"},"usIso":{"endpoint":"{service}.{region}.c2s.ic.gov"},"usIsob":{"endpoint":"{service}.{region}.sc2s.sgov.gov"},"fipsStandard":{"endpoint":"{service}-fips.{region}.amazonaws.com"},"fipsDotPrefix":{"endpoint":"fips.{service}.{region}.amazonaws.com"},"fipsWithoutRegion":{"endpoint":"{service}-fips.amazonaws.com"},"fips.api.ecr":{"endpoint":"ecr-fips.{region}.amazonaws.com"},"fips.api.sagemaker":{"endpoint":"api-fips.sagemaker.{region}.amazonaws.com"},"fips.models.lex":{"endpoint":"models-fips.lex.{region}.amazonaws.com"},"fips.runtime.lex":{"endpoint":"runtime-fips.lex.{region}.amazonaws.com"},"fipsWithServiceOnly":{"endpoint":"{service}.{region}.amazonaws.com"},"dualstackLegacy":{"endpoint":"{service}.dualstack.{region}.amazonaws.com"},"dualstackLegacyCn":{"endpoint":"{service}.dualstack.{region}.amazonaws.com.cn"},"dualstackFipsLegacy":{"endpoint":"{service}-fips.dualstack.{region}.amazonaws.com"},"dualstackFipsLegacyCn":{"endpoint":"{service}-fips.dualstack.{region}.amazonaws.com.cn"},"dualstackLegacyEc2":{"endpoint":"api.ec2.{region}.aws"}}}; + +/***/ }), + +/***/ 114: +/***/ (function(__unusedmodule, __unusedexports, __webpack_require__) { + +var AWS = __webpack_require__(395); +var path = __webpack_require__(622); +var crypto = __webpack_require__(417); +var iniLoader = AWS.util.iniLoader; -Object.defineProperty(exports, "__esModule", { value: true }); -var LRU_1 = __webpack_require__(629); -var CACHE_SIZE = 1000; /** - * Inspired node-lru-cache[https://github.com/isaacs/node-lru-cache] - */ -var EndpointCache = /** @class */ (function () { - function EndpointCache(maxSize) { - if (maxSize === void 0) { maxSize = CACHE_SIZE; } - this.maxSize = maxSize; + * Represents credentials from sso.getRoleCredentials API for + * `sso_*` values defined in shared credentials file. + * + * ## Using SSO credentials + * + * The credentials file must specify the information below to use sso: + * + * [default] + * sso_account_id = 012345678901 + * sso_region = us-east-1 + * sso_role_name = SampleRole + * sso_start_url = https://d-abc123.awsapps.com/start + * + * This information will be automatically added to your shared credentials file by running + * `aws configure sso`. + * + * ## Using custom profiles + * + * The SDK supports loading credentials for separate profiles. This can be done + * in two ways: + * + * 1. Set the `AWS_PROFILE` environment variable in your process prior to + * loading the SDK. + * 2. Directly load the AWS.SsoCredentials provider: + * + * ```javascript + * var creds = new AWS.SsoCredentials({profile: 'myprofile'}); + * AWS.config.credentials = creds; + * ``` + * + * @!macro nobrowser + */ +AWS.SsoCredentials = AWS.util.inherit(AWS.Credentials, { + /** + * Creates a new SsoCredentials object. + * + * @param options [map] a set of options + * @option options profile [String] (AWS_PROFILE env var or 'default') + * the name of the profile to load. + * @option options filename [String] ('~/.aws/credentials' or defined by + * AWS_SHARED_CREDENTIALS_FILE process env var) + * the filename to use when loading credentials. + * @option options callback [Function] (err) Credentials are eagerly loaded + * by the constructor. When the callback is called with no error, the + * credentials have been loaded successfully. + */ + constructor: function SsoCredentials(options) { + AWS.Credentials.call(this); + + options = options || {}; + this.errorCode = 'SsoCredentialsProviderFailure'; + this.expired = true; + + this.filename = options.filename; + this.profile = options.profile || process.env.AWS_PROFILE || AWS.util.defaultProfile; + this.service = options.ssoClient; + this.httpOptions = options.httpOptions || null; + this.get(options.callback || AWS.util.fn.noop); + }, + + /** + * @api private + */ + load: function load(callback) { + /** + * The time window (15 mins) that SDK will treat the SSO token expires in before the defined expiration date in token. + * This is needed because server side may have invalidated the token before the defined expiration date. + * + * @internal + */ + var EXPIRE_WINDOW_MS = 15 * 60 * 1000; + var self = this; + try { + var profiles = AWS.util.getProfilesFromSharedConfig(iniLoader, this.filename); + var profile = profiles[this.profile] || {}; + + if (Object.keys(profile).length === 0) { + throw AWS.util.error( + new Error('Profile ' + this.profile + ' not found'), + { code: self.errorCode } + ); + } + + if (!profile.sso_start_url || !profile.sso_account_id || !profile.sso_region || !profile.sso_role_name) { + throw AWS.util.error( + new Error('Profile ' + this.profile + ' does not have valid SSO credentials. Required parameters "sso_account_id", "sso_region", ' + + '"sso_role_name", "sso_start_url". Reference: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html'), + { code: self.errorCode } + ); + } + + var hasher = crypto.createHash('sha1'); + var fileName = hasher.update(profile.sso_start_url).digest('hex') + '.json'; + + var cachePath = path.join( + iniLoader.getHomeDir(), + '.aws', + 'sso', + 'cache', + fileName + ); + var cacheFile = AWS.util.readFileSync(cachePath); + var cacheContent = null; + if (cacheFile) { + cacheContent = JSON.parse(cacheFile); + } + + if (!cacheContent) { + throw AWS.util.error( + new Error('Cached credentials not found under ' + this.profile + ' profile. Please make sure you log in with aws sso login first'), + { code: self.errorCode } + ); + } + + if (!cacheContent.startUrl || !cacheContent.region || !cacheContent.accessToken || !cacheContent.expiresAt) { + throw AWS.util.error( + new Error('Cached credentials are missing required properties. Try running aws sso login.') + ); + } + + if (new Date(cacheContent.expiresAt).getTime() - Date.now() <= EXPIRE_WINDOW_MS) { + throw AWS.util.error(new Error( + 'The SSO session associated with this profile has expired. To refresh this SSO session run aws sso login with the corresponding profile.' + )); + } + + if (!self.service || self.service.config.region !== profile.sso_region) { + self.service = new AWS.SSO({ + region: profile.sso_region, + httpOptions: this.httpOptions, + }); + } + var request = { + accessToken: cacheContent.accessToken, + accountId: profile.sso_account_id, + roleName: profile.sso_role_name, + }; + self.service.getRoleCredentials(request, function(err, data) { + if (err || !data || !data.roleCredentials) { + callback(AWS.util.error( + err || new Error('Please log in using "aws sso login"'), + { code: self.errorCode } + ), null); + } else if (!data.roleCredentials.accessKeyId || !data.roleCredentials.secretAccessKey || !data.roleCredentials.sessionToken || !data.roleCredentials.expiration) { + throw AWS.util.error(new Error( + 'SSO returns an invalid temporary credential.' + )); + } else { + self.expired = false; + self.accessKeyId = data.roleCredentials.accessKeyId; + self.secretAccessKey = data.roleCredentials.secretAccessKey; + self.sessionToken = data.roleCredentials.sessionToken; + self.expireTime = new Date(data.roleCredentials.expiration); + callback(null); + } + }); + } catch (err) { + callback(err); + } + }, + + /** + * Loads the credentials from the AWS SSO process + * + * @callback callback function(err) + * Called after the AWS SSO process has been executed. When this + * callback is called with no error, it means that the credentials + * information has been loaded into the object (as the `accessKeyId`, + * `secretAccessKey`, and `sessionToken` properties). + * @param err [Error] if an error occurred, this value will be filled + * @see get + */ + refresh: function refresh(callback) { + iniLoader.clearCachedFiles(); + this.coalesceRefresh(callback || AWS.util.fn.callback); + }, +}); + + +/***/ }), + +/***/ 115: +/***/ (function(__unusedmodule, __unusedexports, __webpack_require__) { + +var AWS = __webpack_require__(395); + +/** + * Creates a token provider chain that searches for token in a list of + * token providers specified by the {providers} property. + * + * By default, the chain will use the {defaultProviders} to resolve token. + * + * ## Setting Providers + * + * Each provider in the {providers} list should be a function that returns + * a {AWS.Token} object, or a hardcoded token object. The function + * form allows for delayed execution of the Token construction. + * + * ## Resolving Token from a Chain + * + * Call {resolve} to return the first valid token object that can be + * loaded by the provider chain. + * + * For example, to resolve a chain with a custom provider that checks a file + * on disk after the set of {defaultProviders}: + * + * ```javascript + * var diskProvider = new FileTokenProvider('./token.json'); + * var chain = new AWS.TokenProviderChain(); + * chain.providers.push(diskProvider); + * chain.resolve(); + * ``` + * + * The above code will return the `diskProvider` object if the + * file contains token and the `defaultProviders` do not contain + * any token. + * + * @!attribute providers + * @return [Array] + * a list of token objects or functions that return token + * objects. If the provider is a function, the function will be + * executed lazily when the provider needs to be checked for valid + * token. By default, this object will be set to the {defaultProviders}. + * @see defaultProviders + */ +AWS.TokenProviderChain = AWS.util.inherit(AWS.Token, { + + /** + * Creates a new TokenProviderChain with a default set of providers + * specified by {defaultProviders}. + */ + constructor: function TokenProviderChain(providers) { + if (providers) { + this.providers = providers; + } else { + this.providers = AWS.TokenProviderChain.defaultProviders.slice(0); + } + this.resolveCallbacks = []; + }, + + /** + * @!method resolvePromise() + * Returns a 'thenable' promise. + * Resolves the provider chain by searching for the first token in {providers}. + * + * Two callbacks can be provided to the `then` method on the returned promise. + * The first callback will be called if the promise is fulfilled, and the second + * callback will be called if the promise is rejected. + * @callback fulfilledCallback function(token) + * Called if the promise is fulfilled and the provider resolves the chain + * to a token object + * @param token [AWS.Token] the token object resolved by the provider chain. + * @callback rejectedCallback function(error) + * Called if the promise is rejected. + * @param err [Error] the error object returned if no token is found. + * @return [Promise] A promise that represents the state of the `resolve` method call. + * @example Calling the `resolvePromise` method. + * var promise = chain.resolvePromise(); + * promise.then(function(token) { ... }, function(err) { ... }); + */ + + /** + * Resolves the provider chain by searching for the first token in {providers}. + * + * @callback callback function(err, token) + * Called when the provider resolves the chain to a token object + * or null if no token can be found. + * + * @param err [Error] the error object returned if no token is found. + * @param token [AWS.Token] the token object resolved by the provider chain. + * @return [AWS.TokenProviderChain] the provider, for chaining. + */ + resolve: function resolve(callback) { + var self = this; + if (self.providers.length === 0) { + callback(new Error('No providers')); + return self; + } + + if (self.resolveCallbacks.push(callback) === 1) { + var index = 0; + var providers = self.providers.slice(0); + + function resolveNext(err, token) { + if ((!err && token) || index === providers.length) { + AWS.util.arrayEach(self.resolveCallbacks, function (callback) { + callback(err, token); + }); + self.resolveCallbacks.length = 0; + return; + } + + var provider = providers[index++]; + if (typeof provider === 'function') { + token = provider.call(); + } else { + token = provider; + } + + if (token.get) { + token.get(function (getErr) { + resolveNext(getErr, getErr ? null : token); + }); + } else { + resolveNext(null, token); + } + } + + resolveNext(); + } + + return self; + } +}); + +/** + * The default set of providers used by a vanilla TokenProviderChain. + * + * In the browser: + * + * ```javascript + * AWS.TokenProviderChain.defaultProviders = [] + * ``` + * + * In Node.js: + * + * ```javascript + * AWS.TokenProviderChain.defaultProviders = [ + * function () { return new AWS.SSOTokenProvider(); }, + * ] + * ``` + */ +AWS.TokenProviderChain.defaultProviders = []; + +/** + * @api private + */ +AWS.TokenProviderChain.addPromisesToClass = function addPromisesToClass(PromiseDependency) { + this.prototype.resolvePromise = AWS.util.promisifyMethod('resolve', PromiseDependency); +}; + +/** + * @api private + */ +AWS.TokenProviderChain.deletePromisesFromClass = function deletePromisesFromClass() { + delete this.prototype.resolvePromise; +}; + +AWS.util.addPromises(AWS.TokenProviderChain); + + +/***/ }), + +/***/ 120: +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var LRU_1 = __webpack_require__(629); +var CACHE_SIZE = 1000; +/** + * Inspired node-lru-cache[https://github.com/isaacs/node-lru-cache] + */ +var EndpointCache = /** @class */ (function () { + function EndpointCache(maxSize) { + if (maxSize === void 0) { maxSize = CACHE_SIZE; } + this.maxSize = maxSize; this.cache = new LRU_1.LRUCache(maxSize); } ; @@ -976,75 +1537,469 @@ var EndpointCache = /** @class */ (function () { enumerable: true, configurable: true }); - EndpointCache.prototype.put = function (key, value) { - var keyString = typeof key !== 'string' ? EndpointCache.getKeyString(key) : key; - var endpointRecord = this.populateValue(value); - this.cache.put(keyString, endpointRecord); - }; - EndpointCache.prototype.get = function (key) { - var keyString = typeof key !== 'string' ? EndpointCache.getKeyString(key) : key; - var now = Date.now(); - var records = this.cache.get(keyString); - if (records) { - for (var i = 0; i < records.length; i++) { - var record = records[i]; - if (record.Expire < now) { - this.cache.remove(keyString); - return undefined; - } - } - } - return records; + EndpointCache.prototype.put = function (key, value) { + var keyString = typeof key !== 'string' ? EndpointCache.getKeyString(key) : key; + var endpointRecord = this.populateValue(value); + this.cache.put(keyString, endpointRecord); + }; + EndpointCache.prototype.get = function (key) { + var keyString = typeof key !== 'string' ? EndpointCache.getKeyString(key) : key; + var now = Date.now(); + var records = this.cache.get(keyString); + if (records) { + for (var i = records.length-1; i >= 0; i--) { + var record = records[i]; + if (record.Expire < now) { + records.splice(i, 1); + } + } + if (records.length === 0) { + this.cache.remove(keyString); + return undefined; + } + } + return records; + }; + EndpointCache.getKeyString = function (key) { + var identifiers = []; + var identifierNames = Object.keys(key).sort(); + for (var i = 0; i < identifierNames.length; i++) { + var identifierName = identifierNames[i]; + if (key[identifierName] === undefined) + continue; + identifiers.push(key[identifierName]); + } + return identifiers.join(' '); + }; + EndpointCache.prototype.populateValue = function (endpoints) { + var now = Date.now(); + return endpoints.map(function (endpoint) { return ({ + Address: endpoint.Address || '', + Expire: now + (endpoint.CachePeriodInMinutes || 1) * 60 * 1000 + }); }); + }; + EndpointCache.prototype.empty = function () { + this.cache.empty(); + }; + EndpointCache.prototype.remove = function (key) { + var keyString = typeof key !== 'string' ? EndpointCache.getKeyString(key) : key; + this.cache.remove(keyString); + }; + return EndpointCache; +}()); +exports.EndpointCache = EndpointCache; + +/***/ }), + +/***/ 129: +/***/ (function(module) { + +module.exports = require("child_process"); + +/***/ }), + +/***/ 135: +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _validate = _interopRequireDefault(__webpack_require__(634)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function version(uuid) { + if (!(0, _validate.default)(uuid)) { + throw TypeError('Invalid UUID'); + } + + return parseInt(uuid.substr(14, 1), 16); +} + +var _default = version; +exports.default = _default; + +/***/ }), + +/***/ 136: +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = _default; +exports.URL = exports.DNS = void 0; + +var _stringify = _interopRequireDefault(__webpack_require__(960)); + +var _parse = _interopRequireDefault(__webpack_require__(204)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function stringToBytes(str) { + str = unescape(encodeURIComponent(str)); // UTF8 escape + + const bytes = []; + + for (let i = 0; i < str.length; ++i) { + bytes.push(str.charCodeAt(i)); + } + + return bytes; +} + +const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8'; +exports.DNS = DNS; +const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8'; +exports.URL = URL; + +function _default(name, version, hashfunc) { + function generateUUID(value, namespace, buf, offset) { + if (typeof value === 'string') { + value = stringToBytes(value); + } + + if (typeof namespace === 'string') { + namespace = (0, _parse.default)(namespace); + } + + if (namespace.length !== 16) { + throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)'); + } // Compute hash of namespace and value, Per 4.3 + // Future: Use spread syntax when supported on all platforms, e.g. `bytes = + // hashfunc([...namespace, ... value])` + + + let bytes = new Uint8Array(16 + value.length); + bytes.set(namespace); + bytes.set(value, namespace.length); + bytes = hashfunc(bytes); + bytes[6] = bytes[6] & 0x0f | version; + bytes[8] = bytes[8] & 0x3f | 0x80; + + if (buf) { + offset = offset || 0; + + for (let i = 0; i < 16; ++i) { + buf[offset + i] = bytes[i]; + } + + return buf; + } + + return (0, _stringify.default)(bytes); + } // Function#name is not settable on some platforms (#270) + + + try { + generateUUID.name = name; // eslint-disable-next-line no-empty + } catch (err) {} // For CommonJS default export support + + + generateUUID.DNS = DNS; + generateUUID.URL = URL; + return generateUUID; +} + +/***/ }), + +/***/ 141: +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + + +var net = __webpack_require__(631); +var tls = __webpack_require__(16); +var http = __webpack_require__(605); +var https = __webpack_require__(211); +var events = __webpack_require__(614); +var assert = __webpack_require__(357); +var util = __webpack_require__(669); + + +exports.httpOverHttp = httpOverHttp; +exports.httpsOverHttp = httpsOverHttp; +exports.httpOverHttps = httpOverHttps; +exports.httpsOverHttps = httpsOverHttps; + + +function httpOverHttp(options) { + var agent = new TunnelingAgent(options); + agent.request = http.request; + return agent; +} + +function httpsOverHttp(options) { + var agent = new TunnelingAgent(options); + agent.request = http.request; + agent.createSocket = createSecureSocket; + agent.defaultPort = 443; + return agent; +} + +function httpOverHttps(options) { + var agent = new TunnelingAgent(options); + agent.request = https.request; + return agent; +} + +function httpsOverHttps(options) { + var agent = new TunnelingAgent(options); + agent.request = https.request; + agent.createSocket = createSecureSocket; + agent.defaultPort = 443; + return agent; +} + + +function TunnelingAgent(options) { + var self = this; + self.options = options || {}; + self.proxyOptions = self.options.proxy || {}; + self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets; + self.requests = []; + self.sockets = []; + + self.on('free', function onFree(socket, host, port, localAddress) { + var options = toOptions(host, port, localAddress); + for (var i = 0, len = self.requests.length; i < len; ++i) { + var pending = self.requests[i]; + if (pending.host === options.host && pending.port === options.port) { + // Detect the request to connect same origin server, + // reuse the connection. + self.requests.splice(i, 1); + pending.request.onSocket(socket); + return; + } + } + socket.destroy(); + self.removeSocket(socket); + }); +} +util.inherits(TunnelingAgent, events.EventEmitter); + +TunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) { + var self = this; + var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress)); + + if (self.sockets.length >= this.maxSockets) { + // We are over limit so we'll add it to the queue. + self.requests.push(options); + return; + } + + // If we are under maxSockets create a new one. + self.createSocket(options, function(socket) { + socket.on('free', onFree); + socket.on('close', onCloseOrRemove); + socket.on('agentRemove', onCloseOrRemove); + req.onSocket(socket); + + function onFree() { + self.emit('free', socket, options); + } + + function onCloseOrRemove(err) { + self.removeSocket(socket); + socket.removeListener('free', onFree); + socket.removeListener('close', onCloseOrRemove); + socket.removeListener('agentRemove', onCloseOrRemove); + } + }); +}; + +TunnelingAgent.prototype.createSocket = function createSocket(options, cb) { + var self = this; + var placeholder = {}; + self.sockets.push(placeholder); + + var connectOptions = mergeOptions({}, self.proxyOptions, { + method: 'CONNECT', + path: options.host + ':' + options.port, + agent: false, + headers: { + host: options.host + ':' + options.port + } + }); + if (options.localAddress) { + connectOptions.localAddress = options.localAddress; + } + if (connectOptions.proxyAuth) { + connectOptions.headers = connectOptions.headers || {}; + connectOptions.headers['Proxy-Authorization'] = 'Basic ' + + new Buffer(connectOptions.proxyAuth).toString('base64'); + } + + debug('making CONNECT request'); + var connectReq = self.request(connectOptions); + connectReq.useChunkedEncodingByDefault = false; // for v0.6 + connectReq.once('response', onResponse); // for v0.6 + connectReq.once('upgrade', onUpgrade); // for v0.6 + connectReq.once('connect', onConnect); // for v0.7 or later + connectReq.once('error', onError); + connectReq.end(); + + function onResponse(res) { + // Very hacky. This is necessary to avoid http-parser leaks. + res.upgrade = true; + } + + function onUpgrade(res, socket, head) { + // Hacky. + process.nextTick(function() { + onConnect(res, socket, head); + }); + } + + function onConnect(res, socket, head) { + connectReq.removeAllListeners(); + socket.removeAllListeners(); + + if (res.statusCode !== 200) { + debug('tunneling socket could not be established, statusCode=%d', + res.statusCode); + socket.destroy(); + var error = new Error('tunneling socket could not be established, ' + + 'statusCode=' + res.statusCode); + error.code = 'ECONNRESET'; + options.request.emit('error', error); + self.removeSocket(placeholder); + return; + } + if (head.length > 0) { + debug('got illegal response body from proxy'); + socket.destroy(); + var error = new Error('got illegal response body from proxy'); + error.code = 'ECONNRESET'; + options.request.emit('error', error); + self.removeSocket(placeholder); + return; + } + debug('tunneling connection has established'); + self.sockets[self.sockets.indexOf(placeholder)] = socket; + return cb(socket); + } + + function onError(cause) { + connectReq.removeAllListeners(); + + debug('tunneling socket could not be established, cause=%s\n', + cause.message, cause.stack); + var error = new Error('tunneling socket could not be established, ' + + 'cause=' + cause.message); + error.code = 'ECONNRESET'; + options.request.emit('error', error); + self.removeSocket(placeholder); + } +}; + +TunnelingAgent.prototype.removeSocket = function removeSocket(socket) { + var pos = this.sockets.indexOf(socket) + if (pos === -1) { + return; + } + this.sockets.splice(pos, 1); + + var pending = this.requests.shift(); + if (pending) { + // If we have pending requests and a socket gets closed a new one + // needs to be created to take over in the pool for the one that closed. + this.createSocket(pending, function(socket) { + pending.request.onSocket(socket); + }); + } +}; + +function createSecureSocket(options, cb) { + var self = this; + TunnelingAgent.prototype.createSocket.call(self, options, function(socket) { + var hostHeader = options.request.getHeader('host'); + var tlsOptions = mergeOptions({}, self.options, { + socket: socket, + servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host + }); + + // 0 is dummy port for v0.6 + var secureSocket = tls.connect(0, tlsOptions); + self.sockets[self.sockets.indexOf(socket)] = secureSocket; + cb(secureSocket); + }); +} + + +function toOptions(host, port, localAddress) { + if (typeof host === 'string') { // since v0.10 + return { + host: host, + port: port, + localAddress: localAddress }; - EndpointCache.getKeyString = function (key) { - var identifiers = []; - var identifierNames = Object.keys(key).sort(); - for (var i = 0; i < identifierNames.length; i++) { - var identifierName = identifierNames[i]; - if (key[identifierName] === undefined) - continue; - identifiers.push(key[identifierName]); + } + return host; // for v0.11 or later +} + +function mergeOptions(target) { + for (var i = 1, len = arguments.length; i < len; ++i) { + var overrides = arguments[i]; + if (typeof overrides === 'object') { + var keys = Object.keys(overrides); + for (var j = 0, keyLen = keys.length; j < keyLen; ++j) { + var k = keys[j]; + if (overrides[k] !== undefined) { + target[k] = overrides[k]; } - return identifiers.join(' '); - }; - EndpointCache.prototype.populateValue = function (endpoints) { - var now = Date.now(); - return endpoints.map(function (endpoint) { return ({ - Address: endpoint.Address || '', - Expire: now + (endpoint.CachePeriodInMinutes || 1) * 60 * 1000 - }); }); - }; - EndpointCache.prototype.empty = function () { - this.cache.empty(); - }; - EndpointCache.prototype.remove = function (key) { - var keyString = typeof key !== 'string' ? EndpointCache.getKeyString(key) : key; - this.cache.remove(keyString); - }; - return EndpointCache; -}()); -exports.EndpointCache = EndpointCache; + } + } + } + return target; +} -/***/ }), -/***/ 129: -/***/ (function(module) { +var debug; +if (process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG)) { + debug = function() { + var args = Array.prototype.slice.call(arguments); + if (typeof args[0] === 'string') { + args[0] = 'TUNNEL: ' + args[0]; + } else { + args.unshift('TUNNEL:'); + } + console.error.apply(console, args); + } +} else { + debug = function() {}; +} +exports.debug = debug; // for test -module.exports = require("child_process"); /***/ }), -/***/ 139: -/***/ (function(module, __unusedexports, __webpack_require__) { +/***/ 143: +/***/ (function(__unusedmodule, __unusedexports, __webpack_require__) { -// Unique ID creation requires a high quality random # generator. In node.js -// this is pretty straight-forward - we use the crypto API. +var AWS = __webpack_require__(395); -var crypto = __webpack_require__(417); +/** + * @api private + */ +AWS.Signers.Bearer = AWS.util.inherit(AWS.Signers.RequestSigner, { + constructor: function Bearer(request) { + AWS.Signers.RequestSigner.call(this, request); + }, -module.exports = function nodeRNG() { - return crypto.randomBytes(16); -}; + addAuthorization: function addAuthorization(token) { + this.request.httpRequest.headers['Authorization'] = 'Bearer ' + token.token; + } +}); /***/ }), @@ -1269,15 +2224,28 @@ var util = { parse: function string(ini) { var currentSection, map = {}; util.arrayEach(ini.split(/\r?\n/), function(line) { - line = line.split(/(^|\s)[;#]/)[0]; // remove comments - var section = line.match(/^\s*\[([^\[\]]+)\]\s*$/); - if (section) { - currentSection = section[1]; + line = line.split(/(^|\s)[;#]/)[0].trim(); // remove comments and trim + var isSection = line[0] === '[' && line[line.length - 1] === ']'; + if (isSection) { + currentSection = line.substring(1, line.length - 1); + if (currentSection === '__proto__' || currentSection.split(/\s/)[1] === '__proto__') { + throw util.error( + new Error('Cannot load profile name \'' + currentSection + '\' from shared ini file.') + ); + } } else if (currentSection) { - var item = line.match(/^\s*(.+?)\s*=\s*(.+?)\s*$/); - if (item) { + var indexOfEqualsSign = line.indexOf('='); + var start = 0; + var end = line.length - 1; + var isAssignment = + indexOfEqualsSign !== -1 && indexOfEqualsSign !== start && indexOfEqualsSign !== end; + + if (isAssignment) { + var name = line.substring(0, indexOfEqualsSign).trim(); + var value = line.substring(indexOfEqualsSign + 1).trim(); + map[currentSection] = map[currentSection] || {}; - map[currentSection][item[1]] = item[2]; + map[currentSection][name] = value; } } }); @@ -1927,13 +2895,17 @@ var util = { var errCallback = function(err) { var maxRetries = options.maxRetries || 0; if (err && err.code === 'TimeoutError') err.retryable = true; - var delay = util.calculateRetryDelay(retryCount, options.retryDelayOptions, err); - if (err && err.retryable && retryCount < maxRetries && delay >= 0) { - retryCount++; - setTimeout(sendRequest, delay + (err.retryAfter || 0)); - } else { - cb(err); + + // Call `calculateRetryDelay()` only when relevant, see #3401 + if (err && err.retryable && retryCount < maxRetries) { + var delay = util.calculateRetryDelay(retryCount, options.retryDelayOptions, err); + if (delay >= 0) { + retryCount++; + setTimeout(sendRequest, delay + (err.retryAfter || 0)); + return; + } } + cb(err); }; var sendRequest = function() { @@ -1967,7 +2939,7 @@ var util = { */ uuid: { v4: function uuidV4() { - return __webpack_require__(898).v4(); + return __webpack_require__(62).v4(); } }, @@ -2016,17 +2988,33 @@ var util = { filename: process.env[util.sharedConfigFileEnv] }); } - var profilesFromCreds = iniLoader.loadFrom({ - filename: filename || - (process.env[util.configOptInEnv] && process.env[util.sharedCredentialsFileEnv]) - }); + var profilesFromCreds= {}; + try { + var profilesFromCreds = iniLoader.loadFrom({ + filename: filename || + (process.env[util.configOptInEnv] && process.env[util.sharedCredentialsFileEnv]) + }); + } catch (error) { + // if using config, assume it is fully descriptive without a credentials file: + if (!process.env[util.configOptInEnv]) throw error; + } for (var i = 0, profileNames = Object.keys(profilesFromConfig); i < profileNames.length; i++) { - profiles[profileNames[i]] = profilesFromConfig[profileNames[i]]; + profiles[profileNames[i]] = objectAssign(profiles[profileNames[i]] || {}, profilesFromConfig[profileNames[i]]); } for (var i = 0, profileNames = Object.keys(profilesFromCreds); i < profileNames.length; i++) { - profiles[profileNames[i]] = profilesFromCreds[profileNames[i]]; + profiles[profileNames[i]] = objectAssign(profiles[profileNames[i]] || {}, profilesFromCreds[profileNames[i]]); } return profiles; + + /** + * Roughly the semantics of `Object.assign(target, source)` + */ + function objectAssign(target, source) { + for (var i = 0, keys = Object.keys(source); i < keys.length; i++) { + target[keys[i]] = source[keys[i]]; + } + return target; + } }, /** @@ -2078,24 +3066,262 @@ var util = { */ sharedConfigFileEnv: 'AWS_CONFIG_FILE', - /** - * @api private - */ - imdsDisabledEnv: 'AWS_EC2_METADATA_DISABLED' + /** + * @api private + */ + imdsDisabledEnv: 'AWS_EC2_METADATA_DISABLED' +}; + +/** + * @api private + */ +module.exports = util; + + +/***/ }), + +/***/ 154: +/***/ (function(__unusedmodule, __unusedexports, __webpack_require__) { + +var AWS = __webpack_require__(395); + +/** + * Represents AWS token object, which contains {token}, and optional + * {expireTime}. + * Creating a `Token` object allows you to pass around your + * token to configuration and service objects. + * + * Note that this class typically does not need to be constructed manually, + * as the {AWS.Config} and {AWS.Service} classes both accept simple + * options hashes with the two keys. The token from this object will be used + * automatically in operations which require them. + * + * ## Expiring and Refreshing Token + * + * Occasionally token can expire in the middle of a long-running + * application. In this case, the SDK will automatically attempt to + * refresh the token from the storage location if the Token + * class implements the {refresh} method. + * + * If you are implementing a token storage location, you + * will want to create a subclass of the `Token` class and + * override the {refresh} method. This method allows token to be + * retrieved from the backing store, be it a file system, database, or + * some network storage. The method should reset the token attributes + * on the object. + * + * @!attribute token + * @return [String] represents the literal token string. This will typically + * be a base64 encoded string. + * @!attribute expireTime + * @return [Date] a time when token should be considered expired. Used + * in conjunction with {expired}. + * @!attribute expired + * @return [Boolean] whether the token is expired and require a refresh. Used + * in conjunction with {expireTime}. + */ +AWS.Token = AWS.util.inherit({ + /** + * Creates a Token object with a given set of information in options hash. + * @option options token [String] represents the literal token string. + * @option options expireTime [Date] field representing the time at which + * the token expires. + * @example Create a token object + * var token = new AWS.Token({ token: 'token' }); + */ + constructor: function Token(options) { + // hide token from being displayed with util.inspect + AWS.util.hideProperties(this, ['token']); + + this.expired = false; + this.expireTime = null; + this.refreshCallbacks = []; + if (arguments.length === 1) { + var options = arguments[0]; + this.token = options.token; + this.expireTime = options.expireTime; + } + }, + + /** + * @return [Integer] the number of seconds before {expireTime} during which + * the token will be considered expired. + */ + expiryWindow: 15, + + /** + * @return [Boolean] whether the Token object should call {refresh} + * @note Subclasses should override this method to provide custom refresh + * logic. + */ + needsRefresh: function needsRefresh() { + var currentTime = AWS.util.date.getDate().getTime(); + var adjustedTime = new Date(currentTime + this.expiryWindow * 1000); + + if (this.expireTime && adjustedTime > this.expireTime) + return true; + + return this.expired || !this.token; + }, + + /** + * Gets the existing token, refreshing them if they are not yet loaded + * or have expired. Users should call this method before using {refresh}, + * as this will not attempt to reload token when they are already + * loaded into the object. + * + * @callback callback function(err) + * When this callback is called with no error, it means either token + * do not need to be refreshed or refreshed token information has + * been loaded into the object (as the `token` property). + * @param err [Error] if an error occurred, this value will be filled + */ + get: function get(callback) { + var self = this; + if (this.needsRefresh()) { + this.refresh(function(err) { + if (!err) self.expired = false; // reset expired flag + if (callback) callback(err); + }); + } else if (callback) { + callback(); + } + }, + + /** + * @!method getPromise() + * Returns a 'thenable' promise. + * Gets the existing token, refreshing it if it's not yet loaded + * or have expired. Users should call this method before using {refresh}, + * as this will not attempt to reload token when it's already + * loaded into the object. + * + * Two callbacks can be provided to the `then` method on the returned promise. + * The first callback will be called if the promise is fulfilled, and the second + * callback will be called if the promise is rejected. + * @callback fulfilledCallback function() + * Called if the promise is fulfilled. When this callback is called, it means + * either token does not need to be refreshed or refreshed token information + * has been loaded into the object (as the `token` property). + * @callback rejectedCallback function(err) + * Called if the promise is rejected. + * @param err [Error] if an error occurred, this value will be filled. + * @return [Promise] A promise that represents the state of the `get` call. + * @example Calling the `getPromise` method. + * var promise = tokenProvider.getPromise(); + * promise.then(function() { ... }, function(err) { ... }); + */ + + /** + * @!method refreshPromise() + * Returns a 'thenable' promise. + * Refreshes the token. Users should call {get} before attempting + * to forcibly refresh token. + * + * Two callbacks can be provided to the `then` method on the returned promise. + * The first callback will be called if the promise is fulfilled, and the second + * callback will be called if the promise is rejected. + * @callback fulfilledCallback function() + * Called if the promise is fulfilled. When this callback is called, it + * means refreshed token information has been loaded into the object + * (as the `token` property). + * @callback rejectedCallback function(err) + * Called if the promise is rejected. + * @param err [Error] if an error occurred, this value will be filled. + * @return [Promise] A promise that represents the state of the `refresh` call. + * @example Calling the `refreshPromise` method. + * var promise = tokenProvider.refreshPromise(); + * promise.then(function() { ... }, function(err) { ... }); + */ + + /** + * Refreshes the token. Users should call {get} before attempting + * to forcibly refresh token. + * + * @callback callback function(err) + * When this callback is called with no error, it means refreshed + * token information has been loaded into the object (as the + * `token` property). + * @param err [Error] if an error occurred, this value will be filled + * @note Subclasses should override this class to reset the + * {token} on the token object and then call the callback with + * any error information. + * @see get + */ + refresh: function refresh(callback) { + this.expired = false; + callback(); + }, + + /** + * @api private + * @param callback + */ + coalesceRefresh: function coalesceRefresh(callback, sync) { + var self = this; + if (self.refreshCallbacks.push(callback) === 1) { + self.load(function onLoad(err) { + AWS.util.arrayEach(self.refreshCallbacks, function(callback) { + if (sync) { + callback(err); + } else { + // callback could throw, so defer to ensure all callbacks are notified + AWS.util.defer(function () { + callback(err); + }); + } + }); + self.refreshCallbacks.length = 0; + }); + } + }, + + /** + * @api private + * @param callback + */ + load: function load(callback) { + callback(); + } +}); + +/** + * @api private + */ +AWS.Token.addPromisesToClass = function addPromisesToClass(PromiseDependency) { + this.prototype.getPromise = AWS.util.promisifyMethod('get', PromiseDependency); + this.prototype.refreshPromise = AWS.util.promisifyMethod('refresh', PromiseDependency); }; /** * @api private */ -module.exports = util; +AWS.Token.deletePromisesFromClass = function deletePromisesFromClass() { + delete this.prototype.getPromise; + delete this.prototype.refreshPromise; +}; + +AWS.util.addPromises(AWS.Token); /***/ }), -/***/ 154: +/***/ 160: /***/ (function(module) { -module.exports = {"version":2,"waiters":{"DeploymentSuccessful":{"delay":15,"operation":"GetDeployment","maxAttempts":120,"acceptors":[{"expected":"Succeeded","matcher":"path","state":"success","argument":"deploymentInfo.status"},{"expected":"Failed","matcher":"path","state":"failure","argument":"deploymentInfo.status"},{"expected":"Stopped","matcher":"path","state":"failure","argument":"deploymentInfo.status"}]}}}; +var ENV_ENDPOINT_NAME = 'AWS_EC2_METADATA_SERVICE_ENDPOINT'; +var CONFIG_ENDPOINT_NAME = 'ec2_metadata_service_endpoint'; + +var getEndpointConfigOptions = function() { + return { + environmentVariableSelector: function(env) { return env[ENV_ENDPOINT_NAME]; }, + configFileSelector: function(profile) { return profile[CONFIG_ENDPOINT_NAME]; }, + default: undefined, + }; +}; + +module.exports = getEndpointConfigOptions; + /***/ }), @@ -2130,7 +3356,7 @@ module.exports = apiLoader; var AWS = __webpack_require__(395); var CognitoIdentity = __webpack_require__(214); -var STS = __webpack_require__(733); +var STS = __webpack_require__(106); /** * Represents credentials retrieved from STS Web Identity Federation using @@ -2515,6 +3741,34 @@ AWS.CognitoIdentityCredentials = AWS.util.inherit(AWS.Credentials, { }); +/***/ }), + +/***/ 171: +/***/ (function(module) { + +function isFipsRegion(region) { + return typeof region === 'string' && (region.startsWith('fips-') || region.endsWith('-fips')); +} + +function isGlobalRegion(region) { + return typeof region === 'string' && ['aws-global', 'aws-us-gov-global'].includes(region); +} + +function getRealRegion(region) { + return ['fips-aws-global', 'aws-fips', 'aws-global'].includes(region) + ? 'us-east-1' + : ['fips-aws-us-gov-global', 'aws-us-gov-global'].includes(region) + ? 'us-gov-west-1' + : region.replace(/fips-(dkr-|prod-)?|-fips/, ''); +} + +module.exports = { + isFipsRegion: isFipsRegion, + isGlobalRegion: isGlobalRegion, + getRealRegion: getRealRegion +}; + + /***/ }), /***/ 175: @@ -2592,12 +3846,80 @@ module.exports = { }; +/***/ }), + +/***/ 177: +/***/ (function(__unusedmodule, exports) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.checkBypass = exports.getProxyUrl = void 0; +function getProxyUrl(reqUrl) { + const usingSsl = reqUrl.protocol === 'https:'; + if (checkBypass(reqUrl)) { + return undefined; + } + const proxyVar = (() => { + if (usingSsl) { + return process.env['https_proxy'] || process.env['HTTPS_PROXY']; + } + else { + return process.env['http_proxy'] || process.env['HTTP_PROXY']; + } + })(); + if (proxyVar) { + return new URL(proxyVar); + } + else { + return undefined; + } +} +exports.getProxyUrl = getProxyUrl; +function checkBypass(reqUrl) { + if (!reqUrl.hostname) { + return false; + } + const noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || ''; + if (!noProxy) { + return false; + } + // Determine the request port + let reqPort; + if (reqUrl.port) { + reqPort = Number(reqUrl.port); + } + else if (reqUrl.protocol === 'http:') { + reqPort = 80; + } + else if (reqUrl.protocol === 'https:') { + reqPort = 443; + } + // Format the request hostname and hostname with port + const upperReqHosts = [reqUrl.hostname.toUpperCase()]; + if (typeof reqPort === 'number') { + upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`); + } + // Compare request host against noproxy + for (const upperNoProxyItem of noProxy + .split(',') + .map(x => x.trim().toUpperCase()) + .filter(x => x)) { + if (upperReqHosts.some(x => x === upperNoProxyItem)) { + return true; + } + } + return false; +} +exports.checkBypass = checkBypass; +//# sourceMappingURL=proxy.js.map + /***/ }), /***/ 179: /***/ (function(module) { -module.exports = {"pagination":{"GetAccountAuthorizationDetails":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":["UserDetailList","GroupDetailList","RoleDetailList","Policies"]},"GetGroup":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":"Users"},"ListAccessKeys":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":"AccessKeyMetadata"},"ListAccountAliases":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":"AccountAliases"},"ListAttachedGroupPolicies":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":"AttachedPolicies"},"ListAttachedRolePolicies":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":"AttachedPolicies"},"ListAttachedUserPolicies":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":"AttachedPolicies"},"ListEntitiesForPolicy":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":["PolicyGroups","PolicyUsers","PolicyRoles"]},"ListGroupPolicies":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":"PolicyNames"},"ListGroups":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":"Groups"},"ListGroupsForUser":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":"Groups"},"ListInstanceProfiles":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":"InstanceProfiles"},"ListInstanceProfilesForRole":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":"InstanceProfiles"},"ListMFADevices":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":"MFADevices"},"ListPolicies":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":"Policies"},"ListPolicyVersions":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":"Versions"},"ListRolePolicies":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":"PolicyNames"},"ListRoles":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":"Roles"},"ListSAMLProviders":{"result_key":"SAMLProviderList"},"ListSSHPublicKeys":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":"SSHPublicKeys"},"ListServerCertificates":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":"ServerCertificateMetadataList"},"ListSigningCertificates":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":"Certificates"},"ListUserPolicies":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":"PolicyNames"},"ListUsers":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":"Users"},"ListVirtualMFADevices":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":"VirtualMFADevices"},"SimulateCustomPolicy":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":"EvaluationResults"},"SimulatePrincipalPolicy":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":"EvaluationResults"}}}; +module.exports = {"pagination":{"GetAccountAuthorizationDetails":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":["UserDetailList","GroupDetailList","RoleDetailList","Policies"]},"GetGroup":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":"Users"},"ListAccessKeys":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":"AccessKeyMetadata"},"ListAccountAliases":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":"AccountAliases"},"ListAttachedGroupPolicies":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":"AttachedPolicies"},"ListAttachedRolePolicies":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":"AttachedPolicies"},"ListAttachedUserPolicies":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":"AttachedPolicies"},"ListEntitiesForPolicy":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":["PolicyGroups","PolicyUsers","PolicyRoles"]},"ListGroupPolicies":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":"PolicyNames"},"ListGroups":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":"Groups"},"ListGroupsForUser":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":"Groups"},"ListInstanceProfiles":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":"InstanceProfiles"},"ListInstanceProfilesForRole":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":"InstanceProfiles"},"ListMFADevices":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":"MFADevices"},"ListPolicies":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":"Policies"},"ListPolicyVersions":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":"Versions"},"ListRolePolicies":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":"PolicyNames"},"ListRoles":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":"Roles"},"ListSAMLProviders":{"result_key":"SAMLProviderList"},"ListSSHPublicKeys":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":"SSHPublicKeys"},"ListServerCertificates":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":"ServerCertificateMetadataList"},"ListSigningCertificates":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":"Certificates"},"ListUserPolicies":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":"PolicyNames"},"ListUserTags":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":"Tags"},"ListUsers":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":"Users"},"ListVirtualMFADevices":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":"VirtualMFADevices"},"SimulateCustomPolicy":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":"EvaluationResults"},"SimulatePrincipalPolicy":{"input_token":"Marker","limit_key":"MaxItems","more_results":"IsTruncated","output_token":"Marker","result_key":"EvaluationResults"}}}; /***/ }), @@ -2660,7 +3982,7 @@ var PromisesDependency; * * @!attribute computeChecksums * @return [Boolean] whether to compute checksums for payload bodies when - * the service accepts it (currently supported in S3 only). + * the service accepts it (currently supported in S3 and SQS only). * * @!attribute convertResponseTypes * @return [Boolean] whether types are converted when parsing response data. @@ -2723,7 +4045,7 @@ var PromisesDependency; * retry count and error and returns the amount of time to delay in * milliseconds. If the result is a non-zero negative value, no further * retry attempts will be made. The `base` option will be ignored if this - * option is supplied. + * option is supplied. The function is only called for retryable errors. * * @!attribute httpOptions * @return [map] A set of options to pass to the low-level HTTP request. @@ -2739,9 +4061,9 @@ var PromisesDependency; * failing to establish a connection with the server after * `connectTimeout` milliseconds. This timeout has no effect once a socket * connection has been established. - * * **timeout** [Integer] — Sets the socket to timeout after timeout - * milliseconds of inactivity on the socket. Defaults to two minutes - * (120000) + * * **timeout** [Integer] — The number of milliseconds a request can + * take before automatically being terminated. + * Defaults to two minutes (120000). * * **xhrAsync** [Boolean] — Whether the SDK will send asynchronous * HTTP requests. Used in the browser environment only. Set to false to * send requests synchronously. Defaults to true (async on). @@ -2791,7 +4113,13 @@ var PromisesDependency; * @!attribute stsRegionalEndpoints * @return ['legacy'|'regional'] whether to send sts request to global endpoints or * regional endpoints. - * Defaults to 'legacy' + * Defaults to 'legacy'. + * + * @!attribute useFipsEndpoint + * @return [Boolean] Enables FIPS compatible endpoints. Defaults to `false`. + * + * @!attribute useDualstackEndpoint + * @return [Boolean] Enables IPv6 dualstack endpoint. Defaults to `false`. */ AWS.Config = AWS.util.inherit({ /** @@ -2876,7 +4204,7 @@ AWS.Config = AWS.util.inherit({ * retry count and error and returns the amount of time to delay in * milliseconds. If the result is a non-zero negative value, no further * retry attempts will be made. The `base` option will be ignored if this - * option is supplied. + * option is supplied. The function is only called for retryable errors. * @option options httpOptions [map] A set of options to pass to the low-level * HTTP request. Currently supported options are: * @@ -2946,6 +4274,10 @@ AWS.Config = AWS.util.inherit({ * @option options stsRegionalEndpoints ['legacy'|'regional'] whether to send sts request * to global endpoints or regional endpoints. * Defaults to 'legacy'. + * @option options useFipsEndpoint [Boolean] Enables FIPS compatible endpoints. + * Defaults to `false`. + * @option options useDualstackEndpoint [Boolean] Enables IPv6 dualstack endpoint. + * Defaults to `false`. */ constructor: function Config(options) { if (options === undefined) options = {}; @@ -3038,6 +4370,82 @@ AWS.Config = AWS.util.inherit({ } }, + /** + * Loads token from the configuration object. This is used internally + * by the SDK to ensure that refreshable {Token} objects are properly + * refreshed and loaded when sending a request. If you want to ensure that + * your token is loaded prior to a request, you can use this method + * directly to provide accurate token data stored in the object. + * + * @note If you configure the SDK with static token, the token data should + * already be present in {token} attribute. This method is primarily necessary + * to load token from asynchronous sources, or sources that can refresh + * token periodically. + * @example Getting your access token + * AWS.config.getToken(function(err) { + * if (err) console.log(err.stack); // token not loaded + * else console.log("Token:", AWS.config.token.token); + * }) + * @callback callback function(err) + * Called when the {token} have been properly set on the configuration object. + * + * @param err [Error] if this is set, token was not successfully loaded and + * this error provides information why. + * @see token + */ + getToken: function getToken(callback) { + var self = this; + + function finish(err) { + callback(err, err ? null : self.token); + } + + function tokenError(msg, err) { + return new AWS.util.error(err || new Error(), { + code: 'TokenError', + message: msg, + name: 'TokenError' + }); + } + + function getAsyncToken() { + self.token.get(function(err) { + if (err) { + var msg = 'Could not load token from ' + + self.token.constructor.name; + err = tokenError(msg, err); + } + finish(err); + }); + } + + function getStaticToken() { + var err = null; + if (!self.token.token) { + err = tokenError('Missing token'); + } + finish(err); + } + + if (self.token) { + if (typeof self.token.get === 'function') { + getAsyncToken(); + } else { // static token + getStaticToken(); + } + } else if (self.tokenProvider) { + self.tokenProvider.resolve(function(err, token) { + if (err) { + err = tokenError('Could not load token from any providers', err); + } + self.token = token; + finish(err); + }); + } else { + finish(tokenError('No token to load')); + } + }, + /** * @!group Loading and Setting Configuration Options */ @@ -3169,7 +4577,10 @@ AWS.Config = AWS.util.inherit({ endpointDiscoveryEnabled: undefined, endpointCacheSize: 1000, hostPrefixEnabled: true, - stsRegionalEndpoints: 'legacy' + stsRegionalEndpoints: 'legacy', + useFipsEndpoint: false, + useDualstackEndpoint: false, + token: null }, /** @@ -3240,6 +4651,81 @@ module.exports = require("dgram"); /***/ }), +/***/ 204: +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _validate = _interopRequireDefault(__webpack_require__(634)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function parse(uuid) { + if (!(0, _validate.default)(uuid)) { + throw TypeError('Invalid UUID'); + } + + let v; + const arr = new Uint8Array(16); // Parse ########-....-....-....-............ + + arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24; + arr[1] = v >>> 16 & 0xff; + arr[2] = v >>> 8 & 0xff; + arr[3] = v & 0xff; // Parse ........-####-....-....-............ + + arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8; + arr[5] = v & 0xff; // Parse ........-....-####-....-............ + + arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8; + arr[7] = v & 0xff; // Parse ........-....-....-####-............ + + arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8; + arr[9] = v & 0xff; // Parse ........-....-....-....-############ + // (Use "/" to avoid 32-bit truncation when bit-shifting high-order bytes) + + arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff; + arr[11] = v / 0x100000000 & 0xff; + arr[12] = v >>> 24 & 0xff; + arr[13] = v >>> 16 & 0xff; + arr[14] = v >>> 8 & 0xff; + arr[15] = v & 0xff; + return arr; +} + +var _default = parse; +exports.default = _default; + +/***/ }), + +/***/ 209: +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _v = _interopRequireDefault(__webpack_require__(212)); + +var _md = _interopRequireDefault(__webpack_require__(803)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +const v3 = (0, _v.default)('v3', 0x30, _md.default); +var _default = v3; +exports.default = _default; + +/***/ }), + /***/ 210: /***/ (function(__unusedmodule, exports) { @@ -3266,6 +4752,82 @@ module.exports = require("https"); /***/ }), +/***/ 212: +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = _default; +exports.URL = exports.DNS = void 0; + +var _bytesToUuid = _interopRequireDefault(__webpack_require__(390)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function uuidToBytes(uuid) { + // Note: We assume we're being passed a valid uuid string + var bytes = []; + uuid.replace(/[a-fA-F0-9]{2}/g, function (hex) { + bytes.push(parseInt(hex, 16)); + }); + return bytes; +} + +function stringToBytes(str) { + str = unescape(encodeURIComponent(str)); // UTF8 escape + + var bytes = new Array(str.length); + + for (var i = 0; i < str.length; i++) { + bytes[i] = str.charCodeAt(i); + } + + return bytes; +} + +const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8'; +exports.DNS = DNS; +const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8'; +exports.URL = URL; + +function _default(name, version, hashfunc) { + var generateUUID = function (value, namespace, buf, offset) { + var off = buf && offset || 0; + if (typeof value == 'string') value = stringToBytes(value); + if (typeof namespace == 'string') namespace = uuidToBytes(namespace); + if (!Array.isArray(value)) throw TypeError('value must be an array of bytes'); + if (!Array.isArray(namespace) || namespace.length !== 16) throw TypeError('namespace must be uuid string or an Array of 16 byte values'); // Per 4.3 + + var bytes = hashfunc(namespace.concat(value)); + bytes[6] = bytes[6] & 0x0f | version; + bytes[8] = bytes[8] & 0x3f | 0x80; + + if (buf) { + for (var idx = 0; idx < 16; ++idx) { + buf[off + idx] = bytes[idx]; + } + } + + return buf || (0, _bytesToUuid.default)(bytes); + }; // Function#name is not settable on some platforms (#270) + + + try { + generateUUID.name = name; + } catch (err) {} // For CommonJS default export support + + + generateUUID.DNS = DNS; + generateUUID.URL = URL; + return generateUUID; +} + +/***/ }), + /***/ 213: /***/ (function(module) { @@ -3283,7 +4845,6 @@ var apiLoader = AWS.apiLoader; apiLoader.services['cognitoidentity'] = {}; AWS.CognitoIdentity = Service.defineService('cognitoidentity', ['2014-06-30']); -__webpack_require__(382); Object.defineProperty(apiLoader.services['cognitoidentity'], '2014-06-30', { get: function get() { var model = __webpack_require__(56); @@ -3440,14 +5001,18 @@ module.exports = resolveRegionalEndpointsFlag; var util = __webpack_require__(153); +var region_utils = __webpack_require__(171); +var isFipsRegion = region_utils.isFipsRegion; +var getRealRegion = region_utils.getRealRegion; + util.isBrowser = function() { return false; }; util.isNode = function() { return true; }; // node.js specific modules util.crypto.lib = __webpack_require__(417); -util.Buffer = __webpack_require__(293).Buffer; +util.Buffer = __webpack_require__(407).Buffer; util.domain = __webpack_require__(229); -util.stream = __webpack_require__(413); +util.stream = __webpack_require__(794); util.url = __webpack_require__(414); util.querystring = __webpack_require__(191); util.environment = 'nodejs'; @@ -3459,6 +5024,34 @@ util.clientSideMonitoring = { configProvider: __webpack_require__(762), }; util.iniLoader = __webpack_require__(892).iniLoader; +util.getSystemErrorName = __webpack_require__(669).getSystemErrorName; + +util.loadConfig = function(options) { + var envValue = options.environmentVariableSelector(process.env); + if (envValue !== undefined) { + return envValue; + } + + var configFile = {}; + try { + configFile = util.iniLoader ? util.iniLoader.loadFrom({ + isConfig: true, + filename: process.env[util.sharedConfigFileEnv] + }) : {}; + } catch (e) {} + var sharedFileConfig = configFile[ + process.env.AWS_PROFILE || util.defaultProfile + ] || {}; + var configValue = options.configFileSelector(sharedFileConfig); + if (configValue !== undefined) { + return configValue; + } + + if (typeof options.default === 'function') { + return options.default(); + } + return options.default; +}; var AWS; @@ -3477,7 +5070,7 @@ __webpack_require__(966); __webpack_require__(982); // Load the xml2js XML parser -AWS.XML.Parser = __webpack_require__(810); +AWS.XML.Parser = __webpack_require__(763); // Load Node HTTP client __webpack_require__(888); @@ -3490,17 +5083,19 @@ __webpack_require__(103); __webpack_require__(426); __webpack_require__(316); __webpack_require__(872); -__webpack_require__(634); +__webpack_require__(745); __webpack_require__(22); __webpack_require__(982); +__webpack_require__(114); -// Setup default chain providers +// Setup default providers for credentials chain // If this changes, please update documentation for // AWS.CredentialProviderChain.defaultProviders in // credentials/credential_provider_chain.js AWS.CredentialProviderChain.defaultProviders = [ function () { return new AWS.EnvironmentCredentials('AWS'); }, function () { return new AWS.EnvironmentCredentials('AMAZON'); }, + function () { return new AWS.SsoCredentials(); }, function () { return new AWS.SharedIniFileCredentials(); }, function () { return new AWS.ECSCredentials(); }, function () { return new AWS.ProcessCredentials(); }, @@ -3508,6 +5103,67 @@ AWS.CredentialProviderChain.defaultProviders = [ function () { return new AWS.EC2MetadataCredentials(); } ]; +// Load custom token providers +__webpack_require__(154); +__webpack_require__(115); +__webpack_require__(858); + +// Setup default providers for token chain +// If this changes, please update documentation for +// AWS.TokenProviderChain.defaultProviders in +// token/token_provider_chain.js +AWS.TokenProviderChain.defaultProviders = [ + function () { return new AWS.SSOTokenProvider(); }, +]; + +var getRegion = function() { + var env = process.env; + var region = env.AWS_REGION || env.AMAZON_REGION; + if (env[AWS.util.configOptInEnv]) { + var toCheck = [ + {filename: env[AWS.util.sharedCredentialsFileEnv]}, + {isConfig: true, filename: env[AWS.util.sharedConfigFileEnv]} + ]; + var iniLoader = AWS.util.iniLoader; + while (!region && toCheck.length) { + var configFile = {}; + var fileInfo = toCheck.shift(); + try { + configFile = iniLoader.loadFrom(fileInfo); + } catch (err) { + if (fileInfo.isConfig) throw err; + } + var profile = configFile[env.AWS_PROFILE || AWS.util.defaultProfile]; + region = profile && profile.region; + } + } + return region; +}; + +var getBooleanValue = function(value) { + return value === 'true' ? true: value === 'false' ? false: undefined; +}; + +var USE_FIPS_ENDPOINT_CONFIG_OPTIONS = { + environmentVariableSelector: function(env) { + return getBooleanValue(env['AWS_USE_FIPS_ENDPOINT']); + }, + configFileSelector: function(profile) { + return getBooleanValue(profile['use_fips_endpoint']); + }, + default: false, +}; + +var USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS = { + environmentVariableSelector: function(env) { + return getBooleanValue(env['AWS_USE_DUALSTACK_ENDPOINT']); + }, + configFileSelector: function(profile) { + return getBooleanValue(profile['use_dualstack_endpoint']); + }, + default: false, +}; + // Update configuration keys AWS.util.update(AWS.Config.prototype.keys, { credentials: function () { @@ -3528,21 +5184,20 @@ AWS.util.update(AWS.Config.prototype.keys, { return process.env.AWSJS_DEBUG ? console : null; }, region: function() { - var env = process.env; - var region = env.AWS_REGION || env.AMAZON_REGION; - if (env[AWS.util.configOptInEnv]) { - var toCheck = [ - {filename: env[AWS.util.sharedCredentialsFileEnv]}, - {isConfig: true, filename: env[AWS.util.sharedConfigFileEnv]} - ]; - var iniLoader = AWS.util.iniLoader; - while (!region && toCheck.length) { - var configFile = iniLoader.loadFrom(toCheck.shift()); - var profile = configFile[env.AWS_PROFILE || AWS.util.defaultProfile]; - region = profile && profile.region; - } - } - return region; + var region = getRegion(); + return region ? getRealRegion(region): undefined; + }, + tokenProvider: function() { + return new AWS.TokenProviderChain(); + }, + useFipsEndpoint: function() { + var region = getRegion(); + return isFipsRegion(region) + ? true + : util.loadConfig(USE_FIPS_ENDPOINT_CONFIG_OPTIONS); + }, + useDualstackEndpoint: function() { + return util.loadConfig(USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS); } }); @@ -3564,33 +5219,91 @@ module.exports = {"pagination":{}}; var property = __webpack_require__(153).property; -function Paginator(name, paginator) { - property(this, 'inputToken', paginator.input_token); - property(this, 'limitKey', paginator.limit_key); - property(this, 'moreResults', paginator.more_results); - property(this, 'outputToken', paginator.output_token); - property(this, 'resultKey', paginator.result_key); -} +function Paginator(name, paginator) { + property(this, 'inputToken', paginator.input_token); + property(this, 'limitKey', paginator.limit_key); + property(this, 'moreResults', paginator.more_results); + property(this, 'outputToken', paginator.output_token); + property(this, 'resultKey', paginator.result_key); +} + +/** + * @api private + */ +module.exports = Paginator; + + +/***/ }), + +/***/ 273: +/***/ (function(module, __unusedexports, __webpack_require__) { + +var EndpointMode = __webpack_require__(587)(); + +var ENV_ENDPOINT_MODE_NAME = 'AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE'; +var CONFIG_ENDPOINT_MODE_NAME = 'ec2_metadata_service_endpoint_mode'; + +var getEndpointModeConfigOptions = function() { + return { + environmentVariableSelector: function(env) { return env[ENV_ENDPOINT_MODE_NAME]; }, + configFileSelector: function(profile) { return profile[CONFIG_ENDPOINT_MODE_NAME]; }, + default: EndpointMode.IPv4, + }; +}; + +module.exports = getEndpointModeConfigOptions; + + +/***/ }), + +/***/ 280: +/***/ (function(module) { + +module.exports = {"pagination":{"ListIdentityPools":{"input_token":"NextToken","limit_key":"MaxResults","output_token":"NextToken","result_key":"IdentityPools"}}}; + +/***/ }), + +/***/ 293: +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _rng = _interopRequireDefault(__webpack_require__(506)); + +var _stringify = _interopRequireDefault(__webpack_require__(960)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function v4(options, buf, offset) { + options = options || {}; -/** - * @api private - */ -module.exports = Paginator; + const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` -/***/ }), + rnds[6] = rnds[6] & 0x0f | 0x40; + rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided -/***/ 280: -/***/ (function(module) { + if (buf) { + offset = offset || 0; -module.exports = {"pagination":{}}; + for (let i = 0; i < 16; ++i) { + buf[offset + i] = rnds[i]; + } -/***/ }), + return buf; + } -/***/ 293: -/***/ (function(module) { + return (0, _stringify.default)(rnds); +} -module.exports = require("buffer"); +var _default = v4; +exports.default = _default; /***/ }), @@ -3605,7 +5318,7 @@ module.exports = require("string_decoder"); /***/ (function(__unusedmodule, __unusedexports, __webpack_require__) { var AWS = __webpack_require__(395); -var STS = __webpack_require__(733); +var STS = __webpack_require__(106); /** * Represents credentials retrieved from STS Web Identity Federation support. @@ -3792,6 +5505,18 @@ var Json = __webpack_require__(912); var JsonBuilder = __webpack_require__(337); var JsonParser = __webpack_require__(806); +var METHODS_WITHOUT_BODY = ['GET', 'HEAD', 'DELETE']; + +function unsetContentLength(req) { + var payloadMember = util.getRequestPayloadShape(req); + if ( + payloadMember === undefined && + METHODS_WITHOUT_BODY.indexOf(req.httpRequest.method) >= 0 + ) { + delete req.httpRequest.headers['Content-Length']; + } +} + function populateBody(req) { var builder = new JsonBuilder(); var input = req.service.api.operations[req.operation].input; @@ -3800,30 +5525,24 @@ function populateBody(req) { var params = {}; var payloadShape = input.members[input.payload]; params = req.params[input.payload]; - if (params === undefined) return; if (payloadShape.type === 'structure') { - req.httpRequest.body = builder.build(params, payloadShape); + req.httpRequest.body = builder.build(params || {}, payloadShape); applyContentTypeHeader(req); - } else { // non-JSON payload + } else if (params !== undefined) { + // non-JSON payload req.httpRequest.body = params; if (payloadShape.type === 'binary' || payloadShape.isStreaming) { applyContentTypeHeader(req, true); } } } else { - var body = builder.build(req.params, input); - if (body !== '{}' || req.httpRequest.method !== 'GET') { //don't send empty body for GET method - req.httpRequest.body = body; - } + req.httpRequest.body = builder.build(req.params, input); applyContentTypeHeader(req); } } function applyContentTypeHeader(req, isBinary) { - var operation = req.service.api.operations[req.operation]; - var input = operation.input; - if (!req.httpRequest.headers['Content-Type']) { var type = isBinary ? 'binary/octet-stream' : 'application/json'; req.httpRequest.headers['Content-Type'] = type; @@ -3833,8 +5552,8 @@ function applyContentTypeHeader(req, isBinary) { function buildRequest(req) { Rest.buildRequest(req); - // never send body payload on HEAD/DELETE - if (['HEAD', 'DELETE'].indexOf(req.httpRequest.method) < 0) { + // never send body payload on GET/HEAD/DELETE + if (METHODS_WITHOUT_BODY.indexOf(req.httpRequest.method) < 0) { populateBody(req); } } @@ -3883,7 +5602,8 @@ function extractData(resp) { module.exports = { buildRequest: buildRequest, extractError: extractError, - extractData: extractData + extractData: extractData, + unsetContentLength: unsetContentLength }; @@ -3938,7 +5658,7 @@ Object.defineProperty(apiLoader.services['codedeploy'], '2014-10-06', { get: function get() { var model = __webpack_require__(721); model.paginators = __webpack_require__(971).pagination; - model.waiters = __webpack_require__(154).waiters; + model.waiters = __webpack_require__(896).waiters; return model; }, enumerable: true, @@ -3948,6 +5668,36 @@ Object.defineProperty(apiLoader.services['codedeploy'], '2014-10-06', { module.exports = AWS.CodeDeploy; +/***/ }), + +/***/ 329: +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _crypto = _interopRequireDefault(__webpack_require__(417)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function sha1(bytes) { + if (Array.isArray(bytes)) { + bytes = Buffer.from(bytes); + } else if (typeof bytes === 'string') { + bytes = Buffer.from(bytes, 'utf8'); + } + + return _crypto.default.createHash('sha1').update(bytes).digest(); +} + +var _default = sha1; +exports.default = _default; + /***/ }), /***/ 337: @@ -3973,6 +5723,9 @@ function translate(value, shape) { } function translateStructure(structure, shape) { + if (shape.isDocument) { + return structure; + } var struct = {}; util.each(structure, function(name, value) { var memberShape = shape.members[name]; @@ -4019,7 +5772,7 @@ module.exports = JsonBuilder; /***/ 344: /***/ (function(module) { -module.exports = {"version":"2.0","metadata":{"apiVersion":"2010-05-08","endpointPrefix":"iam","globalEndpoint":"iam.amazonaws.com","protocol":"query","serviceAbbreviation":"IAM","serviceFullName":"AWS Identity and Access Management","serviceId":"IAM","signatureVersion":"v4","uid":"iam-2010-05-08","xmlNamespace":"https://iam.amazonaws.com/doc/2010-05-08/"},"operations":{"AddClientIDToOpenIDConnectProvider":{"input":{"type":"structure","required":["OpenIDConnectProviderArn","ClientID"],"members":{"OpenIDConnectProviderArn":{},"ClientID":{}}}},"AddRoleToInstanceProfile":{"input":{"type":"structure","required":["InstanceProfileName","RoleName"],"members":{"InstanceProfileName":{},"RoleName":{}}}},"AddUserToGroup":{"input":{"type":"structure","required":["GroupName","UserName"],"members":{"GroupName":{},"UserName":{}}}},"AttachGroupPolicy":{"input":{"type":"structure","required":["GroupName","PolicyArn"],"members":{"GroupName":{},"PolicyArn":{}}}},"AttachRolePolicy":{"input":{"type":"structure","required":["RoleName","PolicyArn"],"members":{"RoleName":{},"PolicyArn":{}}}},"AttachUserPolicy":{"input":{"type":"structure","required":["UserName","PolicyArn"],"members":{"UserName":{},"PolicyArn":{}}}},"ChangePassword":{"input":{"type":"structure","required":["OldPassword","NewPassword"],"members":{"OldPassword":{"shape":"Sf"},"NewPassword":{"shape":"Sf"}}}},"CreateAccessKey":{"input":{"type":"structure","members":{"UserName":{}}},"output":{"resultWrapper":"CreateAccessKeyResult","type":"structure","required":["AccessKey"],"members":{"AccessKey":{"type":"structure","required":["UserName","AccessKeyId","Status","SecretAccessKey"],"members":{"UserName":{},"AccessKeyId":{},"Status":{},"SecretAccessKey":{"type":"string","sensitive":true},"CreateDate":{"type":"timestamp"}}}}}},"CreateAccountAlias":{"input":{"type":"structure","required":["AccountAlias"],"members":{"AccountAlias":{}}}},"CreateGroup":{"input":{"type":"structure","required":["GroupName"],"members":{"Path":{},"GroupName":{}}},"output":{"resultWrapper":"CreateGroupResult","type":"structure","required":["Group"],"members":{"Group":{"shape":"Ss"}}}},"CreateInstanceProfile":{"input":{"type":"structure","required":["InstanceProfileName"],"members":{"InstanceProfileName":{},"Path":{}}},"output":{"resultWrapper":"CreateInstanceProfileResult","type":"structure","required":["InstanceProfile"],"members":{"InstanceProfile":{"shape":"Sw"}}}},"CreateLoginProfile":{"input":{"type":"structure","required":["UserName","Password"],"members":{"UserName":{},"Password":{"shape":"Sf"},"PasswordResetRequired":{"type":"boolean"}}},"output":{"resultWrapper":"CreateLoginProfileResult","type":"structure","required":["LoginProfile"],"members":{"LoginProfile":{"shape":"S1d"}}}},"CreateOpenIDConnectProvider":{"input":{"type":"structure","required":["Url","ThumbprintList"],"members":{"Url":{},"ClientIDList":{"shape":"S1g"},"ThumbprintList":{"shape":"S1h"}}},"output":{"resultWrapper":"CreateOpenIDConnectProviderResult","type":"structure","members":{"OpenIDConnectProviderArn":{}}}},"CreatePolicy":{"input":{"type":"structure","required":["PolicyName","PolicyDocument"],"members":{"PolicyName":{},"Path":{},"PolicyDocument":{},"Description":{}}},"output":{"resultWrapper":"CreatePolicyResult","type":"structure","members":{"Policy":{"shape":"S1p"}}}},"CreatePolicyVersion":{"input":{"type":"structure","required":["PolicyArn","PolicyDocument"],"members":{"PolicyArn":{},"PolicyDocument":{},"SetAsDefault":{"type":"boolean"}}},"output":{"resultWrapper":"CreatePolicyVersionResult","type":"structure","members":{"PolicyVersion":{"shape":"S1u"}}}},"CreateRole":{"input":{"type":"structure","required":["RoleName","AssumeRolePolicyDocument"],"members":{"Path":{},"RoleName":{},"AssumeRolePolicyDocument":{},"Description":{},"MaxSessionDuration":{"type":"integer"},"PermissionsBoundary":{},"Tags":{"shape":"S14"}}},"output":{"resultWrapper":"CreateRoleResult","type":"structure","required":["Role"],"members":{"Role":{"shape":"Sy"}}}},"CreateSAMLProvider":{"input":{"type":"structure","required":["SAMLMetadataDocument","Name"],"members":{"SAMLMetadataDocument":{},"Name":{}}},"output":{"resultWrapper":"CreateSAMLProviderResult","type":"structure","members":{"SAMLProviderArn":{}}}},"CreateServiceLinkedRole":{"input":{"type":"structure","required":["AWSServiceName"],"members":{"AWSServiceName":{},"Description":{},"CustomSuffix":{}}},"output":{"resultWrapper":"CreateServiceLinkedRoleResult","type":"structure","members":{"Role":{"shape":"Sy"}}}},"CreateServiceSpecificCredential":{"input":{"type":"structure","required":["UserName","ServiceName"],"members":{"UserName":{},"ServiceName":{}}},"output":{"resultWrapper":"CreateServiceSpecificCredentialResult","type":"structure","members":{"ServiceSpecificCredential":{"shape":"S27"}}}},"CreateUser":{"input":{"type":"structure","required":["UserName"],"members":{"Path":{},"UserName":{},"PermissionsBoundary":{},"Tags":{"shape":"S14"}}},"output":{"resultWrapper":"CreateUserResult","type":"structure","members":{"User":{"shape":"S2d"}}}},"CreateVirtualMFADevice":{"input":{"type":"structure","required":["VirtualMFADeviceName"],"members":{"Path":{},"VirtualMFADeviceName":{}}},"output":{"resultWrapper":"CreateVirtualMFADeviceResult","type":"structure","required":["VirtualMFADevice"],"members":{"VirtualMFADevice":{"shape":"S2h"}}}},"DeactivateMFADevice":{"input":{"type":"structure","required":["UserName","SerialNumber"],"members":{"UserName":{},"SerialNumber":{}}}},"DeleteAccessKey":{"input":{"type":"structure","required":["AccessKeyId"],"members":{"UserName":{},"AccessKeyId":{}}}},"DeleteAccountAlias":{"input":{"type":"structure","required":["AccountAlias"],"members":{"AccountAlias":{}}}},"DeleteAccountPasswordPolicy":{},"DeleteGroup":{"input":{"type":"structure","required":["GroupName"],"members":{"GroupName":{}}}},"DeleteGroupPolicy":{"input":{"type":"structure","required":["GroupName","PolicyName"],"members":{"GroupName":{},"PolicyName":{}}}},"DeleteInstanceProfile":{"input":{"type":"structure","required":["InstanceProfileName"],"members":{"InstanceProfileName":{}}}},"DeleteLoginProfile":{"input":{"type":"structure","required":["UserName"],"members":{"UserName":{}}}},"DeleteOpenIDConnectProvider":{"input":{"type":"structure","required":["OpenIDConnectProviderArn"],"members":{"OpenIDConnectProviderArn":{}}}},"DeletePolicy":{"input":{"type":"structure","required":["PolicyArn"],"members":{"PolicyArn":{}}}},"DeletePolicyVersion":{"input":{"type":"structure","required":["PolicyArn","VersionId"],"members":{"PolicyArn":{},"VersionId":{}}}},"DeleteRole":{"input":{"type":"structure","required":["RoleName"],"members":{"RoleName":{}}}},"DeleteRolePermissionsBoundary":{"input":{"type":"structure","required":["RoleName"],"members":{"RoleName":{}}}},"DeleteRolePolicy":{"input":{"type":"structure","required":["RoleName","PolicyName"],"members":{"RoleName":{},"PolicyName":{}}}},"DeleteSAMLProvider":{"input":{"type":"structure","required":["SAMLProviderArn"],"members":{"SAMLProviderArn":{}}}},"DeleteSSHPublicKey":{"input":{"type":"structure","required":["UserName","SSHPublicKeyId"],"members":{"UserName":{},"SSHPublicKeyId":{}}}},"DeleteServerCertificate":{"input":{"type":"structure","required":["ServerCertificateName"],"members":{"ServerCertificateName":{}}}},"DeleteServiceLinkedRole":{"input":{"type":"structure","required":["RoleName"],"members":{"RoleName":{}}},"output":{"resultWrapper":"DeleteServiceLinkedRoleResult","type":"structure","required":["DeletionTaskId"],"members":{"DeletionTaskId":{}}}},"DeleteServiceSpecificCredential":{"input":{"type":"structure","required":["ServiceSpecificCredentialId"],"members":{"UserName":{},"ServiceSpecificCredentialId":{}}}},"DeleteSigningCertificate":{"input":{"type":"structure","required":["CertificateId"],"members":{"UserName":{},"CertificateId":{}}}},"DeleteUser":{"input":{"type":"structure","required":["UserName"],"members":{"UserName":{}}}},"DeleteUserPermissionsBoundary":{"input":{"type":"structure","required":["UserName"],"members":{"UserName":{}}}},"DeleteUserPolicy":{"input":{"type":"structure","required":["UserName","PolicyName"],"members":{"UserName":{},"PolicyName":{}}}},"DeleteVirtualMFADevice":{"input":{"type":"structure","required":["SerialNumber"],"members":{"SerialNumber":{}}}},"DetachGroupPolicy":{"input":{"type":"structure","required":["GroupName","PolicyArn"],"members":{"GroupName":{},"PolicyArn":{}}}},"DetachRolePolicy":{"input":{"type":"structure","required":["RoleName","PolicyArn"],"members":{"RoleName":{},"PolicyArn":{}}}},"DetachUserPolicy":{"input":{"type":"structure","required":["UserName","PolicyArn"],"members":{"UserName":{},"PolicyArn":{}}}},"EnableMFADevice":{"input":{"type":"structure","required":["UserName","SerialNumber","AuthenticationCode1","AuthenticationCode2"],"members":{"UserName":{},"SerialNumber":{},"AuthenticationCode1":{},"AuthenticationCode2":{}}}},"GenerateCredentialReport":{"output":{"resultWrapper":"GenerateCredentialReportResult","type":"structure","members":{"State":{},"Description":{}}}},"GenerateOrganizationsAccessReport":{"input":{"type":"structure","required":["EntityPath"],"members":{"EntityPath":{},"OrganizationsPolicyId":{}}},"output":{"resultWrapper":"GenerateOrganizationsAccessReportResult","type":"structure","members":{"JobId":{}}}},"GenerateServiceLastAccessedDetails":{"input":{"type":"structure","required":["Arn"],"members":{"Arn":{},"Granularity":{}}},"output":{"resultWrapper":"GenerateServiceLastAccessedDetailsResult","type":"structure","members":{"JobId":{}}}},"GetAccessKeyLastUsed":{"input":{"type":"structure","required":["AccessKeyId"],"members":{"AccessKeyId":{}}},"output":{"resultWrapper":"GetAccessKeyLastUsedResult","type":"structure","members":{"UserName":{},"AccessKeyLastUsed":{"type":"structure","required":["LastUsedDate","ServiceName","Region"],"members":{"LastUsedDate":{"type":"timestamp"},"ServiceName":{},"Region":{}}}}}},"GetAccountAuthorizationDetails":{"input":{"type":"structure","members":{"Filter":{"type":"list","member":{}},"MaxItems":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"GetAccountAuthorizationDetailsResult","type":"structure","members":{"UserDetailList":{"type":"list","member":{"type":"structure","members":{"Path":{},"UserName":{},"UserId":{},"Arn":{},"CreateDate":{"type":"timestamp"},"UserPolicyList":{"shape":"S43"},"GroupList":{"type":"list","member":{}},"AttachedManagedPolicies":{"shape":"S46"},"PermissionsBoundary":{"shape":"S12"},"Tags":{"shape":"S14"}}}},"GroupDetailList":{"type":"list","member":{"type":"structure","members":{"Path":{},"GroupName":{},"GroupId":{},"Arn":{},"CreateDate":{"type":"timestamp"},"GroupPolicyList":{"shape":"S43"},"AttachedManagedPolicies":{"shape":"S46"}}}},"RoleDetailList":{"type":"list","member":{"type":"structure","members":{"Path":{},"RoleName":{},"RoleId":{},"Arn":{},"CreateDate":{"type":"timestamp"},"AssumeRolePolicyDocument":{},"InstanceProfileList":{"shape":"S4c"},"RolePolicyList":{"shape":"S43"},"AttachedManagedPolicies":{"shape":"S46"},"PermissionsBoundary":{"shape":"S12"},"Tags":{"shape":"S14"},"RoleLastUsed":{"shape":"S18"}}}},"Policies":{"type":"list","member":{"type":"structure","members":{"PolicyName":{},"PolicyId":{},"Arn":{},"Path":{},"DefaultVersionId":{},"AttachmentCount":{"type":"integer"},"PermissionsBoundaryUsageCount":{"type":"integer"},"IsAttachable":{"type":"boolean"},"Description":{},"CreateDate":{"type":"timestamp"},"UpdateDate":{"type":"timestamp"},"PolicyVersionList":{"shape":"S4f"}}}},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"GetAccountPasswordPolicy":{"output":{"resultWrapper":"GetAccountPasswordPolicyResult","type":"structure","required":["PasswordPolicy"],"members":{"PasswordPolicy":{"type":"structure","members":{"MinimumPasswordLength":{"type":"integer"},"RequireSymbols":{"type":"boolean"},"RequireNumbers":{"type":"boolean"},"RequireUppercaseCharacters":{"type":"boolean"},"RequireLowercaseCharacters":{"type":"boolean"},"AllowUsersToChangePassword":{"type":"boolean"},"ExpirePasswords":{"type":"boolean"},"MaxPasswordAge":{"type":"integer"},"PasswordReusePrevention":{"type":"integer"},"HardExpiry":{"type":"boolean"}}}}}},"GetAccountSummary":{"output":{"resultWrapper":"GetAccountSummaryResult","type":"structure","members":{"SummaryMap":{"type":"map","key":{},"value":{"type":"integer"}}}}},"GetContextKeysForCustomPolicy":{"input":{"type":"structure","required":["PolicyInputList"],"members":{"PolicyInputList":{"shape":"S4s"}}},"output":{"shape":"S4t","resultWrapper":"GetContextKeysForCustomPolicyResult"}},"GetContextKeysForPrincipalPolicy":{"input":{"type":"structure","required":["PolicySourceArn"],"members":{"PolicySourceArn":{},"PolicyInputList":{"shape":"S4s"}}},"output":{"shape":"S4t","resultWrapper":"GetContextKeysForPrincipalPolicyResult"}},"GetCredentialReport":{"output":{"resultWrapper":"GetCredentialReportResult","type":"structure","members":{"Content":{"type":"blob"},"ReportFormat":{},"GeneratedTime":{"type":"timestamp"}}}},"GetGroup":{"input":{"type":"structure","required":["GroupName"],"members":{"GroupName":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"GetGroupResult","type":"structure","required":["Group","Users"],"members":{"Group":{"shape":"Ss"},"Users":{"shape":"S52"},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"GetGroupPolicy":{"input":{"type":"structure","required":["GroupName","PolicyName"],"members":{"GroupName":{},"PolicyName":{}}},"output":{"resultWrapper":"GetGroupPolicyResult","type":"structure","required":["GroupName","PolicyName","PolicyDocument"],"members":{"GroupName":{},"PolicyName":{},"PolicyDocument":{}}}},"GetInstanceProfile":{"input":{"type":"structure","required":["InstanceProfileName"],"members":{"InstanceProfileName":{}}},"output":{"resultWrapper":"GetInstanceProfileResult","type":"structure","required":["InstanceProfile"],"members":{"InstanceProfile":{"shape":"Sw"}}}},"GetLoginProfile":{"input":{"type":"structure","required":["UserName"],"members":{"UserName":{}}},"output":{"resultWrapper":"GetLoginProfileResult","type":"structure","required":["LoginProfile"],"members":{"LoginProfile":{"shape":"S1d"}}}},"GetOpenIDConnectProvider":{"input":{"type":"structure","required":["OpenIDConnectProviderArn"],"members":{"OpenIDConnectProviderArn":{}}},"output":{"resultWrapper":"GetOpenIDConnectProviderResult","type":"structure","members":{"Url":{},"ClientIDList":{"shape":"S1g"},"ThumbprintList":{"shape":"S1h"},"CreateDate":{"type":"timestamp"}}}},"GetOrganizationsAccessReport":{"input":{"type":"structure","required":["JobId"],"members":{"JobId":{},"MaxItems":{"type":"integer"},"Marker":{},"SortKey":{}}},"output":{"resultWrapper":"GetOrganizationsAccessReportResult","type":"structure","required":["JobStatus","JobCreationDate"],"members":{"JobStatus":{},"JobCreationDate":{"type":"timestamp"},"JobCompletionDate":{"type":"timestamp"},"NumberOfServicesAccessible":{"type":"integer"},"NumberOfServicesNotAccessed":{"type":"integer"},"AccessDetails":{"type":"list","member":{"type":"structure","required":["ServiceName","ServiceNamespace"],"members":{"ServiceName":{},"ServiceNamespace":{},"Region":{},"EntityPath":{},"LastAuthenticatedTime":{"type":"timestamp"},"TotalAuthenticatedEntities":{"type":"integer"}}}},"IsTruncated":{"type":"boolean"},"Marker":{},"ErrorDetails":{"shape":"S5k"}}}},"GetPolicy":{"input":{"type":"structure","required":["PolicyArn"],"members":{"PolicyArn":{}}},"output":{"resultWrapper":"GetPolicyResult","type":"structure","members":{"Policy":{"shape":"S1p"}}}},"GetPolicyVersion":{"input":{"type":"structure","required":["PolicyArn","VersionId"],"members":{"PolicyArn":{},"VersionId":{}}},"output":{"resultWrapper":"GetPolicyVersionResult","type":"structure","members":{"PolicyVersion":{"shape":"S1u"}}}},"GetRole":{"input":{"type":"structure","required":["RoleName"],"members":{"RoleName":{}}},"output":{"resultWrapper":"GetRoleResult","type":"structure","required":["Role"],"members":{"Role":{"shape":"Sy"}}}},"GetRolePolicy":{"input":{"type":"structure","required":["RoleName","PolicyName"],"members":{"RoleName":{},"PolicyName":{}}},"output":{"resultWrapper":"GetRolePolicyResult","type":"structure","required":["RoleName","PolicyName","PolicyDocument"],"members":{"RoleName":{},"PolicyName":{},"PolicyDocument":{}}}},"GetSAMLProvider":{"input":{"type":"structure","required":["SAMLProviderArn"],"members":{"SAMLProviderArn":{}}},"output":{"resultWrapper":"GetSAMLProviderResult","type":"structure","members":{"SAMLMetadataDocument":{},"CreateDate":{"type":"timestamp"},"ValidUntil":{"type":"timestamp"}}}},"GetSSHPublicKey":{"input":{"type":"structure","required":["UserName","SSHPublicKeyId","Encoding"],"members":{"UserName":{},"SSHPublicKeyId":{},"Encoding":{}}},"output":{"resultWrapper":"GetSSHPublicKeyResult","type":"structure","members":{"SSHPublicKey":{"shape":"S5y"}}}},"GetServerCertificate":{"input":{"type":"structure","required":["ServerCertificateName"],"members":{"ServerCertificateName":{}}},"output":{"resultWrapper":"GetServerCertificateResult","type":"structure","required":["ServerCertificate"],"members":{"ServerCertificate":{"type":"structure","required":["ServerCertificateMetadata","CertificateBody"],"members":{"ServerCertificateMetadata":{"shape":"S64"},"CertificateBody":{},"CertificateChain":{}}}}}},"GetServiceLastAccessedDetails":{"input":{"type":"structure","required":["JobId"],"members":{"JobId":{},"MaxItems":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"GetServiceLastAccessedDetailsResult","type":"structure","required":["JobStatus","JobCreationDate","ServicesLastAccessed","JobCompletionDate"],"members":{"JobStatus":{},"JobType":{},"JobCreationDate":{"type":"timestamp"},"ServicesLastAccessed":{"type":"list","member":{"type":"structure","required":["ServiceName","ServiceNamespace"],"members":{"ServiceName":{},"LastAuthenticated":{"type":"timestamp"},"ServiceNamespace":{},"LastAuthenticatedEntity":{},"LastAuthenticatedRegion":{},"TotalAuthenticatedEntities":{"type":"integer"},"TrackedActionsLastAccessed":{"type":"list","member":{"type":"structure","members":{"ActionName":{},"LastAccessedEntity":{},"LastAccessedTime":{"type":"timestamp"},"LastAccessedRegion":{}}}}}}},"JobCompletionDate":{"type":"timestamp"},"IsTruncated":{"type":"boolean"},"Marker":{},"Error":{"shape":"S5k"}}}},"GetServiceLastAccessedDetailsWithEntities":{"input":{"type":"structure","required":["JobId","ServiceNamespace"],"members":{"JobId":{},"ServiceNamespace":{},"MaxItems":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"GetServiceLastAccessedDetailsWithEntitiesResult","type":"structure","required":["JobStatus","JobCreationDate","JobCompletionDate","EntityDetailsList"],"members":{"JobStatus":{},"JobCreationDate":{"type":"timestamp"},"JobCompletionDate":{"type":"timestamp"},"EntityDetailsList":{"type":"list","member":{"type":"structure","required":["EntityInfo"],"members":{"EntityInfo":{"type":"structure","required":["Arn","Name","Type","Id"],"members":{"Arn":{},"Name":{},"Type":{},"Id":{},"Path":{}}},"LastAuthenticated":{"type":"timestamp"}}}},"IsTruncated":{"type":"boolean"},"Marker":{},"Error":{"shape":"S5k"}}}},"GetServiceLinkedRoleDeletionStatus":{"input":{"type":"structure","required":["DeletionTaskId"],"members":{"DeletionTaskId":{}}},"output":{"resultWrapper":"GetServiceLinkedRoleDeletionStatusResult","type":"structure","required":["Status"],"members":{"Status":{},"Reason":{"type":"structure","members":{"Reason":{},"RoleUsageList":{"type":"list","member":{"type":"structure","members":{"Region":{},"Resources":{"type":"list","member":{}}}}}}}}}},"GetUser":{"input":{"type":"structure","members":{"UserName":{}}},"output":{"resultWrapper":"GetUserResult","type":"structure","required":["User"],"members":{"User":{"shape":"S2d"}}}},"GetUserPolicy":{"input":{"type":"structure","required":["UserName","PolicyName"],"members":{"UserName":{},"PolicyName":{}}},"output":{"resultWrapper":"GetUserPolicyResult","type":"structure","required":["UserName","PolicyName","PolicyDocument"],"members":{"UserName":{},"PolicyName":{},"PolicyDocument":{}}}},"ListAccessKeys":{"input":{"type":"structure","members":{"UserName":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListAccessKeysResult","type":"structure","required":["AccessKeyMetadata"],"members":{"AccessKeyMetadata":{"type":"list","member":{"type":"structure","members":{"UserName":{},"AccessKeyId":{},"Status":{},"CreateDate":{"type":"timestamp"}}}},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListAccountAliases":{"input":{"type":"structure","members":{"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListAccountAliasesResult","type":"structure","required":["AccountAliases"],"members":{"AccountAliases":{"type":"list","member":{}},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListAttachedGroupPolicies":{"input":{"type":"structure","required":["GroupName"],"members":{"GroupName":{},"PathPrefix":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListAttachedGroupPoliciesResult","type":"structure","members":{"AttachedPolicies":{"shape":"S46"},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListAttachedRolePolicies":{"input":{"type":"structure","required":["RoleName"],"members":{"RoleName":{},"PathPrefix":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListAttachedRolePoliciesResult","type":"structure","members":{"AttachedPolicies":{"shape":"S46"},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListAttachedUserPolicies":{"input":{"type":"structure","required":["UserName"],"members":{"UserName":{},"PathPrefix":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListAttachedUserPoliciesResult","type":"structure","members":{"AttachedPolicies":{"shape":"S46"},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListEntitiesForPolicy":{"input":{"type":"structure","required":["PolicyArn"],"members":{"PolicyArn":{},"EntityFilter":{},"PathPrefix":{},"PolicyUsageFilter":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListEntitiesForPolicyResult","type":"structure","members":{"PolicyGroups":{"type":"list","member":{"type":"structure","members":{"GroupName":{},"GroupId":{}}}},"PolicyUsers":{"type":"list","member":{"type":"structure","members":{"UserName":{},"UserId":{}}}},"PolicyRoles":{"type":"list","member":{"type":"structure","members":{"RoleName":{},"RoleId":{}}}},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListGroupPolicies":{"input":{"type":"structure","required":["GroupName"],"members":{"GroupName":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListGroupPoliciesResult","type":"structure","required":["PolicyNames"],"members":{"PolicyNames":{"shape":"S7k"},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListGroups":{"input":{"type":"structure","members":{"PathPrefix":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListGroupsResult","type":"structure","required":["Groups"],"members":{"Groups":{"shape":"S7o"},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListGroupsForUser":{"input":{"type":"structure","required":["UserName"],"members":{"UserName":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListGroupsForUserResult","type":"structure","required":["Groups"],"members":{"Groups":{"shape":"S7o"},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListInstanceProfiles":{"input":{"type":"structure","members":{"PathPrefix":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListInstanceProfilesResult","type":"structure","required":["InstanceProfiles"],"members":{"InstanceProfiles":{"shape":"S4c"},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListInstanceProfilesForRole":{"input":{"type":"structure","required":["RoleName"],"members":{"RoleName":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListInstanceProfilesForRoleResult","type":"structure","required":["InstanceProfiles"],"members":{"InstanceProfiles":{"shape":"S4c"},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListMFADevices":{"input":{"type":"structure","members":{"UserName":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListMFADevicesResult","type":"structure","required":["MFADevices"],"members":{"MFADevices":{"type":"list","member":{"type":"structure","required":["UserName","SerialNumber","EnableDate"],"members":{"UserName":{},"SerialNumber":{},"EnableDate":{"type":"timestamp"}}}},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListOpenIDConnectProviders":{"input":{"type":"structure","members":{}},"output":{"resultWrapper":"ListOpenIDConnectProvidersResult","type":"structure","members":{"OpenIDConnectProviderList":{"type":"list","member":{"type":"structure","members":{"Arn":{}}}}}}},"ListPolicies":{"input":{"type":"structure","members":{"Scope":{},"OnlyAttached":{"type":"boolean"},"PathPrefix":{},"PolicyUsageFilter":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListPoliciesResult","type":"structure","members":{"Policies":{"type":"list","member":{"shape":"S1p"}},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListPoliciesGrantingServiceAccess":{"input":{"type":"structure","required":["Arn","ServiceNamespaces"],"members":{"Marker":{},"Arn":{},"ServiceNamespaces":{"type":"list","member":{}}}},"output":{"resultWrapper":"ListPoliciesGrantingServiceAccessResult","type":"structure","required":["PoliciesGrantingServiceAccess"],"members":{"PoliciesGrantingServiceAccess":{"type":"list","member":{"type":"structure","members":{"ServiceNamespace":{},"Policies":{"type":"list","member":{"type":"structure","required":["PolicyName","PolicyType"],"members":{"PolicyName":{},"PolicyType":{},"PolicyArn":{},"EntityType":{},"EntityName":{}}}}}}},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListPolicyVersions":{"input":{"type":"structure","required":["PolicyArn"],"members":{"PolicyArn":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListPolicyVersionsResult","type":"structure","members":{"Versions":{"shape":"S4f"},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListRolePolicies":{"input":{"type":"structure","required":["RoleName"],"members":{"RoleName":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListRolePoliciesResult","type":"structure","required":["PolicyNames"],"members":{"PolicyNames":{"shape":"S7k"},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListRoleTags":{"input":{"type":"structure","required":["RoleName"],"members":{"RoleName":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListRoleTagsResult","type":"structure","required":["Tags"],"members":{"Tags":{"shape":"S14"},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListRoles":{"input":{"type":"structure","members":{"PathPrefix":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListRolesResult","type":"structure","required":["Roles"],"members":{"Roles":{"shape":"Sx"},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListSAMLProviders":{"input":{"type":"structure","members":{}},"output":{"resultWrapper":"ListSAMLProvidersResult","type":"structure","members":{"SAMLProviderList":{"type":"list","member":{"type":"structure","members":{"Arn":{},"ValidUntil":{"type":"timestamp"},"CreateDate":{"type":"timestamp"}}}}}}},"ListSSHPublicKeys":{"input":{"type":"structure","members":{"UserName":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListSSHPublicKeysResult","type":"structure","members":{"SSHPublicKeys":{"type":"list","member":{"type":"structure","required":["UserName","SSHPublicKeyId","Status","UploadDate"],"members":{"UserName":{},"SSHPublicKeyId":{},"Status":{},"UploadDate":{"type":"timestamp"}}}},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListServerCertificates":{"input":{"type":"structure","members":{"PathPrefix":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListServerCertificatesResult","type":"structure","required":["ServerCertificateMetadataList"],"members":{"ServerCertificateMetadataList":{"type":"list","member":{"shape":"S64"}},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListServiceSpecificCredentials":{"input":{"type":"structure","members":{"UserName":{},"ServiceName":{}}},"output":{"resultWrapper":"ListServiceSpecificCredentialsResult","type":"structure","members":{"ServiceSpecificCredentials":{"type":"list","member":{"type":"structure","required":["UserName","Status","ServiceUserName","CreateDate","ServiceSpecificCredentialId","ServiceName"],"members":{"UserName":{},"Status":{},"ServiceUserName":{},"CreateDate":{"type":"timestamp"},"ServiceSpecificCredentialId":{},"ServiceName":{}}}}}}},"ListSigningCertificates":{"input":{"type":"structure","members":{"UserName":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListSigningCertificatesResult","type":"structure","required":["Certificates"],"members":{"Certificates":{"type":"list","member":{"shape":"S96"}},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListUserPolicies":{"input":{"type":"structure","required":["UserName"],"members":{"UserName":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListUserPoliciesResult","type":"structure","required":["PolicyNames"],"members":{"PolicyNames":{"shape":"S7k"},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListUserTags":{"input":{"type":"structure","required":["UserName"],"members":{"UserName":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListUserTagsResult","type":"structure","required":["Tags"],"members":{"Tags":{"shape":"S14"},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListUsers":{"input":{"type":"structure","members":{"PathPrefix":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListUsersResult","type":"structure","required":["Users"],"members":{"Users":{"shape":"S52"},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListVirtualMFADevices":{"input":{"type":"structure","members":{"AssignmentStatus":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListVirtualMFADevicesResult","type":"structure","required":["VirtualMFADevices"],"members":{"VirtualMFADevices":{"type":"list","member":{"shape":"S2h"}},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"PutGroupPolicy":{"input":{"type":"structure","required":["GroupName","PolicyName","PolicyDocument"],"members":{"GroupName":{},"PolicyName":{},"PolicyDocument":{}}}},"PutRolePermissionsBoundary":{"input":{"type":"structure","required":["RoleName","PermissionsBoundary"],"members":{"RoleName":{},"PermissionsBoundary":{}}}},"PutRolePolicy":{"input":{"type":"structure","required":["RoleName","PolicyName","PolicyDocument"],"members":{"RoleName":{},"PolicyName":{},"PolicyDocument":{}}}},"PutUserPermissionsBoundary":{"input":{"type":"structure","required":["UserName","PermissionsBoundary"],"members":{"UserName":{},"PermissionsBoundary":{}}}},"PutUserPolicy":{"input":{"type":"structure","required":["UserName","PolicyName","PolicyDocument"],"members":{"UserName":{},"PolicyName":{},"PolicyDocument":{}}}},"RemoveClientIDFromOpenIDConnectProvider":{"input":{"type":"structure","required":["OpenIDConnectProviderArn","ClientID"],"members":{"OpenIDConnectProviderArn":{},"ClientID":{}}}},"RemoveRoleFromInstanceProfile":{"input":{"type":"structure","required":["InstanceProfileName","RoleName"],"members":{"InstanceProfileName":{},"RoleName":{}}}},"RemoveUserFromGroup":{"input":{"type":"structure","required":["GroupName","UserName"],"members":{"GroupName":{},"UserName":{}}}},"ResetServiceSpecificCredential":{"input":{"type":"structure","required":["ServiceSpecificCredentialId"],"members":{"UserName":{},"ServiceSpecificCredentialId":{}}},"output":{"resultWrapper":"ResetServiceSpecificCredentialResult","type":"structure","members":{"ServiceSpecificCredential":{"shape":"S27"}}}},"ResyncMFADevice":{"input":{"type":"structure","required":["UserName","SerialNumber","AuthenticationCode1","AuthenticationCode2"],"members":{"UserName":{},"SerialNumber":{},"AuthenticationCode1":{},"AuthenticationCode2":{}}}},"SetDefaultPolicyVersion":{"input":{"type":"structure","required":["PolicyArn","VersionId"],"members":{"PolicyArn":{},"VersionId":{}}}},"SetSecurityTokenServicePreferences":{"input":{"type":"structure","required":["GlobalEndpointTokenVersion"],"members":{"GlobalEndpointTokenVersion":{}}}},"SimulateCustomPolicy":{"input":{"type":"structure","required":["PolicyInputList","ActionNames"],"members":{"PolicyInputList":{"shape":"S4s"},"PermissionsBoundaryPolicyInputList":{"shape":"S4s"},"ActionNames":{"shape":"S9w"},"ResourceArns":{"shape":"S9y"},"ResourcePolicy":{},"ResourceOwner":{},"CallerArn":{},"ContextEntries":{"shape":"Sa0"},"ResourceHandlingOption":{},"MaxItems":{"type":"integer"},"Marker":{}}},"output":{"shape":"Sa6","resultWrapper":"SimulateCustomPolicyResult"}},"SimulatePrincipalPolicy":{"input":{"type":"structure","required":["PolicySourceArn","ActionNames"],"members":{"PolicySourceArn":{},"PolicyInputList":{"shape":"S4s"},"PermissionsBoundaryPolicyInputList":{"shape":"S4s"},"ActionNames":{"shape":"S9w"},"ResourceArns":{"shape":"S9y"},"ResourcePolicy":{},"ResourceOwner":{},"CallerArn":{},"ContextEntries":{"shape":"Sa0"},"ResourceHandlingOption":{},"MaxItems":{"type":"integer"},"Marker":{}}},"output":{"shape":"Sa6","resultWrapper":"SimulatePrincipalPolicyResult"}},"TagRole":{"input":{"type":"structure","required":["RoleName","Tags"],"members":{"RoleName":{},"Tags":{"shape":"S14"}}}},"TagUser":{"input":{"type":"structure","required":["UserName","Tags"],"members":{"UserName":{},"Tags":{"shape":"S14"}}}},"UntagRole":{"input":{"type":"structure","required":["RoleName","TagKeys"],"members":{"RoleName":{},"TagKeys":{"shape":"Sar"}}}},"UntagUser":{"input":{"type":"structure","required":["UserName","TagKeys"],"members":{"UserName":{},"TagKeys":{"shape":"Sar"}}}},"UpdateAccessKey":{"input":{"type":"structure","required":["AccessKeyId","Status"],"members":{"UserName":{},"AccessKeyId":{},"Status":{}}}},"UpdateAccountPasswordPolicy":{"input":{"type":"structure","members":{"MinimumPasswordLength":{"type":"integer"},"RequireSymbols":{"type":"boolean"},"RequireNumbers":{"type":"boolean"},"RequireUppercaseCharacters":{"type":"boolean"},"RequireLowercaseCharacters":{"type":"boolean"},"AllowUsersToChangePassword":{"type":"boolean"},"MaxPasswordAge":{"type":"integer"},"PasswordReusePrevention":{"type":"integer"},"HardExpiry":{"type":"boolean"}}}},"UpdateAssumeRolePolicy":{"input":{"type":"structure","required":["RoleName","PolicyDocument"],"members":{"RoleName":{},"PolicyDocument":{}}}},"UpdateGroup":{"input":{"type":"structure","required":["GroupName"],"members":{"GroupName":{},"NewPath":{},"NewGroupName":{}}}},"UpdateLoginProfile":{"input":{"type":"structure","required":["UserName"],"members":{"UserName":{},"Password":{"shape":"Sf"},"PasswordResetRequired":{"type":"boolean"}}}},"UpdateOpenIDConnectProviderThumbprint":{"input":{"type":"structure","required":["OpenIDConnectProviderArn","ThumbprintList"],"members":{"OpenIDConnectProviderArn":{},"ThumbprintList":{"shape":"S1h"}}}},"UpdateRole":{"input":{"type":"structure","required":["RoleName"],"members":{"RoleName":{},"Description":{},"MaxSessionDuration":{"type":"integer"}}},"output":{"resultWrapper":"UpdateRoleResult","type":"structure","members":{}}},"UpdateRoleDescription":{"input":{"type":"structure","required":["RoleName","Description"],"members":{"RoleName":{},"Description":{}}},"output":{"resultWrapper":"UpdateRoleDescriptionResult","type":"structure","members":{"Role":{"shape":"Sy"}}}},"UpdateSAMLProvider":{"input":{"type":"structure","required":["SAMLMetadataDocument","SAMLProviderArn"],"members":{"SAMLMetadataDocument":{},"SAMLProviderArn":{}}},"output":{"resultWrapper":"UpdateSAMLProviderResult","type":"structure","members":{"SAMLProviderArn":{}}}},"UpdateSSHPublicKey":{"input":{"type":"structure","required":["UserName","SSHPublicKeyId","Status"],"members":{"UserName":{},"SSHPublicKeyId":{},"Status":{}}}},"UpdateServerCertificate":{"input":{"type":"structure","required":["ServerCertificateName"],"members":{"ServerCertificateName":{},"NewPath":{},"NewServerCertificateName":{}}}},"UpdateServiceSpecificCredential":{"input":{"type":"structure","required":["ServiceSpecificCredentialId","Status"],"members":{"UserName":{},"ServiceSpecificCredentialId":{},"Status":{}}}},"UpdateSigningCertificate":{"input":{"type":"structure","required":["CertificateId","Status"],"members":{"UserName":{},"CertificateId":{},"Status":{}}}},"UpdateUser":{"input":{"type":"structure","required":["UserName"],"members":{"UserName":{},"NewPath":{},"NewUserName":{}}}},"UploadSSHPublicKey":{"input":{"type":"structure","required":["UserName","SSHPublicKeyBody"],"members":{"UserName":{},"SSHPublicKeyBody":{}}},"output":{"resultWrapper":"UploadSSHPublicKeyResult","type":"structure","members":{"SSHPublicKey":{"shape":"S5y"}}}},"UploadServerCertificate":{"input":{"type":"structure","required":["ServerCertificateName","CertificateBody","PrivateKey"],"members":{"Path":{},"ServerCertificateName":{},"CertificateBody":{},"PrivateKey":{"type":"string","sensitive":true},"CertificateChain":{}}},"output":{"resultWrapper":"UploadServerCertificateResult","type":"structure","members":{"ServerCertificateMetadata":{"shape":"S64"}}}},"UploadSigningCertificate":{"input":{"type":"structure","required":["CertificateBody"],"members":{"UserName":{},"CertificateBody":{}}},"output":{"resultWrapper":"UploadSigningCertificateResult","type":"structure","required":["Certificate"],"members":{"Certificate":{"shape":"S96"}}}}},"shapes":{"Sf":{"type":"string","sensitive":true},"Ss":{"type":"structure","required":["Path","GroupName","GroupId","Arn","CreateDate"],"members":{"Path":{},"GroupName":{},"GroupId":{},"Arn":{},"CreateDate":{"type":"timestamp"}}},"Sw":{"type":"structure","required":["Path","InstanceProfileName","InstanceProfileId","Arn","CreateDate","Roles"],"members":{"Path":{},"InstanceProfileName":{},"InstanceProfileId":{},"Arn":{},"CreateDate":{"type":"timestamp"},"Roles":{"shape":"Sx"}}},"Sx":{"type":"list","member":{"shape":"Sy"}},"Sy":{"type":"structure","required":["Path","RoleName","RoleId","Arn","CreateDate"],"members":{"Path":{},"RoleName":{},"RoleId":{},"Arn":{},"CreateDate":{"type":"timestamp"},"AssumeRolePolicyDocument":{},"Description":{},"MaxSessionDuration":{"type":"integer"},"PermissionsBoundary":{"shape":"S12"},"Tags":{"shape":"S14"},"RoleLastUsed":{"shape":"S18"}}},"S12":{"type":"structure","members":{"PermissionsBoundaryType":{},"PermissionsBoundaryArn":{}}},"S14":{"type":"list","member":{"type":"structure","required":["Key","Value"],"members":{"Key":{},"Value":{}}}},"S18":{"type":"structure","members":{"LastUsedDate":{"type":"timestamp"},"Region":{}}},"S1d":{"type":"structure","required":["UserName","CreateDate"],"members":{"UserName":{},"CreateDate":{"type":"timestamp"},"PasswordResetRequired":{"type":"boolean"}}},"S1g":{"type":"list","member":{}},"S1h":{"type":"list","member":{}},"S1p":{"type":"structure","members":{"PolicyName":{},"PolicyId":{},"Arn":{},"Path":{},"DefaultVersionId":{},"AttachmentCount":{"type":"integer"},"PermissionsBoundaryUsageCount":{"type":"integer"},"IsAttachable":{"type":"boolean"},"Description":{},"CreateDate":{"type":"timestamp"},"UpdateDate":{"type":"timestamp"}}},"S1u":{"type":"structure","members":{"Document":{},"VersionId":{},"IsDefaultVersion":{"type":"boolean"},"CreateDate":{"type":"timestamp"}}},"S27":{"type":"structure","required":["CreateDate","ServiceName","ServiceUserName","ServicePassword","ServiceSpecificCredentialId","UserName","Status"],"members":{"CreateDate":{"type":"timestamp"},"ServiceName":{},"ServiceUserName":{},"ServicePassword":{"type":"string","sensitive":true},"ServiceSpecificCredentialId":{},"UserName":{},"Status":{}}},"S2d":{"type":"structure","required":["Path","UserName","UserId","Arn","CreateDate"],"members":{"Path":{},"UserName":{},"UserId":{},"Arn":{},"CreateDate":{"type":"timestamp"},"PasswordLastUsed":{"type":"timestamp"},"PermissionsBoundary":{"shape":"S12"},"Tags":{"shape":"S14"}}},"S2h":{"type":"structure","required":["SerialNumber"],"members":{"SerialNumber":{},"Base32StringSeed":{"shape":"S2j"},"QRCodePNG":{"shape":"S2j"},"User":{"shape":"S2d"},"EnableDate":{"type":"timestamp"}}},"S2j":{"type":"blob","sensitive":true},"S43":{"type":"list","member":{"type":"structure","members":{"PolicyName":{},"PolicyDocument":{}}}},"S46":{"type":"list","member":{"type":"structure","members":{"PolicyName":{},"PolicyArn":{}}}},"S4c":{"type":"list","member":{"shape":"Sw"}},"S4f":{"type":"list","member":{"shape":"S1u"}},"S4s":{"type":"list","member":{}},"S4t":{"type":"structure","members":{"ContextKeyNames":{"shape":"S4u"}}},"S4u":{"type":"list","member":{}},"S52":{"type":"list","member":{"shape":"S2d"}},"S5k":{"type":"structure","required":["Message","Code"],"members":{"Message":{},"Code":{}}},"S5y":{"type":"structure","required":["UserName","SSHPublicKeyId","Fingerprint","SSHPublicKeyBody","Status"],"members":{"UserName":{},"SSHPublicKeyId":{},"Fingerprint":{},"SSHPublicKeyBody":{},"Status":{},"UploadDate":{"type":"timestamp"}}},"S64":{"type":"structure","required":["Path","ServerCertificateName","ServerCertificateId","Arn"],"members":{"Path":{},"ServerCertificateName":{},"ServerCertificateId":{},"Arn":{},"UploadDate":{"type":"timestamp"},"Expiration":{"type":"timestamp"}}},"S7k":{"type":"list","member":{}},"S7o":{"type":"list","member":{"shape":"Ss"}},"S96":{"type":"structure","required":["UserName","CertificateId","CertificateBody","Status"],"members":{"UserName":{},"CertificateId":{},"CertificateBody":{},"Status":{},"UploadDate":{"type":"timestamp"}}},"S9w":{"type":"list","member":{}},"S9y":{"type":"list","member":{}},"Sa0":{"type":"list","member":{"type":"structure","members":{"ContextKeyName":{},"ContextKeyValues":{"type":"list","member":{}},"ContextKeyType":{}}}},"Sa6":{"type":"structure","members":{"EvaluationResults":{"type":"list","member":{"type":"structure","required":["EvalActionName","EvalDecision"],"members":{"EvalActionName":{},"EvalResourceName":{},"EvalDecision":{},"MatchedStatements":{"shape":"Saa"},"MissingContextValues":{"shape":"S4u"},"OrganizationsDecisionDetail":{"type":"structure","members":{"AllowedByOrganizations":{"type":"boolean"}}},"PermissionsBoundaryDecisionDetail":{"shape":"Sai"},"EvalDecisionDetails":{"shape":"Saj"},"ResourceSpecificResults":{"type":"list","member":{"type":"structure","required":["EvalResourceName","EvalResourceDecision"],"members":{"EvalResourceName":{},"EvalResourceDecision":{},"MatchedStatements":{"shape":"Saa"},"MissingContextValues":{"shape":"S4u"},"EvalDecisionDetails":{"shape":"Saj"},"PermissionsBoundaryDecisionDetail":{"shape":"Sai"}}}}}}},"IsTruncated":{"type":"boolean"},"Marker":{}}},"Saa":{"type":"list","member":{"type":"structure","members":{"SourcePolicyId":{},"SourcePolicyType":{},"StartPosition":{"shape":"Sae"},"EndPosition":{"shape":"Sae"}}}},"Sae":{"type":"structure","members":{"Line":{"type":"integer"},"Column":{"type":"integer"}}},"Sai":{"type":"structure","members":{"AllowedByPermissionsBoundary":{"type":"boolean"}}},"Saj":{"type":"map","key":{},"value":{}},"Sar":{"type":"list","member":{}}}}; +module.exports = {"version":"2.0","metadata":{"apiVersion":"2010-05-08","endpointPrefix":"iam","globalEndpoint":"iam.amazonaws.com","protocol":"query","serviceAbbreviation":"IAM","serviceFullName":"AWS Identity and Access Management","serviceId":"IAM","signatureVersion":"v4","uid":"iam-2010-05-08","xmlNamespace":"https://iam.amazonaws.com/doc/2010-05-08/"},"operations":{"AddClientIDToOpenIDConnectProvider":{"input":{"type":"structure","required":["OpenIDConnectProviderArn","ClientID"],"members":{"OpenIDConnectProviderArn":{},"ClientID":{}}}},"AddRoleToInstanceProfile":{"input":{"type":"structure","required":["InstanceProfileName","RoleName"],"members":{"InstanceProfileName":{},"RoleName":{}}}},"AddUserToGroup":{"input":{"type":"structure","required":["GroupName","UserName"],"members":{"GroupName":{},"UserName":{}}}},"AttachGroupPolicy":{"input":{"type":"structure","required":["GroupName","PolicyArn"],"members":{"GroupName":{},"PolicyArn":{}}}},"AttachRolePolicy":{"input":{"type":"structure","required":["RoleName","PolicyArn"],"members":{"RoleName":{},"PolicyArn":{}}}},"AttachUserPolicy":{"input":{"type":"structure","required":["UserName","PolicyArn"],"members":{"UserName":{},"PolicyArn":{}}}},"ChangePassword":{"input":{"type":"structure","required":["OldPassword","NewPassword"],"members":{"OldPassword":{"shape":"Sf"},"NewPassword":{"shape":"Sf"}}}},"CreateAccessKey":{"input":{"type":"structure","members":{"UserName":{}}},"output":{"resultWrapper":"CreateAccessKeyResult","type":"structure","required":["AccessKey"],"members":{"AccessKey":{"type":"structure","required":["UserName","AccessKeyId","Status","SecretAccessKey"],"members":{"UserName":{},"AccessKeyId":{},"Status":{},"SecretAccessKey":{"type":"string","sensitive":true},"CreateDate":{"type":"timestamp"}}}}}},"CreateAccountAlias":{"input":{"type":"structure","required":["AccountAlias"],"members":{"AccountAlias":{}}}},"CreateGroup":{"input":{"type":"structure","required":["GroupName"],"members":{"Path":{},"GroupName":{}}},"output":{"resultWrapper":"CreateGroupResult","type":"structure","required":["Group"],"members":{"Group":{"shape":"Ss"}}}},"CreateInstanceProfile":{"input":{"type":"structure","required":["InstanceProfileName"],"members":{"InstanceProfileName":{},"Path":{},"Tags":{"shape":"Sv"}}},"output":{"resultWrapper":"CreateInstanceProfileResult","type":"structure","required":["InstanceProfile"],"members":{"InstanceProfile":{"shape":"S10"}}}},"CreateLoginProfile":{"input":{"type":"structure","required":["UserName","Password"],"members":{"UserName":{},"Password":{"shape":"Sf"},"PasswordResetRequired":{"type":"boolean"}}},"output":{"resultWrapper":"CreateLoginProfileResult","type":"structure","required":["LoginProfile"],"members":{"LoginProfile":{"shape":"S1d"}}}},"CreateOpenIDConnectProvider":{"input":{"type":"structure","required":["Url","ThumbprintList"],"members":{"Url":{},"ClientIDList":{"shape":"S1g"},"ThumbprintList":{"shape":"S1h"},"Tags":{"shape":"Sv"}}},"output":{"resultWrapper":"CreateOpenIDConnectProviderResult","type":"structure","members":{"OpenIDConnectProviderArn":{},"Tags":{"shape":"Sv"}}}},"CreatePolicy":{"input":{"type":"structure","required":["PolicyName","PolicyDocument"],"members":{"PolicyName":{},"Path":{},"PolicyDocument":{},"Description":{},"Tags":{"shape":"Sv"}}},"output":{"resultWrapper":"CreatePolicyResult","type":"structure","members":{"Policy":{"shape":"S1p"}}}},"CreatePolicyVersion":{"input":{"type":"structure","required":["PolicyArn","PolicyDocument"],"members":{"PolicyArn":{},"PolicyDocument":{},"SetAsDefault":{"type":"boolean"}}},"output":{"resultWrapper":"CreatePolicyVersionResult","type":"structure","members":{"PolicyVersion":{"shape":"S1u"}}}},"CreateRole":{"input":{"type":"structure","required":["RoleName","AssumeRolePolicyDocument"],"members":{"Path":{},"RoleName":{},"AssumeRolePolicyDocument":{},"Description":{},"MaxSessionDuration":{"type":"integer"},"PermissionsBoundary":{},"Tags":{"shape":"Sv"}}},"output":{"resultWrapper":"CreateRoleResult","type":"structure","required":["Role"],"members":{"Role":{"shape":"S12"}}}},"CreateSAMLProvider":{"input":{"type":"structure","required":["SAMLMetadataDocument","Name"],"members":{"SAMLMetadataDocument":{},"Name":{},"Tags":{"shape":"Sv"}}},"output":{"resultWrapper":"CreateSAMLProviderResult","type":"structure","members":{"SAMLProviderArn":{},"Tags":{"shape":"Sv"}}}},"CreateServiceLinkedRole":{"input":{"type":"structure","required":["AWSServiceName"],"members":{"AWSServiceName":{},"Description":{},"CustomSuffix":{}}},"output":{"resultWrapper":"CreateServiceLinkedRoleResult","type":"structure","members":{"Role":{"shape":"S12"}}}},"CreateServiceSpecificCredential":{"input":{"type":"structure","required":["UserName","ServiceName"],"members":{"UserName":{},"ServiceName":{}}},"output":{"resultWrapper":"CreateServiceSpecificCredentialResult","type":"structure","members":{"ServiceSpecificCredential":{"shape":"S27"}}}},"CreateUser":{"input":{"type":"structure","required":["UserName"],"members":{"Path":{},"UserName":{},"PermissionsBoundary":{},"Tags":{"shape":"Sv"}}},"output":{"resultWrapper":"CreateUserResult","type":"structure","members":{"User":{"shape":"S2d"}}}},"CreateVirtualMFADevice":{"input":{"type":"structure","required":["VirtualMFADeviceName"],"members":{"Path":{},"VirtualMFADeviceName":{},"Tags":{"shape":"Sv"}}},"output":{"resultWrapper":"CreateVirtualMFADeviceResult","type":"structure","required":["VirtualMFADevice"],"members":{"VirtualMFADevice":{"shape":"S2h"}}}},"DeactivateMFADevice":{"input":{"type":"structure","required":["UserName","SerialNumber"],"members":{"UserName":{},"SerialNumber":{}}}},"DeleteAccessKey":{"input":{"type":"structure","required":["AccessKeyId"],"members":{"UserName":{},"AccessKeyId":{}}}},"DeleteAccountAlias":{"input":{"type":"structure","required":["AccountAlias"],"members":{"AccountAlias":{}}}},"DeleteAccountPasswordPolicy":{},"DeleteGroup":{"input":{"type":"structure","required":["GroupName"],"members":{"GroupName":{}}}},"DeleteGroupPolicy":{"input":{"type":"structure","required":["GroupName","PolicyName"],"members":{"GroupName":{},"PolicyName":{}}}},"DeleteInstanceProfile":{"input":{"type":"structure","required":["InstanceProfileName"],"members":{"InstanceProfileName":{}}}},"DeleteLoginProfile":{"input":{"type":"structure","required":["UserName"],"members":{"UserName":{}}}},"DeleteOpenIDConnectProvider":{"input":{"type":"structure","required":["OpenIDConnectProviderArn"],"members":{"OpenIDConnectProviderArn":{}}}},"DeletePolicy":{"input":{"type":"structure","required":["PolicyArn"],"members":{"PolicyArn":{}}}},"DeletePolicyVersion":{"input":{"type":"structure","required":["PolicyArn","VersionId"],"members":{"PolicyArn":{},"VersionId":{}}}},"DeleteRole":{"input":{"type":"structure","required":["RoleName"],"members":{"RoleName":{}}}},"DeleteRolePermissionsBoundary":{"input":{"type":"structure","required":["RoleName"],"members":{"RoleName":{}}}},"DeleteRolePolicy":{"input":{"type":"structure","required":["RoleName","PolicyName"],"members":{"RoleName":{},"PolicyName":{}}}},"DeleteSAMLProvider":{"input":{"type":"structure","required":["SAMLProviderArn"],"members":{"SAMLProviderArn":{}}}},"DeleteSSHPublicKey":{"input":{"type":"structure","required":["UserName","SSHPublicKeyId"],"members":{"UserName":{},"SSHPublicKeyId":{}}}},"DeleteServerCertificate":{"input":{"type":"structure","required":["ServerCertificateName"],"members":{"ServerCertificateName":{}}}},"DeleteServiceLinkedRole":{"input":{"type":"structure","required":["RoleName"],"members":{"RoleName":{}}},"output":{"resultWrapper":"DeleteServiceLinkedRoleResult","type":"structure","required":["DeletionTaskId"],"members":{"DeletionTaskId":{}}}},"DeleteServiceSpecificCredential":{"input":{"type":"structure","required":["ServiceSpecificCredentialId"],"members":{"UserName":{},"ServiceSpecificCredentialId":{}}}},"DeleteSigningCertificate":{"input":{"type":"structure","required":["CertificateId"],"members":{"UserName":{},"CertificateId":{}}}},"DeleteUser":{"input":{"type":"structure","required":["UserName"],"members":{"UserName":{}}}},"DeleteUserPermissionsBoundary":{"input":{"type":"structure","required":["UserName"],"members":{"UserName":{}}}},"DeleteUserPolicy":{"input":{"type":"structure","required":["UserName","PolicyName"],"members":{"UserName":{},"PolicyName":{}}}},"DeleteVirtualMFADevice":{"input":{"type":"structure","required":["SerialNumber"],"members":{"SerialNumber":{}}}},"DetachGroupPolicy":{"input":{"type":"structure","required":["GroupName","PolicyArn"],"members":{"GroupName":{},"PolicyArn":{}}}},"DetachRolePolicy":{"input":{"type":"structure","required":["RoleName","PolicyArn"],"members":{"RoleName":{},"PolicyArn":{}}}},"DetachUserPolicy":{"input":{"type":"structure","required":["UserName","PolicyArn"],"members":{"UserName":{},"PolicyArn":{}}}},"EnableMFADevice":{"input":{"type":"structure","required":["UserName","SerialNumber","AuthenticationCode1","AuthenticationCode2"],"members":{"UserName":{},"SerialNumber":{},"AuthenticationCode1":{},"AuthenticationCode2":{}}}},"GenerateCredentialReport":{"output":{"resultWrapper":"GenerateCredentialReportResult","type":"structure","members":{"State":{},"Description":{}}}},"GenerateOrganizationsAccessReport":{"input":{"type":"structure","required":["EntityPath"],"members":{"EntityPath":{},"OrganizationsPolicyId":{}}},"output":{"resultWrapper":"GenerateOrganizationsAccessReportResult","type":"structure","members":{"JobId":{}}}},"GenerateServiceLastAccessedDetails":{"input":{"type":"structure","required":["Arn"],"members":{"Arn":{},"Granularity":{}}},"output":{"resultWrapper":"GenerateServiceLastAccessedDetailsResult","type":"structure","members":{"JobId":{}}}},"GetAccessKeyLastUsed":{"input":{"type":"structure","required":["AccessKeyId"],"members":{"AccessKeyId":{}}},"output":{"resultWrapper":"GetAccessKeyLastUsedResult","type":"structure","members":{"UserName":{},"AccessKeyLastUsed":{"type":"structure","required":["LastUsedDate","ServiceName","Region"],"members":{"LastUsedDate":{"type":"timestamp"},"ServiceName":{},"Region":{}}}}}},"GetAccountAuthorizationDetails":{"input":{"type":"structure","members":{"Filter":{"type":"list","member":{}},"MaxItems":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"GetAccountAuthorizationDetailsResult","type":"structure","members":{"UserDetailList":{"type":"list","member":{"type":"structure","members":{"Path":{},"UserName":{},"UserId":{},"Arn":{},"CreateDate":{"type":"timestamp"},"UserPolicyList":{"shape":"S43"},"GroupList":{"type":"list","member":{}},"AttachedManagedPolicies":{"shape":"S46"},"PermissionsBoundary":{"shape":"S16"},"Tags":{"shape":"Sv"}}}},"GroupDetailList":{"type":"list","member":{"type":"structure","members":{"Path":{},"GroupName":{},"GroupId":{},"Arn":{},"CreateDate":{"type":"timestamp"},"GroupPolicyList":{"shape":"S43"},"AttachedManagedPolicies":{"shape":"S46"}}}},"RoleDetailList":{"type":"list","member":{"type":"structure","members":{"Path":{},"RoleName":{},"RoleId":{},"Arn":{},"CreateDate":{"type":"timestamp"},"AssumeRolePolicyDocument":{},"InstanceProfileList":{"shape":"S4c"},"RolePolicyList":{"shape":"S43"},"AttachedManagedPolicies":{"shape":"S46"},"PermissionsBoundary":{"shape":"S16"},"Tags":{"shape":"Sv"},"RoleLastUsed":{"shape":"S18"}}}},"Policies":{"type":"list","member":{"type":"structure","members":{"PolicyName":{},"PolicyId":{},"Arn":{},"Path":{},"DefaultVersionId":{},"AttachmentCount":{"type":"integer"},"PermissionsBoundaryUsageCount":{"type":"integer"},"IsAttachable":{"type":"boolean"},"Description":{},"CreateDate":{"type":"timestamp"},"UpdateDate":{"type":"timestamp"},"PolicyVersionList":{"shape":"S4f"}}}},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"GetAccountPasswordPolicy":{"output":{"resultWrapper":"GetAccountPasswordPolicyResult","type":"structure","required":["PasswordPolicy"],"members":{"PasswordPolicy":{"type":"structure","members":{"MinimumPasswordLength":{"type":"integer"},"RequireSymbols":{"type":"boolean"},"RequireNumbers":{"type":"boolean"},"RequireUppercaseCharacters":{"type":"boolean"},"RequireLowercaseCharacters":{"type":"boolean"},"AllowUsersToChangePassword":{"type":"boolean"},"ExpirePasswords":{"type":"boolean"},"MaxPasswordAge":{"type":"integer"},"PasswordReusePrevention":{"type":"integer"},"HardExpiry":{"type":"boolean"}}}}}},"GetAccountSummary":{"output":{"resultWrapper":"GetAccountSummaryResult","type":"structure","members":{"SummaryMap":{"type":"map","key":{},"value":{"type":"integer"}}}}},"GetContextKeysForCustomPolicy":{"input":{"type":"structure","required":["PolicyInputList"],"members":{"PolicyInputList":{"shape":"S4s"}}},"output":{"shape":"S4t","resultWrapper":"GetContextKeysForCustomPolicyResult"}},"GetContextKeysForPrincipalPolicy":{"input":{"type":"structure","required":["PolicySourceArn"],"members":{"PolicySourceArn":{},"PolicyInputList":{"shape":"S4s"}}},"output":{"shape":"S4t","resultWrapper":"GetContextKeysForPrincipalPolicyResult"}},"GetCredentialReport":{"output":{"resultWrapper":"GetCredentialReportResult","type":"structure","members":{"Content":{"type":"blob"},"ReportFormat":{},"GeneratedTime":{"type":"timestamp"}}}},"GetGroup":{"input":{"type":"structure","required":["GroupName"],"members":{"GroupName":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"GetGroupResult","type":"structure","required":["Group","Users"],"members":{"Group":{"shape":"Ss"},"Users":{"shape":"S52"},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"GetGroupPolicy":{"input":{"type":"structure","required":["GroupName","PolicyName"],"members":{"GroupName":{},"PolicyName":{}}},"output":{"resultWrapper":"GetGroupPolicyResult","type":"structure","required":["GroupName","PolicyName","PolicyDocument"],"members":{"GroupName":{},"PolicyName":{},"PolicyDocument":{}}}},"GetInstanceProfile":{"input":{"type":"structure","required":["InstanceProfileName"],"members":{"InstanceProfileName":{}}},"output":{"resultWrapper":"GetInstanceProfileResult","type":"structure","required":["InstanceProfile"],"members":{"InstanceProfile":{"shape":"S10"}}}},"GetLoginProfile":{"input":{"type":"structure","required":["UserName"],"members":{"UserName":{}}},"output":{"resultWrapper":"GetLoginProfileResult","type":"structure","required":["LoginProfile"],"members":{"LoginProfile":{"shape":"S1d"}}}},"GetOpenIDConnectProvider":{"input":{"type":"structure","required":["OpenIDConnectProviderArn"],"members":{"OpenIDConnectProviderArn":{}}},"output":{"resultWrapper":"GetOpenIDConnectProviderResult","type":"structure","members":{"Url":{},"ClientIDList":{"shape":"S1g"},"ThumbprintList":{"shape":"S1h"},"CreateDate":{"type":"timestamp"},"Tags":{"shape":"Sv"}}}},"GetOrganizationsAccessReport":{"input":{"type":"structure","required":["JobId"],"members":{"JobId":{},"MaxItems":{"type":"integer"},"Marker":{},"SortKey":{}}},"output":{"resultWrapper":"GetOrganizationsAccessReportResult","type":"structure","required":["JobStatus","JobCreationDate"],"members":{"JobStatus":{},"JobCreationDate":{"type":"timestamp"},"JobCompletionDate":{"type":"timestamp"},"NumberOfServicesAccessible":{"type":"integer"},"NumberOfServicesNotAccessed":{"type":"integer"},"AccessDetails":{"type":"list","member":{"type":"structure","required":["ServiceName","ServiceNamespace"],"members":{"ServiceName":{},"ServiceNamespace":{},"Region":{},"EntityPath":{},"LastAuthenticatedTime":{"type":"timestamp"},"TotalAuthenticatedEntities":{"type":"integer"}}}},"IsTruncated":{"type":"boolean"},"Marker":{},"ErrorDetails":{"shape":"S5k"}}}},"GetPolicy":{"input":{"type":"structure","required":["PolicyArn"],"members":{"PolicyArn":{}}},"output":{"resultWrapper":"GetPolicyResult","type":"structure","members":{"Policy":{"shape":"S1p"}}}},"GetPolicyVersion":{"input":{"type":"structure","required":["PolicyArn","VersionId"],"members":{"PolicyArn":{},"VersionId":{}}},"output":{"resultWrapper":"GetPolicyVersionResult","type":"structure","members":{"PolicyVersion":{"shape":"S1u"}}}},"GetRole":{"input":{"type":"structure","required":["RoleName"],"members":{"RoleName":{}}},"output":{"resultWrapper":"GetRoleResult","type":"structure","required":["Role"],"members":{"Role":{"shape":"S12"}}}},"GetRolePolicy":{"input":{"type":"structure","required":["RoleName","PolicyName"],"members":{"RoleName":{},"PolicyName":{}}},"output":{"resultWrapper":"GetRolePolicyResult","type":"structure","required":["RoleName","PolicyName","PolicyDocument"],"members":{"RoleName":{},"PolicyName":{},"PolicyDocument":{}}}},"GetSAMLProvider":{"input":{"type":"structure","required":["SAMLProviderArn"],"members":{"SAMLProviderArn":{}}},"output":{"resultWrapper":"GetSAMLProviderResult","type":"structure","members":{"SAMLMetadataDocument":{},"CreateDate":{"type":"timestamp"},"ValidUntil":{"type":"timestamp"},"Tags":{"shape":"Sv"}}}},"GetSSHPublicKey":{"input":{"type":"structure","required":["UserName","SSHPublicKeyId","Encoding"],"members":{"UserName":{},"SSHPublicKeyId":{},"Encoding":{}}},"output":{"resultWrapper":"GetSSHPublicKeyResult","type":"structure","members":{"SSHPublicKey":{"shape":"S5y"}}}},"GetServerCertificate":{"input":{"type":"structure","required":["ServerCertificateName"],"members":{"ServerCertificateName":{}}},"output":{"resultWrapper":"GetServerCertificateResult","type":"structure","required":["ServerCertificate"],"members":{"ServerCertificate":{"type":"structure","required":["ServerCertificateMetadata","CertificateBody"],"members":{"ServerCertificateMetadata":{"shape":"S64"},"CertificateBody":{},"CertificateChain":{},"Tags":{"shape":"Sv"}}}}}},"GetServiceLastAccessedDetails":{"input":{"type":"structure","required":["JobId"],"members":{"JobId":{},"MaxItems":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"GetServiceLastAccessedDetailsResult","type":"structure","required":["JobStatus","JobCreationDate","ServicesLastAccessed","JobCompletionDate"],"members":{"JobStatus":{},"JobType":{},"JobCreationDate":{"type":"timestamp"},"ServicesLastAccessed":{"type":"list","member":{"type":"structure","required":["ServiceName","ServiceNamespace"],"members":{"ServiceName":{},"LastAuthenticated":{"type":"timestamp"},"ServiceNamespace":{},"LastAuthenticatedEntity":{},"LastAuthenticatedRegion":{},"TotalAuthenticatedEntities":{"type":"integer"},"TrackedActionsLastAccessed":{"type":"list","member":{"type":"structure","members":{"ActionName":{},"LastAccessedEntity":{},"LastAccessedTime":{"type":"timestamp"},"LastAccessedRegion":{}}}}}}},"JobCompletionDate":{"type":"timestamp"},"IsTruncated":{"type":"boolean"},"Marker":{},"Error":{"shape":"S5k"}}}},"GetServiceLastAccessedDetailsWithEntities":{"input":{"type":"structure","required":["JobId","ServiceNamespace"],"members":{"JobId":{},"ServiceNamespace":{},"MaxItems":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"GetServiceLastAccessedDetailsWithEntitiesResult","type":"structure","required":["JobStatus","JobCreationDate","JobCompletionDate","EntityDetailsList"],"members":{"JobStatus":{},"JobCreationDate":{"type":"timestamp"},"JobCompletionDate":{"type":"timestamp"},"EntityDetailsList":{"type":"list","member":{"type":"structure","required":["EntityInfo"],"members":{"EntityInfo":{"type":"structure","required":["Arn","Name","Type","Id"],"members":{"Arn":{},"Name":{},"Type":{},"Id":{},"Path":{}}},"LastAuthenticated":{"type":"timestamp"}}}},"IsTruncated":{"type":"boolean"},"Marker":{},"Error":{"shape":"S5k"}}}},"GetServiceLinkedRoleDeletionStatus":{"input":{"type":"structure","required":["DeletionTaskId"],"members":{"DeletionTaskId":{}}},"output":{"resultWrapper":"GetServiceLinkedRoleDeletionStatusResult","type":"structure","required":["Status"],"members":{"Status":{},"Reason":{"type":"structure","members":{"Reason":{},"RoleUsageList":{"type":"list","member":{"type":"structure","members":{"Region":{},"Resources":{"type":"list","member":{}}}}}}}}}},"GetUser":{"input":{"type":"structure","members":{"UserName":{}}},"output":{"resultWrapper":"GetUserResult","type":"structure","required":["User"],"members":{"User":{"shape":"S2d"}}}},"GetUserPolicy":{"input":{"type":"structure","required":["UserName","PolicyName"],"members":{"UserName":{},"PolicyName":{}}},"output":{"resultWrapper":"GetUserPolicyResult","type":"structure","required":["UserName","PolicyName","PolicyDocument"],"members":{"UserName":{},"PolicyName":{},"PolicyDocument":{}}}},"ListAccessKeys":{"input":{"type":"structure","members":{"UserName":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListAccessKeysResult","type":"structure","required":["AccessKeyMetadata"],"members":{"AccessKeyMetadata":{"type":"list","member":{"type":"structure","members":{"UserName":{},"AccessKeyId":{},"Status":{},"CreateDate":{"type":"timestamp"}}}},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListAccountAliases":{"input":{"type":"structure","members":{"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListAccountAliasesResult","type":"structure","required":["AccountAliases"],"members":{"AccountAliases":{"type":"list","member":{}},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListAttachedGroupPolicies":{"input":{"type":"structure","required":["GroupName"],"members":{"GroupName":{},"PathPrefix":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListAttachedGroupPoliciesResult","type":"structure","members":{"AttachedPolicies":{"shape":"S46"},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListAttachedRolePolicies":{"input":{"type":"structure","required":["RoleName"],"members":{"RoleName":{},"PathPrefix":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListAttachedRolePoliciesResult","type":"structure","members":{"AttachedPolicies":{"shape":"S46"},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListAttachedUserPolicies":{"input":{"type":"structure","required":["UserName"],"members":{"UserName":{},"PathPrefix":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListAttachedUserPoliciesResult","type":"structure","members":{"AttachedPolicies":{"shape":"S46"},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListEntitiesForPolicy":{"input":{"type":"structure","required":["PolicyArn"],"members":{"PolicyArn":{},"EntityFilter":{},"PathPrefix":{},"PolicyUsageFilter":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListEntitiesForPolicyResult","type":"structure","members":{"PolicyGroups":{"type":"list","member":{"type":"structure","members":{"GroupName":{},"GroupId":{}}}},"PolicyUsers":{"type":"list","member":{"type":"structure","members":{"UserName":{},"UserId":{}}}},"PolicyRoles":{"type":"list","member":{"type":"structure","members":{"RoleName":{},"RoleId":{}}}},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListGroupPolicies":{"input":{"type":"structure","required":["GroupName"],"members":{"GroupName":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListGroupPoliciesResult","type":"structure","required":["PolicyNames"],"members":{"PolicyNames":{"shape":"S7k"},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListGroups":{"input":{"type":"structure","members":{"PathPrefix":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListGroupsResult","type":"structure","required":["Groups"],"members":{"Groups":{"shape":"S7o"},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListGroupsForUser":{"input":{"type":"structure","required":["UserName"],"members":{"UserName":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListGroupsForUserResult","type":"structure","required":["Groups"],"members":{"Groups":{"shape":"S7o"},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListInstanceProfileTags":{"input":{"type":"structure","required":["InstanceProfileName"],"members":{"InstanceProfileName":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListInstanceProfileTagsResult","type":"structure","required":["Tags"],"members":{"Tags":{"shape":"Sv"},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListInstanceProfiles":{"input":{"type":"structure","members":{"PathPrefix":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListInstanceProfilesResult","type":"structure","required":["InstanceProfiles"],"members":{"InstanceProfiles":{"shape":"S4c"},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListInstanceProfilesForRole":{"input":{"type":"structure","required":["RoleName"],"members":{"RoleName":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListInstanceProfilesForRoleResult","type":"structure","required":["InstanceProfiles"],"members":{"InstanceProfiles":{"shape":"S4c"},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListMFADeviceTags":{"input":{"type":"structure","required":["SerialNumber"],"members":{"SerialNumber":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListMFADeviceTagsResult","type":"structure","required":["Tags"],"members":{"Tags":{"shape":"Sv"},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListMFADevices":{"input":{"type":"structure","members":{"UserName":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListMFADevicesResult","type":"structure","required":["MFADevices"],"members":{"MFADevices":{"type":"list","member":{"type":"structure","required":["UserName","SerialNumber","EnableDate"],"members":{"UserName":{},"SerialNumber":{},"EnableDate":{"type":"timestamp"}}}},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListOpenIDConnectProviderTags":{"input":{"type":"structure","required":["OpenIDConnectProviderArn"],"members":{"OpenIDConnectProviderArn":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListOpenIDConnectProviderTagsResult","type":"structure","required":["Tags"],"members":{"Tags":{"shape":"Sv"},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListOpenIDConnectProviders":{"input":{"type":"structure","members":{}},"output":{"resultWrapper":"ListOpenIDConnectProvidersResult","type":"structure","members":{"OpenIDConnectProviderList":{"type":"list","member":{"type":"structure","members":{"Arn":{}}}}}}},"ListPolicies":{"input":{"type":"structure","members":{"Scope":{},"OnlyAttached":{"type":"boolean"},"PathPrefix":{},"PolicyUsageFilter":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListPoliciesResult","type":"structure","members":{"Policies":{"type":"list","member":{"shape":"S1p"}},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListPoliciesGrantingServiceAccess":{"input":{"type":"structure","required":["Arn","ServiceNamespaces"],"members":{"Marker":{},"Arn":{},"ServiceNamespaces":{"type":"list","member":{}}}},"output":{"resultWrapper":"ListPoliciesGrantingServiceAccessResult","type":"structure","required":["PoliciesGrantingServiceAccess"],"members":{"PoliciesGrantingServiceAccess":{"type":"list","member":{"type":"structure","members":{"ServiceNamespace":{},"Policies":{"type":"list","member":{"type":"structure","required":["PolicyName","PolicyType"],"members":{"PolicyName":{},"PolicyType":{},"PolicyArn":{},"EntityType":{},"EntityName":{}}}}}}},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListPolicyTags":{"input":{"type":"structure","required":["PolicyArn"],"members":{"PolicyArn":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListPolicyTagsResult","type":"structure","required":["Tags"],"members":{"Tags":{"shape":"Sv"},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListPolicyVersions":{"input":{"type":"structure","required":["PolicyArn"],"members":{"PolicyArn":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListPolicyVersionsResult","type":"structure","members":{"Versions":{"shape":"S4f"},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListRolePolicies":{"input":{"type":"structure","required":["RoleName"],"members":{"RoleName":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListRolePoliciesResult","type":"structure","required":["PolicyNames"],"members":{"PolicyNames":{"shape":"S7k"},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListRoleTags":{"input":{"type":"structure","required":["RoleName"],"members":{"RoleName":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListRoleTagsResult","type":"structure","required":["Tags"],"members":{"Tags":{"shape":"Sv"},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListRoles":{"input":{"type":"structure","members":{"PathPrefix":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListRolesResult","type":"structure","required":["Roles"],"members":{"Roles":{"shape":"S11"},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListSAMLProviderTags":{"input":{"type":"structure","required":["SAMLProviderArn"],"members":{"SAMLProviderArn":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListSAMLProviderTagsResult","type":"structure","required":["Tags"],"members":{"Tags":{"shape":"Sv"},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListSAMLProviders":{"input":{"type":"structure","members":{}},"output":{"resultWrapper":"ListSAMLProvidersResult","type":"structure","members":{"SAMLProviderList":{"type":"list","member":{"type":"structure","members":{"Arn":{},"ValidUntil":{"type":"timestamp"},"CreateDate":{"type":"timestamp"}}}}}}},"ListSSHPublicKeys":{"input":{"type":"structure","members":{"UserName":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListSSHPublicKeysResult","type":"structure","members":{"SSHPublicKeys":{"type":"list","member":{"type":"structure","required":["UserName","SSHPublicKeyId","Status","UploadDate"],"members":{"UserName":{},"SSHPublicKeyId":{},"Status":{},"UploadDate":{"type":"timestamp"}}}},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListServerCertificateTags":{"input":{"type":"structure","required":["ServerCertificateName"],"members":{"ServerCertificateName":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListServerCertificateTagsResult","type":"structure","required":["Tags"],"members":{"Tags":{"shape":"Sv"},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListServerCertificates":{"input":{"type":"structure","members":{"PathPrefix":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListServerCertificatesResult","type":"structure","required":["ServerCertificateMetadataList"],"members":{"ServerCertificateMetadataList":{"type":"list","member":{"shape":"S64"}},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListServiceSpecificCredentials":{"input":{"type":"structure","members":{"UserName":{},"ServiceName":{}}},"output":{"resultWrapper":"ListServiceSpecificCredentialsResult","type":"structure","members":{"ServiceSpecificCredentials":{"type":"list","member":{"type":"structure","required":["UserName","Status","ServiceUserName","CreateDate","ServiceSpecificCredentialId","ServiceName"],"members":{"UserName":{},"Status":{},"ServiceUserName":{},"CreateDate":{"type":"timestamp"},"ServiceSpecificCredentialId":{},"ServiceName":{}}}}}}},"ListSigningCertificates":{"input":{"type":"structure","members":{"UserName":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListSigningCertificatesResult","type":"structure","required":["Certificates"],"members":{"Certificates":{"type":"list","member":{"shape":"S9i"}},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListUserPolicies":{"input":{"type":"structure","required":["UserName"],"members":{"UserName":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListUserPoliciesResult","type":"structure","required":["PolicyNames"],"members":{"PolicyNames":{"shape":"S7k"},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListUserTags":{"input":{"type":"structure","required":["UserName"],"members":{"UserName":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListUserTagsResult","type":"structure","required":["Tags"],"members":{"Tags":{"shape":"Sv"},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListUsers":{"input":{"type":"structure","members":{"PathPrefix":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListUsersResult","type":"structure","required":["Users"],"members":{"Users":{"shape":"S52"},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"ListVirtualMFADevices":{"input":{"type":"structure","members":{"AssignmentStatus":{},"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListVirtualMFADevicesResult","type":"structure","required":["VirtualMFADevices"],"members":{"VirtualMFADevices":{"type":"list","member":{"shape":"S2h"}},"IsTruncated":{"type":"boolean"},"Marker":{}}}},"PutGroupPolicy":{"input":{"type":"structure","required":["GroupName","PolicyName","PolicyDocument"],"members":{"GroupName":{},"PolicyName":{},"PolicyDocument":{}}}},"PutRolePermissionsBoundary":{"input":{"type":"structure","required":["RoleName","PermissionsBoundary"],"members":{"RoleName":{},"PermissionsBoundary":{}}}},"PutRolePolicy":{"input":{"type":"structure","required":["RoleName","PolicyName","PolicyDocument"],"members":{"RoleName":{},"PolicyName":{},"PolicyDocument":{}}}},"PutUserPermissionsBoundary":{"input":{"type":"structure","required":["UserName","PermissionsBoundary"],"members":{"UserName":{},"PermissionsBoundary":{}}}},"PutUserPolicy":{"input":{"type":"structure","required":["UserName","PolicyName","PolicyDocument"],"members":{"UserName":{},"PolicyName":{},"PolicyDocument":{}}}},"RemoveClientIDFromOpenIDConnectProvider":{"input":{"type":"structure","required":["OpenIDConnectProviderArn","ClientID"],"members":{"OpenIDConnectProviderArn":{},"ClientID":{}}}},"RemoveRoleFromInstanceProfile":{"input":{"type":"structure","required":["InstanceProfileName","RoleName"],"members":{"InstanceProfileName":{},"RoleName":{}}}},"RemoveUserFromGroup":{"input":{"type":"structure","required":["GroupName","UserName"],"members":{"GroupName":{},"UserName":{}}}},"ResetServiceSpecificCredential":{"input":{"type":"structure","required":["ServiceSpecificCredentialId"],"members":{"UserName":{},"ServiceSpecificCredentialId":{}}},"output":{"resultWrapper":"ResetServiceSpecificCredentialResult","type":"structure","members":{"ServiceSpecificCredential":{"shape":"S27"}}}},"ResyncMFADevice":{"input":{"type":"structure","required":["UserName","SerialNumber","AuthenticationCode1","AuthenticationCode2"],"members":{"UserName":{},"SerialNumber":{},"AuthenticationCode1":{},"AuthenticationCode2":{}}}},"SetDefaultPolicyVersion":{"input":{"type":"structure","required":["PolicyArn","VersionId"],"members":{"PolicyArn":{},"VersionId":{}}}},"SetSecurityTokenServicePreferences":{"input":{"type":"structure","required":["GlobalEndpointTokenVersion"],"members":{"GlobalEndpointTokenVersion":{}}}},"SimulateCustomPolicy":{"input":{"type":"structure","required":["PolicyInputList","ActionNames"],"members":{"PolicyInputList":{"shape":"S4s"},"PermissionsBoundaryPolicyInputList":{"shape":"S4s"},"ActionNames":{"shape":"Sa8"},"ResourceArns":{"shape":"Saa"},"ResourcePolicy":{},"ResourceOwner":{},"CallerArn":{},"ContextEntries":{"shape":"Sac"},"ResourceHandlingOption":{},"MaxItems":{"type":"integer"},"Marker":{}}},"output":{"shape":"Sai","resultWrapper":"SimulateCustomPolicyResult"}},"SimulatePrincipalPolicy":{"input":{"type":"structure","required":["PolicySourceArn","ActionNames"],"members":{"PolicySourceArn":{},"PolicyInputList":{"shape":"S4s"},"PermissionsBoundaryPolicyInputList":{"shape":"S4s"},"ActionNames":{"shape":"Sa8"},"ResourceArns":{"shape":"Saa"},"ResourcePolicy":{},"ResourceOwner":{},"CallerArn":{},"ContextEntries":{"shape":"Sac"},"ResourceHandlingOption":{},"MaxItems":{"type":"integer"},"Marker":{}}},"output":{"shape":"Sai","resultWrapper":"SimulatePrincipalPolicyResult"}},"TagInstanceProfile":{"input":{"type":"structure","required":["InstanceProfileName","Tags"],"members":{"InstanceProfileName":{},"Tags":{"shape":"Sv"}}}},"TagMFADevice":{"input":{"type":"structure","required":["SerialNumber","Tags"],"members":{"SerialNumber":{},"Tags":{"shape":"Sv"}}}},"TagOpenIDConnectProvider":{"input":{"type":"structure","required":["OpenIDConnectProviderArn","Tags"],"members":{"OpenIDConnectProviderArn":{},"Tags":{"shape":"Sv"}}}},"TagPolicy":{"input":{"type":"structure","required":["PolicyArn","Tags"],"members":{"PolicyArn":{},"Tags":{"shape":"Sv"}}}},"TagRole":{"input":{"type":"structure","required":["RoleName","Tags"],"members":{"RoleName":{},"Tags":{"shape":"Sv"}}}},"TagSAMLProvider":{"input":{"type":"structure","required":["SAMLProviderArn","Tags"],"members":{"SAMLProviderArn":{},"Tags":{"shape":"Sv"}}}},"TagServerCertificate":{"input":{"type":"structure","required":["ServerCertificateName","Tags"],"members":{"ServerCertificateName":{},"Tags":{"shape":"Sv"}}}},"TagUser":{"input":{"type":"structure","required":["UserName","Tags"],"members":{"UserName":{},"Tags":{"shape":"Sv"}}}},"UntagInstanceProfile":{"input":{"type":"structure","required":["InstanceProfileName","TagKeys"],"members":{"InstanceProfileName":{},"TagKeys":{"shape":"Sb9"}}}},"UntagMFADevice":{"input":{"type":"structure","required":["SerialNumber","TagKeys"],"members":{"SerialNumber":{},"TagKeys":{"shape":"Sb9"}}}},"UntagOpenIDConnectProvider":{"input":{"type":"structure","required":["OpenIDConnectProviderArn","TagKeys"],"members":{"OpenIDConnectProviderArn":{},"TagKeys":{"shape":"Sb9"}}}},"UntagPolicy":{"input":{"type":"structure","required":["PolicyArn","TagKeys"],"members":{"PolicyArn":{},"TagKeys":{"shape":"Sb9"}}}},"UntagRole":{"input":{"type":"structure","required":["RoleName","TagKeys"],"members":{"RoleName":{},"TagKeys":{"shape":"Sb9"}}}},"UntagSAMLProvider":{"input":{"type":"structure","required":["SAMLProviderArn","TagKeys"],"members":{"SAMLProviderArn":{},"TagKeys":{"shape":"Sb9"}}}},"UntagServerCertificate":{"input":{"type":"structure","required":["ServerCertificateName","TagKeys"],"members":{"ServerCertificateName":{},"TagKeys":{"shape":"Sb9"}}}},"UntagUser":{"input":{"type":"structure","required":["UserName","TagKeys"],"members":{"UserName":{},"TagKeys":{"shape":"Sb9"}}}},"UpdateAccessKey":{"input":{"type":"structure","required":["AccessKeyId","Status"],"members":{"UserName":{},"AccessKeyId":{},"Status":{}}}},"UpdateAccountPasswordPolicy":{"input":{"type":"structure","members":{"MinimumPasswordLength":{"type":"integer"},"RequireSymbols":{"type":"boolean"},"RequireNumbers":{"type":"boolean"},"RequireUppercaseCharacters":{"type":"boolean"},"RequireLowercaseCharacters":{"type":"boolean"},"AllowUsersToChangePassword":{"type":"boolean"},"MaxPasswordAge":{"type":"integer"},"PasswordReusePrevention":{"type":"integer"},"HardExpiry":{"type":"boolean"}}}},"UpdateAssumeRolePolicy":{"input":{"type":"structure","required":["RoleName","PolicyDocument"],"members":{"RoleName":{},"PolicyDocument":{}}}},"UpdateGroup":{"input":{"type":"structure","required":["GroupName"],"members":{"GroupName":{},"NewPath":{},"NewGroupName":{}}}},"UpdateLoginProfile":{"input":{"type":"structure","required":["UserName"],"members":{"UserName":{},"Password":{"shape":"Sf"},"PasswordResetRequired":{"type":"boolean"}}}},"UpdateOpenIDConnectProviderThumbprint":{"input":{"type":"structure","required":["OpenIDConnectProviderArn","ThumbprintList"],"members":{"OpenIDConnectProviderArn":{},"ThumbprintList":{"shape":"S1h"}}}},"UpdateRole":{"input":{"type":"structure","required":["RoleName"],"members":{"RoleName":{},"Description":{},"MaxSessionDuration":{"type":"integer"}}},"output":{"resultWrapper":"UpdateRoleResult","type":"structure","members":{}}},"UpdateRoleDescription":{"input":{"type":"structure","required":["RoleName","Description"],"members":{"RoleName":{},"Description":{}}},"output":{"resultWrapper":"UpdateRoleDescriptionResult","type":"structure","members":{"Role":{"shape":"S12"}}}},"UpdateSAMLProvider":{"input":{"type":"structure","required":["SAMLMetadataDocument","SAMLProviderArn"],"members":{"SAMLMetadataDocument":{},"SAMLProviderArn":{}}},"output":{"resultWrapper":"UpdateSAMLProviderResult","type":"structure","members":{"SAMLProviderArn":{}}}},"UpdateSSHPublicKey":{"input":{"type":"structure","required":["UserName","SSHPublicKeyId","Status"],"members":{"UserName":{},"SSHPublicKeyId":{},"Status":{}}}},"UpdateServerCertificate":{"input":{"type":"structure","required":["ServerCertificateName"],"members":{"ServerCertificateName":{},"NewPath":{},"NewServerCertificateName":{}}}},"UpdateServiceSpecificCredential":{"input":{"type":"structure","required":["ServiceSpecificCredentialId","Status"],"members":{"UserName":{},"ServiceSpecificCredentialId":{},"Status":{}}}},"UpdateSigningCertificate":{"input":{"type":"structure","required":["CertificateId","Status"],"members":{"UserName":{},"CertificateId":{},"Status":{}}}},"UpdateUser":{"input":{"type":"structure","required":["UserName"],"members":{"UserName":{},"NewPath":{},"NewUserName":{}}}},"UploadSSHPublicKey":{"input":{"type":"structure","required":["UserName","SSHPublicKeyBody"],"members":{"UserName":{},"SSHPublicKeyBody":{}}},"output":{"resultWrapper":"UploadSSHPublicKeyResult","type":"structure","members":{"SSHPublicKey":{"shape":"S5y"}}}},"UploadServerCertificate":{"input":{"type":"structure","required":["ServerCertificateName","CertificateBody","PrivateKey"],"members":{"Path":{},"ServerCertificateName":{},"CertificateBody":{},"PrivateKey":{"type":"string","sensitive":true},"CertificateChain":{},"Tags":{"shape":"Sv"}}},"output":{"resultWrapper":"UploadServerCertificateResult","type":"structure","members":{"ServerCertificateMetadata":{"shape":"S64"},"Tags":{"shape":"Sv"}}}},"UploadSigningCertificate":{"input":{"type":"structure","required":["CertificateBody"],"members":{"UserName":{},"CertificateBody":{}}},"output":{"resultWrapper":"UploadSigningCertificateResult","type":"structure","required":["Certificate"],"members":{"Certificate":{"shape":"S9i"}}}}},"shapes":{"Sf":{"type":"string","sensitive":true},"Ss":{"type":"structure","required":["Path","GroupName","GroupId","Arn","CreateDate"],"members":{"Path":{},"GroupName":{},"GroupId":{},"Arn":{},"CreateDate":{"type":"timestamp"}}},"Sv":{"type":"list","member":{"type":"structure","required":["Key","Value"],"members":{"Key":{},"Value":{}}}},"S10":{"type":"structure","required":["Path","InstanceProfileName","InstanceProfileId","Arn","CreateDate","Roles"],"members":{"Path":{},"InstanceProfileName":{},"InstanceProfileId":{},"Arn":{},"CreateDate":{"type":"timestamp"},"Roles":{"shape":"S11"},"Tags":{"shape":"Sv"}}},"S11":{"type":"list","member":{"shape":"S12"}},"S12":{"type":"structure","required":["Path","RoleName","RoleId","Arn","CreateDate"],"members":{"Path":{},"RoleName":{},"RoleId":{},"Arn":{},"CreateDate":{"type":"timestamp"},"AssumeRolePolicyDocument":{},"Description":{},"MaxSessionDuration":{"type":"integer"},"PermissionsBoundary":{"shape":"S16"},"Tags":{"shape":"Sv"},"RoleLastUsed":{"shape":"S18"}}},"S16":{"type":"structure","members":{"PermissionsBoundaryType":{},"PermissionsBoundaryArn":{}}},"S18":{"type":"structure","members":{"LastUsedDate":{"type":"timestamp"},"Region":{}}},"S1d":{"type":"structure","required":["UserName","CreateDate"],"members":{"UserName":{},"CreateDate":{"type":"timestamp"},"PasswordResetRequired":{"type":"boolean"}}},"S1g":{"type":"list","member":{}},"S1h":{"type":"list","member":{}},"S1p":{"type":"structure","members":{"PolicyName":{},"PolicyId":{},"Arn":{},"Path":{},"DefaultVersionId":{},"AttachmentCount":{"type":"integer"},"PermissionsBoundaryUsageCount":{"type":"integer"},"IsAttachable":{"type":"boolean"},"Description":{},"CreateDate":{"type":"timestamp"},"UpdateDate":{"type":"timestamp"},"Tags":{"shape":"Sv"}}},"S1u":{"type":"structure","members":{"Document":{},"VersionId":{},"IsDefaultVersion":{"type":"boolean"},"CreateDate":{"type":"timestamp"}}},"S27":{"type":"structure","required":["CreateDate","ServiceName","ServiceUserName","ServicePassword","ServiceSpecificCredentialId","UserName","Status"],"members":{"CreateDate":{"type":"timestamp"},"ServiceName":{},"ServiceUserName":{},"ServicePassword":{"type":"string","sensitive":true},"ServiceSpecificCredentialId":{},"UserName":{},"Status":{}}},"S2d":{"type":"structure","required":["Path","UserName","UserId","Arn","CreateDate"],"members":{"Path":{},"UserName":{},"UserId":{},"Arn":{},"CreateDate":{"type":"timestamp"},"PasswordLastUsed":{"type":"timestamp"},"PermissionsBoundary":{"shape":"S16"},"Tags":{"shape":"Sv"}}},"S2h":{"type":"structure","required":["SerialNumber"],"members":{"SerialNumber":{},"Base32StringSeed":{"shape":"S2j"},"QRCodePNG":{"shape":"S2j"},"User":{"shape":"S2d"},"EnableDate":{"type":"timestamp"},"Tags":{"shape":"Sv"}}},"S2j":{"type":"blob","sensitive":true},"S43":{"type":"list","member":{"type":"structure","members":{"PolicyName":{},"PolicyDocument":{}}}},"S46":{"type":"list","member":{"type":"structure","members":{"PolicyName":{},"PolicyArn":{}}}},"S4c":{"type":"list","member":{"shape":"S10"}},"S4f":{"type":"list","member":{"shape":"S1u"}},"S4s":{"type":"list","member":{}},"S4t":{"type":"structure","members":{"ContextKeyNames":{"shape":"S4u"}}},"S4u":{"type":"list","member":{}},"S52":{"type":"list","member":{"shape":"S2d"}},"S5k":{"type":"structure","required":["Message","Code"],"members":{"Message":{},"Code":{}}},"S5y":{"type":"structure","required":["UserName","SSHPublicKeyId","Fingerprint","SSHPublicKeyBody","Status"],"members":{"UserName":{},"SSHPublicKeyId":{},"Fingerprint":{},"SSHPublicKeyBody":{},"Status":{},"UploadDate":{"type":"timestamp"}}},"S64":{"type":"structure","required":["Path","ServerCertificateName","ServerCertificateId","Arn"],"members":{"Path":{},"ServerCertificateName":{},"ServerCertificateId":{},"Arn":{},"UploadDate":{"type":"timestamp"},"Expiration":{"type":"timestamp"}}},"S7k":{"type":"list","member":{}},"S7o":{"type":"list","member":{"shape":"Ss"}},"S9i":{"type":"structure","required":["UserName","CertificateId","CertificateBody","Status"],"members":{"UserName":{},"CertificateId":{},"CertificateBody":{},"Status":{},"UploadDate":{"type":"timestamp"}}},"Sa8":{"type":"list","member":{}},"Saa":{"type":"list","member":{}},"Sac":{"type":"list","member":{"type":"structure","members":{"ContextKeyName":{},"ContextKeyValues":{"type":"list","member":{}},"ContextKeyType":{}}}},"Sai":{"type":"structure","members":{"EvaluationResults":{"type":"list","member":{"type":"structure","required":["EvalActionName","EvalDecision"],"members":{"EvalActionName":{},"EvalResourceName":{},"EvalDecision":{},"MatchedStatements":{"shape":"Sam"},"MissingContextValues":{"shape":"S4u"},"OrganizationsDecisionDetail":{"type":"structure","members":{"AllowedByOrganizations":{"type":"boolean"}}},"PermissionsBoundaryDecisionDetail":{"shape":"Sau"},"EvalDecisionDetails":{"shape":"Sav"},"ResourceSpecificResults":{"type":"list","member":{"type":"structure","required":["EvalResourceName","EvalResourceDecision"],"members":{"EvalResourceName":{},"EvalResourceDecision":{},"MatchedStatements":{"shape":"Sam"},"MissingContextValues":{"shape":"S4u"},"EvalDecisionDetails":{"shape":"Sav"},"PermissionsBoundaryDecisionDetail":{"shape":"Sau"}}}}}}},"IsTruncated":{"type":"boolean"},"Marker":{}}},"Sam":{"type":"list","member":{"type":"structure","members":{"SourcePolicyId":{},"SourcePolicyType":{},"StartPosition":{"shape":"Saq"},"EndPosition":{"shape":"Saq"}}}},"Saq":{"type":"structure","members":{"Line":{"type":"integer"},"Column":{"type":"integer"}}},"Sau":{"type":"structure","members":{"AllowedByPermissionsBoundary":{"type":"boolean"}}},"Sav":{"type":"map","key":{},"value":{}},"Sb9":{"type":"list","member":{}}}}; /***/ }), @@ -4064,25 +5817,66 @@ module.exports = {"version":"2.0","metadata":{"apiVersion":"2010-05-08","endpoin /***/ }), -/***/ 382: -/***/ (function(__unusedmodule, __unusedexports, __webpack_require__) { +/***/ 357: +/***/ (function(module) { -var AWS = __webpack_require__(395); +module.exports = require("assert"); -AWS.util.update(AWS.CognitoIdentity.prototype, { - getOpenIdToken: function getOpenIdToken(params, callback) { - return this.makeUnauthenticatedRequest('getOpenIdToken', params, callback); - }, +/***/ }), - getId: function getId(params, callback) { - return this.makeUnauthenticatedRequest('getId', params, callback); - }, +/***/ 384: +/***/ (function(__unusedmodule, exports, __webpack_require__) { - getCredentialsForIdentity: function getCredentialsForIdentity(params, callback) { - return this.makeUnauthenticatedRequest('getCredentialsForIdentity', params, callback); - } +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _v = _interopRequireDefault(__webpack_require__(212)); + +var _sha = _interopRequireDefault(__webpack_require__(498)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +const v5 = (0, _v.default)('v5', 0x50, _sha.default); +var _default = v5; +exports.default = _default; + +/***/ }), + +/***/ 390: +/***/ (function(__unusedmodule, exports) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true }); +exports.default = void 0; + +/** + * Convert array of 16 byte values to UUID string format of the form: + * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX + */ +var byteToHex = []; + +for (var i = 0; i < 256; ++i) { + byteToHex[i] = (i + 0x100).toString(16).substr(1); +} + +function bytesToUuid(buf, offset) { + var i = offset || 0; + var bth = byteToHex; // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4 + return [bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]]].join(''); +} + +var _default = bytesToUuid; +exports.default = _default; /***/ }), @@ -4111,7 +5905,7 @@ AWS.util.update(AWS, { /** * @constant */ - VERSION: '2.709.0', + VERSION: '2.1246.0', /** * @api private @@ -4254,10 +6048,18 @@ module.exports = { /***/ }), -/***/ 413: +/***/ 407: /***/ (function(module) { -module.exports = require("stream"); +module.exports = require("buffer"); + +/***/ }), + +/***/ 413: +/***/ (function(module, __unusedexports, __webpack_require__) { + +module.exports = __webpack_require__(141); + /***/ }), @@ -4313,62 +6115,674 @@ module.exports = require("crypto"); this[key] = value; } } - - XMLWriterBase.prototype.set = function(options) { - var key, ref, value; - options || (options = {}); - if ("pretty" in options) { - this.pretty = options.pretty; - } - if ("allowEmpty" in options) { - this.allowEmpty = options.allowEmpty; - } - if (this.pretty) { - this.indent = "indent" in options ? options.indent : ' '; - this.newline = "newline" in options ? options.newline : '\n'; - this.offset = "offset" in options ? options.offset : 0; - this.dontprettytextnodes = "dontprettytextnodes" in options ? options.dontprettytextnodes : 0; - } else { - this.indent = ''; - this.newline = ''; - this.offset = 0; - this.dontprettytextnodes = 0; - } - this.spacebeforeslash = "spacebeforeslash" in options ? options.spacebeforeslash : ''; - if (this.spacebeforeslash === true) { - this.spacebeforeslash = ' '; - } - this.newlinedefault = this.newline; - this.prettydefault = this.pretty; - ref = options.writer || {}; - for (key in ref) { - if (!hasProp.call(ref, key)) continue; - value = ref[key]; - this[key] = value; - } - return this; - }; - - XMLWriterBase.prototype.space = function(level) { - var indent; - if (this.pretty) { - indent = (level || 0) + this.offset + 1; - if (indent > 0) { - return new Array(indent).join(this.indent); - } else { - return ''; + + XMLWriterBase.prototype.set = function(options) { + var key, ref, value; + options || (options = {}); + if ("pretty" in options) { + this.pretty = options.pretty; + } + if ("allowEmpty" in options) { + this.allowEmpty = options.allowEmpty; + } + if (this.pretty) { + this.indent = "indent" in options ? options.indent : ' '; + this.newline = "newline" in options ? options.newline : '\n'; + this.offset = "offset" in options ? options.offset : 0; + this.dontprettytextnodes = "dontprettytextnodes" in options ? options.dontprettytextnodes : 0; + } else { + this.indent = ''; + this.newline = ''; + this.offset = 0; + this.dontprettytextnodes = 0; + } + this.spacebeforeslash = "spacebeforeslash" in options ? options.spacebeforeslash : ''; + if (this.spacebeforeslash === true) { + this.spacebeforeslash = ' '; + } + this.newlinedefault = this.newline; + this.prettydefault = this.pretty; + ref = options.writer || {}; + for (key in ref) { + if (!hasProp.call(ref, key)) continue; + value = ref[key]; + this[key] = value; + } + return this; + }; + + XMLWriterBase.prototype.space = function(level) { + var indent; + if (this.pretty) { + indent = (level || 0) + this.offset + 1; + if (indent > 0) { + return new Array(indent).join(this.indent); + } else { + return ''; + } + } else { + return ''; + } + }; + + return XMLWriterBase; + + })(); + +}).call(this); + + +/***/ }), + +/***/ 425: +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + +/* eslint-disable @typescript-eslint/no-explicit-any */ +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.HttpClient = exports.isHttps = exports.HttpClientResponse = exports.HttpClientError = exports.getProxyUrl = exports.MediaTypes = exports.Headers = exports.HttpCodes = void 0; +const http = __importStar(__webpack_require__(605)); +const https = __importStar(__webpack_require__(211)); +const pm = __importStar(__webpack_require__(177)); +const tunnel = __importStar(__webpack_require__(413)); +var HttpCodes; +(function (HttpCodes) { + HttpCodes[HttpCodes["OK"] = 200] = "OK"; + HttpCodes[HttpCodes["MultipleChoices"] = 300] = "MultipleChoices"; + HttpCodes[HttpCodes["MovedPermanently"] = 301] = "MovedPermanently"; + HttpCodes[HttpCodes["ResourceMoved"] = 302] = "ResourceMoved"; + HttpCodes[HttpCodes["SeeOther"] = 303] = "SeeOther"; + HttpCodes[HttpCodes["NotModified"] = 304] = "NotModified"; + HttpCodes[HttpCodes["UseProxy"] = 305] = "UseProxy"; + HttpCodes[HttpCodes["SwitchProxy"] = 306] = "SwitchProxy"; + HttpCodes[HttpCodes["TemporaryRedirect"] = 307] = "TemporaryRedirect"; + HttpCodes[HttpCodes["PermanentRedirect"] = 308] = "PermanentRedirect"; + HttpCodes[HttpCodes["BadRequest"] = 400] = "BadRequest"; + HttpCodes[HttpCodes["Unauthorized"] = 401] = "Unauthorized"; + HttpCodes[HttpCodes["PaymentRequired"] = 402] = "PaymentRequired"; + HttpCodes[HttpCodes["Forbidden"] = 403] = "Forbidden"; + HttpCodes[HttpCodes["NotFound"] = 404] = "NotFound"; + HttpCodes[HttpCodes["MethodNotAllowed"] = 405] = "MethodNotAllowed"; + HttpCodes[HttpCodes["NotAcceptable"] = 406] = "NotAcceptable"; + HttpCodes[HttpCodes["ProxyAuthenticationRequired"] = 407] = "ProxyAuthenticationRequired"; + HttpCodes[HttpCodes["RequestTimeout"] = 408] = "RequestTimeout"; + HttpCodes[HttpCodes["Conflict"] = 409] = "Conflict"; + HttpCodes[HttpCodes["Gone"] = 410] = "Gone"; + HttpCodes[HttpCodes["TooManyRequests"] = 429] = "TooManyRequests"; + HttpCodes[HttpCodes["InternalServerError"] = 500] = "InternalServerError"; + HttpCodes[HttpCodes["NotImplemented"] = 501] = "NotImplemented"; + HttpCodes[HttpCodes["BadGateway"] = 502] = "BadGateway"; + HttpCodes[HttpCodes["ServiceUnavailable"] = 503] = "ServiceUnavailable"; + HttpCodes[HttpCodes["GatewayTimeout"] = 504] = "GatewayTimeout"; +})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {})); +var Headers; +(function (Headers) { + Headers["Accept"] = "accept"; + Headers["ContentType"] = "content-type"; +})(Headers = exports.Headers || (exports.Headers = {})); +var MediaTypes; +(function (MediaTypes) { + MediaTypes["ApplicationJson"] = "application/json"; +})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {})); +/** + * Returns the proxy URL, depending upon the supplied url and proxy environment variables. + * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com + */ +function getProxyUrl(serverUrl) { + const proxyUrl = pm.getProxyUrl(new URL(serverUrl)); + return proxyUrl ? proxyUrl.href : ''; +} +exports.getProxyUrl = getProxyUrl; +const HttpRedirectCodes = [ + HttpCodes.MovedPermanently, + HttpCodes.ResourceMoved, + HttpCodes.SeeOther, + HttpCodes.TemporaryRedirect, + HttpCodes.PermanentRedirect +]; +const HttpResponseRetryCodes = [ + HttpCodes.BadGateway, + HttpCodes.ServiceUnavailable, + HttpCodes.GatewayTimeout +]; +const RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD']; +const ExponentialBackoffCeiling = 10; +const ExponentialBackoffTimeSlice = 5; +class HttpClientError extends Error { + constructor(message, statusCode) { + super(message); + this.name = 'HttpClientError'; + this.statusCode = statusCode; + Object.setPrototypeOf(this, HttpClientError.prototype); + } +} +exports.HttpClientError = HttpClientError; +class HttpClientResponse { + constructor(message) { + this.message = message; + } + readBody() { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () { + let output = Buffer.alloc(0); + this.message.on('data', (chunk) => { + output = Buffer.concat([output, chunk]); + }); + this.message.on('end', () => { + resolve(output.toString()); + }); + })); + }); + } +} +exports.HttpClientResponse = HttpClientResponse; +function isHttps(requestUrl) { + const parsedUrl = new URL(requestUrl); + return parsedUrl.protocol === 'https:'; +} +exports.isHttps = isHttps; +class HttpClient { + constructor(userAgent, handlers, requestOptions) { + this._ignoreSslError = false; + this._allowRedirects = true; + this._allowRedirectDowngrade = false; + this._maxRedirects = 50; + this._allowRetries = false; + this._maxRetries = 1; + this._keepAlive = false; + this._disposed = false; + this.userAgent = userAgent; + this.handlers = handlers || []; + this.requestOptions = requestOptions; + if (requestOptions) { + if (requestOptions.ignoreSslError != null) { + this._ignoreSslError = requestOptions.ignoreSslError; + } + this._socketTimeout = requestOptions.socketTimeout; + if (requestOptions.allowRedirects != null) { + this._allowRedirects = requestOptions.allowRedirects; + } + if (requestOptions.allowRedirectDowngrade != null) { + this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade; + } + if (requestOptions.maxRedirects != null) { + this._maxRedirects = Math.max(requestOptions.maxRedirects, 0); + } + if (requestOptions.keepAlive != null) { + this._keepAlive = requestOptions.keepAlive; + } + if (requestOptions.allowRetries != null) { + this._allowRetries = requestOptions.allowRetries; + } + if (requestOptions.maxRetries != null) { + this._maxRetries = requestOptions.maxRetries; + } + } + } + options(requestUrl, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request('OPTIONS', requestUrl, null, additionalHeaders || {}); + }); + } + get(requestUrl, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request('GET', requestUrl, null, additionalHeaders || {}); + }); + } + del(requestUrl, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request('DELETE', requestUrl, null, additionalHeaders || {}); + }); + } + post(requestUrl, data, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request('POST', requestUrl, data, additionalHeaders || {}); + }); + } + patch(requestUrl, data, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request('PATCH', requestUrl, data, additionalHeaders || {}); + }); + } + put(requestUrl, data, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request('PUT', requestUrl, data, additionalHeaders || {}); + }); + } + head(requestUrl, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request('HEAD', requestUrl, null, additionalHeaders || {}); + }); + } + sendStream(verb, requestUrl, stream, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request(verb, requestUrl, stream, additionalHeaders); + }); + } + /** + * Gets a typed object from an endpoint + * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise + */ + getJson(requestUrl, additionalHeaders = {}) { + return __awaiter(this, void 0, void 0, function* () { + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + const res = yield this.get(requestUrl, additionalHeaders); + return this._processResponse(res, this.requestOptions); + }); + } + postJson(requestUrl, obj, additionalHeaders = {}) { + return __awaiter(this, void 0, void 0, function* () { + const data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + const res = yield this.post(requestUrl, data, additionalHeaders); + return this._processResponse(res, this.requestOptions); + }); + } + putJson(requestUrl, obj, additionalHeaders = {}) { + return __awaiter(this, void 0, void 0, function* () { + const data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + const res = yield this.put(requestUrl, data, additionalHeaders); + return this._processResponse(res, this.requestOptions); + }); + } + patchJson(requestUrl, obj, additionalHeaders = {}) { + return __awaiter(this, void 0, void 0, function* () { + const data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + const res = yield this.patch(requestUrl, data, additionalHeaders); + return this._processResponse(res, this.requestOptions); + }); + } + /** + * Makes a raw http request. + * All other methods such as get, post, patch, and request ultimately call this. + * Prefer get, del, post and patch + */ + request(verb, requestUrl, data, headers) { + return __awaiter(this, void 0, void 0, function* () { + if (this._disposed) { + throw new Error('Client has already been disposed.'); + } + const parsedUrl = new URL(requestUrl); + let info = this._prepareRequest(verb, parsedUrl, headers); + // Only perform retries on reads since writes may not be idempotent. + const maxTries = this._allowRetries && RetryableHttpVerbs.includes(verb) + ? this._maxRetries + 1 + : 1; + let numTries = 0; + let response; + do { + response = yield this.requestRaw(info, data); + // Check if it's an authentication challenge + if (response && + response.message && + response.message.statusCode === HttpCodes.Unauthorized) { + let authenticationHandler; + for (const handler of this.handlers) { + if (handler.canHandleAuthentication(response)) { + authenticationHandler = handler; + break; + } + } + if (authenticationHandler) { + return authenticationHandler.handleAuthentication(this, info, data); + } + else { + // We have received an unauthorized response but have no handlers to handle it. + // Let the response return to the caller. + return response; + } + } + let redirectsRemaining = this._maxRedirects; + while (response.message.statusCode && + HttpRedirectCodes.includes(response.message.statusCode) && + this._allowRedirects && + redirectsRemaining > 0) { + const redirectUrl = response.message.headers['location']; + if (!redirectUrl) { + // if there's no location to redirect to, we won't + break; + } + const parsedRedirectUrl = new URL(redirectUrl); + if (parsedUrl.protocol === 'https:' && + parsedUrl.protocol !== parsedRedirectUrl.protocol && + !this._allowRedirectDowngrade) { + throw new Error('Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.'); + } + // we need to finish reading the response before reassigning response + // which will leak the open socket. + yield response.readBody(); + // strip authorization header if redirected to a different hostname + if (parsedRedirectUrl.hostname !== parsedUrl.hostname) { + for (const header in headers) { + // header names are case insensitive + if (header.toLowerCase() === 'authorization') { + delete headers[header]; + } + } + } + // let's make the request with the new redirectUrl + info = this._prepareRequest(verb, parsedRedirectUrl, headers); + response = yield this.requestRaw(info, data); + redirectsRemaining--; + } + if (!response.message.statusCode || + !HttpResponseRetryCodes.includes(response.message.statusCode)) { + // If not a retry code, return immediately instead of retrying + return response; + } + numTries += 1; + if (numTries < maxTries) { + yield response.readBody(); + yield this._performExponentialBackoff(numTries); + } + } while (numTries < maxTries); + return response; + }); + } + /** + * Needs to be called if keepAlive is set to true in request options. + */ + dispose() { + if (this._agent) { + this._agent.destroy(); } - } else { - return ''; - } - }; - - return XMLWriterBase; - - })(); - -}).call(this); - + this._disposed = true; + } + /** + * Raw request. + * @param info + * @param data + */ + requestRaw(info, data) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => { + function callbackForResult(err, res) { + if (err) { + reject(err); + } + else if (!res) { + // If `err` is not passed, then `res` must be passed. + reject(new Error('Unknown error')); + } + else { + resolve(res); + } + } + this.requestRawWithCallback(info, data, callbackForResult); + }); + }); + } + /** + * Raw request with callback. + * @param info + * @param data + * @param onResult + */ + requestRawWithCallback(info, data, onResult) { + if (typeof data === 'string') { + if (!info.options.headers) { + info.options.headers = {}; + } + info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8'); + } + let callbackCalled = false; + function handleResult(err, res) { + if (!callbackCalled) { + callbackCalled = true; + onResult(err, res); + } + } + const req = info.httpModule.request(info.options, (msg) => { + const res = new HttpClientResponse(msg); + handleResult(undefined, res); + }); + let socket; + req.on('socket', sock => { + socket = sock; + }); + // If we ever get disconnected, we want the socket to timeout eventually + req.setTimeout(this._socketTimeout || 3 * 60000, () => { + if (socket) { + socket.end(); + } + handleResult(new Error(`Request timeout: ${info.options.path}`)); + }); + req.on('error', function (err) { + // err has statusCode property + // res should have headers + handleResult(err); + }); + if (data && typeof data === 'string') { + req.write(data, 'utf8'); + } + if (data && typeof data !== 'string') { + data.on('close', function () { + req.end(); + }); + data.pipe(req); + } + else { + req.end(); + } + } + /** + * Gets an http agent. This function is useful when you need an http agent that handles + * routing through a proxy server - depending upon the url and proxy environment variables. + * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com + */ + getAgent(serverUrl) { + const parsedUrl = new URL(serverUrl); + return this._getAgent(parsedUrl); + } + _prepareRequest(method, requestUrl, headers) { + const info = {}; + info.parsedUrl = requestUrl; + const usingSsl = info.parsedUrl.protocol === 'https:'; + info.httpModule = usingSsl ? https : http; + const defaultPort = usingSsl ? 443 : 80; + info.options = {}; + info.options.host = info.parsedUrl.hostname; + info.options.port = info.parsedUrl.port + ? parseInt(info.parsedUrl.port) + : defaultPort; + info.options.path = + (info.parsedUrl.pathname || '') + (info.parsedUrl.search || ''); + info.options.method = method; + info.options.headers = this._mergeHeaders(headers); + if (this.userAgent != null) { + info.options.headers['user-agent'] = this.userAgent; + } + info.options.agent = this._getAgent(info.parsedUrl); + // gives handlers an opportunity to participate + if (this.handlers) { + for (const handler of this.handlers) { + handler.prepareRequest(info.options); + } + } + return info; + } + _mergeHeaders(headers) { + if (this.requestOptions && this.requestOptions.headers) { + return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers || {})); + } + return lowercaseKeys(headers || {}); + } + _getExistingOrDefaultHeader(additionalHeaders, header, _default) { + let clientHeader; + if (this.requestOptions && this.requestOptions.headers) { + clientHeader = lowercaseKeys(this.requestOptions.headers)[header]; + } + return additionalHeaders[header] || clientHeader || _default; + } + _getAgent(parsedUrl) { + let agent; + const proxyUrl = pm.getProxyUrl(parsedUrl); + const useProxy = proxyUrl && proxyUrl.hostname; + if (this._keepAlive && useProxy) { + agent = this._proxyAgent; + } + if (this._keepAlive && !useProxy) { + agent = this._agent; + } + // if agent is already assigned use that agent. + if (agent) { + return agent; + } + const usingSsl = parsedUrl.protocol === 'https:'; + let maxSockets = 100; + if (this.requestOptions) { + maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets; + } + // This is `useProxy` again, but we need to check `proxyURl` directly for TypeScripts's flow analysis. + if (proxyUrl && proxyUrl.hostname) { + const agentOptions = { + maxSockets, + keepAlive: this._keepAlive, + proxy: Object.assign(Object.assign({}, ((proxyUrl.username || proxyUrl.password) && { + proxyAuth: `${proxyUrl.username}:${proxyUrl.password}` + })), { host: proxyUrl.hostname, port: proxyUrl.port }) + }; + let tunnelAgent; + const overHttps = proxyUrl.protocol === 'https:'; + if (usingSsl) { + tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp; + } + else { + tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp; + } + agent = tunnelAgent(agentOptions); + this._proxyAgent = agent; + } + // if reusing agent across request and tunneling agent isn't assigned create a new agent + if (this._keepAlive && !agent) { + const options = { keepAlive: this._keepAlive, maxSockets }; + agent = usingSsl ? new https.Agent(options) : new http.Agent(options); + this._agent = agent; + } + // if not using private agent and tunnel agent isn't setup then use global agent + if (!agent) { + agent = usingSsl ? https.globalAgent : http.globalAgent; + } + if (usingSsl && this._ignoreSslError) { + // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process + // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options + // we have to cast it to any and change it directly + agent.options = Object.assign(agent.options || {}, { + rejectUnauthorized: false + }); + } + return agent; + } + _performExponentialBackoff(retryNumber) { + return __awaiter(this, void 0, void 0, function* () { + retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber); + const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber); + return new Promise(resolve => setTimeout(() => resolve(), ms)); + }); + } + _processResponse(res, options) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + const statusCode = res.message.statusCode || 0; + const response = { + statusCode, + result: null, + headers: {} + }; + // not found leads to null obj returned + if (statusCode === HttpCodes.NotFound) { + resolve(response); + } + // get the result from the body + function dateTimeDeserializer(key, value) { + if (typeof value === 'string') { + const a = new Date(value); + if (!isNaN(a.valueOf())) { + return a; + } + } + return value; + } + let obj; + let contents; + try { + contents = yield res.readBody(); + if (contents && contents.length > 0) { + if (options && options.deserializeDates) { + obj = JSON.parse(contents, dateTimeDeserializer); + } + else { + obj = JSON.parse(contents); + } + response.result = obj; + } + response.headers = res.message.headers; + } + catch (err) { + // Invalid resource (contents not json); leaving result obj null + } + // note that 3xx redirects are handled by the http layer. + if (statusCode > 299) { + let msg; + // if exception/error in body, attempt to get better error + if (obj && obj.message) { + msg = obj.message; + } + else if (contents && contents.length > 0) { + // it may be the case that the exception is in the body message as string + msg = contents; + } + else { + msg = `Failed request: (${statusCode})`; + } + const err = new HttpClientError(msg, statusCode); + err.result = response.result; + reject(err); + } + else { + resolve(response); + } + })); + }); + } +} +exports.HttpClient = HttpClient; +const lowercaseKeys = (obj) => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {}); +//# sourceMappingURL=index.js.map /***/ }), @@ -5141,12 +7555,10 @@ AWS.Request = inherit({ var region = service.config.region; var customUserAgent = service.config.customUserAgent; - if (service.isGlobalEndpoint) { - if (service.signingRegion) { - region = service.signingRegion; - } else { - region = 'us-east-1'; - } + if (service.signingRegion) { + region = service.signingRegion; + } else if (service.isGlobalEndpoint) { + region = 'us-east-1'; } this.domain = domain && domain.active; @@ -5613,7 +8025,7 @@ AWS.Request.addPromisesToClass = function addPromisesToClass(PromiseDependency) if (resp.error) { reject(resp.error); } else { - // define $response property so that it is not enumberable + // define $response property so that it is not enumerable // this prevents circular reference errors when stringifying the JSON object resolve(Object.defineProperty( resp.data || {}, @@ -6003,12 +8415,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; Object.defineProperty(exports, "__esModule", { value: true }); -exports.getState = exports.saveState = exports.group = exports.endGroup = exports.startGroup = exports.info = exports.warning = exports.error = exports.debug = exports.isDebug = exports.setFailed = exports.setCommandEcho = exports.setOutput = exports.getBooleanInput = exports.getInput = exports.addPath = exports.setSecret = exports.exportVariable = exports.ExitCode = void 0; +exports.getIDToken = exports.getState = exports.saveState = exports.group = exports.endGroup = exports.startGroup = exports.info = exports.notice = exports.warning = exports.error = exports.debug = exports.isDebug = exports.setFailed = exports.setCommandEcho = exports.setOutput = exports.getBooleanInput = exports.getMultilineInput = exports.getInput = exports.addPath = exports.setSecret = exports.exportVariable = exports.ExitCode = void 0; const command_1 = __webpack_require__(431); const file_command_1 = __webpack_require__(102); const utils_1 = __webpack_require__(82); const os = __importStar(__webpack_require__(87)); const path = __importStar(__webpack_require__(622)); +const oidc_utils_1 = __webpack_require__(742); /** * The code to exit an action */ @@ -6037,13 +8450,9 @@ function exportVariable(name, val) { process.env[name] = convertedVal; const filePath = process.env['GITHUB_ENV'] || ''; if (filePath) { - const delimiter = '_GitHubActionsFileCommandDelimeter_'; - const commandValue = `${name}<<${delimiter}${os.EOL}${convertedVal}${os.EOL}${delimiter}`; - file_command_1.issueCommand('ENV', commandValue); - } - else { - command_1.issueCommand('set-env', { name }, convertedVal); + return file_command_1.issueFileCommand('ENV', file_command_1.prepareKeyValueMessage(name, val)); } + command_1.issueCommand('set-env', { name }, convertedVal); } exports.exportVariable = exportVariable; /** @@ -6061,7 +8470,7 @@ exports.setSecret = setSecret; function addPath(inputPath) { const filePath = process.env['GITHUB_PATH'] || ''; if (filePath) { - file_command_1.issueCommand('PATH', inputPath); + file_command_1.issueFileCommand('PATH', inputPath); } else { command_1.issueCommand('add-path', {}, inputPath); @@ -6089,6 +8498,24 @@ function getInput(name, options) { return val.trim(); } exports.getInput = getInput; +/** + * Gets the values of an multiline input. Each value is also trimmed. + * + * @param name name of the input to get + * @param options optional. See InputOptions. + * @returns string[] + * + */ +function getMultilineInput(name, options) { + const inputs = getInput(name, options) + .split('\n') + .filter(x => x !== ''); + if (options && options.trimWhitespace === false) { + return inputs; + } + return inputs.map(input => input.trim()); +} +exports.getMultilineInput = getMultilineInput; /** * Gets the input value of the boolean type in the YAML 1.2 "core schema" specification. * Support boolean input list: `true | True | TRUE | false | False | FALSE` . @@ -6119,8 +8546,12 @@ exports.getBooleanInput = getBooleanInput; */ // eslint-disable-next-line @typescript-eslint/no-explicit-any function setOutput(name, value) { + const filePath = process.env['GITHUB_OUTPUT'] || ''; + if (filePath) { + return file_command_1.issueFileCommand('OUTPUT', file_command_1.prepareKeyValueMessage(name, value)); + } process.stdout.write(os.EOL); - command_1.issueCommand('set-output', { name }, value); + command_1.issueCommand('set-output', { name }, utils_1.toCommandValue(value)); } exports.setOutput = setOutput; /** @@ -6166,19 +8597,30 @@ exports.debug = debug; /** * Adds an error issue * @param message error issue message. Errors will be converted to string via toString() + * @param properties optional properties to add to the annotation. */ -function error(message) { - command_1.issue('error', message instanceof Error ? message.toString() : message); +function error(message, properties = {}) { + command_1.issueCommand('error', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message); } exports.error = error; /** - * Adds an warning issue + * Adds a warning issue * @param message warning issue message. Errors will be converted to string via toString() + * @param properties optional properties to add to the annotation. */ -function warning(message) { - command_1.issue('warning', message instanceof Error ? message.toString() : message); +function warning(message, properties = {}) { + command_1.issueCommand('warning', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message); } exports.warning = warning; +/** + * Adds a notice issue + * @param message notice issue message. Errors will be converted to string via toString() + * @param properties optional properties to add to the annotation. + */ +function notice(message, properties = {}) { + command_1.issueCommand('notice', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message); +} +exports.notice = notice; /** * Writes info to log with console.log. * @param message info message @@ -6238,7 +8680,11 @@ exports.group = group; */ // eslint-disable-next-line @typescript-eslint/no-explicit-any function saveState(name, value) { - command_1.issueCommand('save-state', { name }, value); + const filePath = process.env['GITHUB_STATE'] || ''; + if (filePath) { + return file_command_1.issueFileCommand('STATE', file_command_1.prepareKeyValueMessage(name, value)); + } + command_1.issueCommand('save-state', { name }, utils_1.toCommandValue(value)); } exports.saveState = saveState; /** @@ -6251,6 +8697,29 @@ function getState(name) { return process.env[`STATE_${name}`] || ''; } exports.getState = getState; +function getIDToken(aud) { + return __awaiter(this, void 0, void 0, function* () { + return yield oidc_utils_1.OidcClient.getIDToken(aud); + }); +} +exports.getIDToken = getIDToken; +/** + * Summary exports + */ +var summary_1 = __webpack_require__(665); +Object.defineProperty(exports, "summary", { enumerable: true, get: function () { return summary_1.summary; } }); +/** + * @deprecated use core.summary + */ +var summary_2 = __webpack_require__(665); +Object.defineProperty(exports, "markdownSummary", { enumerable: true, get: function () { return summary_2.markdownSummary; } }); +/** + * Path exports + */ +var path_utils_1 = __webpack_require__(573); +Object.defineProperty(exports, "toPosixPath", { enumerable: true, get: function () { return path_utils_1.toPosixPath; } }); +Object.defineProperty(exports, "toWin32Path", { enumerable: true, get: function () { return path_utils_1.toWin32Path; } }); +Object.defineProperty(exports, "toPlatformPath", { enumerable: true, get: function () { return path_utils_1.toPlatformPath; } }); //# sourceMappingURL=core.js.map /***/ }), @@ -6545,6 +9014,36 @@ function applyNamespaces(xml, shape, isRoot) { module.exports = XmlBuilder; +/***/ }), + +/***/ 498: +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _crypto = _interopRequireDefault(__webpack_require__(417)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function sha1(bytes) { + if (Array.isArray(bytes)) { + bytes = Buffer.from(bytes); + } else if (typeof bytes === 'string') { + bytes = Buffer.from(bytes, 'utf8'); + } + + return _crypto.default.createHash('sha1').update(bytes).digest(); +} + +var _default = sha1; +exports.default = _default; + /***/ }), /***/ 503: @@ -6556,6 +9055,7 @@ var regionConfig = __webpack_require__(546); var inherit = AWS.util.inherit; var clientCount = 0; +var region_utils = __webpack_require__(171); /** * The service class representing an AWS service. @@ -6577,6 +9077,24 @@ AWS.Service = inherit({ throw AWS.util.error(new Error(), 'Service must be constructed with `new\' operator'); } + + if (config) { + if (config.region) { + var region = config.region; + if (region_utils.isFipsRegion(region)) { + config.region = region_utils.getRealRegion(region); + config.useFipsEndpoint = true; + } + if (region_utils.isGlobalRegion(region)) { + config.region = region_utils.getRealRegion(region); + } + } + if (typeof config.useDualstack === 'boolean' + && typeof config.useDualstackEndpoint !== 'boolean') { + config.useDualstackEndpoint = config.useDualstack; + } + } + var ServiceClass = this.loadServiceClass(config || {}); if (ServiceClass) { var originalConfig = AWS.util.copy(config); @@ -7006,6 +9524,14 @@ AWS.Service = inherit({ setupRequestListeners: function setupRequestListeners(request) { }, + /** + * Gets the signing name for a given request + * @api private + */ + getSigningName: function getSigningName() { + return this.api.signingName || this.api.endpointPrefix; + }, + /** * Gets the signer class for a given request * @api private @@ -7024,6 +9550,8 @@ AWS.Service = inherit({ version = this.config.signatureVersion; } else if (authtype === 'v4' || authtype === 'v4-unsigned-body') { version = 'v4'; + } else if (authtype === 'bearer') { + version = 'bearer'; } else { version = this.api.signatureVersion; } @@ -7377,6 +9905,37 @@ AWS.util.mixin(AWS.Service, AWS.SequentialExecutor); module.exports = AWS.Service; +/***/ }), + +/***/ 506: +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = rng; + +var _crypto = _interopRequireDefault(__webpack_require__(417)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +const rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate + +let poolPtr = rnds8Pool.length; + +function rng() { + if (poolPtr > rnds8Pool.length - 16) { + _crypto.default.randomFillSync(rnds8Pool); + + poolPtr = 0; + } + + return rnds8Pool.slice(poolPtr, poolPtr += 16); +} + /***/ }), /***/ 514: @@ -7456,6 +10015,21 @@ module.exports = AWS.Service; }).call(this); +/***/ }), + +/***/ 525: +/***/ (function(__unusedmodule, exports) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i; +exports.default = _default; + /***/ }), /***/ 526: @@ -7490,12 +10064,12 @@ const core = __importStar(__webpack_require__(470)); const fs = __importStar(__webpack_require__(747)); const codedeploy_1 = __importDefault(__webpack_require__(317)); const iam_1 = __importDefault(__webpack_require__(845)); -const sts_1 = __importDefault(__webpack_require__(733)); +const sts_1 = __importDefault(__webpack_require__(106)); async function run() { try { - const appName = core.getInput('application-name'); - const groupName = core.getInput('deployment-group-name'); - const appspecFile = core.getInput('appspec-file'); + const appName = core.getInput('application-name', { required: true }); + const groupName = core.getInput('deployment-group-name', { required: true }); + const appspecFile = core.getInput('appspec-file', { required: true }); core.debug(`Hello world! ${appName}, ${groupName}, ${appspecFile}`); const appspecJson = fs.readFileSync(appspecFile, 'utf8'); core.debug('*** appspecJson ***'); @@ -7540,7 +10114,6 @@ To view the progress of this deployment: process.exit(0); } catch (error) { - core.error(error); core.setFailed(error.message); } } @@ -7570,7 +10143,7 @@ async function getAccountInformation() { /***/ (function(__unusedmodule, __unusedexports, __webpack_require__) { var AWS = __webpack_require__(395); -var STS = __webpack_require__(733); +var STS = __webpack_require__(106); /** * Represents temporary credentials retrieved from {AWS.STS}. Without any @@ -7777,11 +10350,10 @@ AWS.ChainableTemporaryCredentials = AWS.util.inherit(AWS.Credentials, { /***/ (function(module, __unusedexports, __webpack_require__) { var util = __webpack_require__(153); -var regionConfig = __webpack_require__(572); +var regionConfig = __webpack_require__(108); function generateRegionPrefix(region) { if (!region) return null; - var parts = region.split('-'); if (parts.length < 3) return null; return parts.slice(0, parts.length - 2).join('-') + '-*'; @@ -7815,25 +10387,26 @@ function applyConfig(service, config) { function configureEndpoint(service) { var keys = derivedKeys(service); + var useFipsEndpoint = service.config.useFipsEndpoint; + var useDualstackEndpoint = service.config.useDualstackEndpoint; for (var i = 0; i < keys.length; i++) { var key = keys[i]; if (!key) continue; - if (Object.prototype.hasOwnProperty.call(regionConfig.rules, key)) { - var config = regionConfig.rules[key]; + var rules = useFipsEndpoint + ? useDualstackEndpoint + ? regionConfig.dualstackFipsRules + : regionConfig.fipsRules + : useDualstackEndpoint + ? regionConfig.dualstackRules + : regionConfig.rules; + + if (Object.prototype.hasOwnProperty.call(rules, key)) { + var config = rules[key]; if (typeof config === 'string') { config = regionConfig.patterns[config]; } - // set dualstack endpoint - if (service.config.useDualstack && util.isDualstackAvailable(service)) { - config = util.copy(config); - config.endpoint = config.endpoint.replace( - /{service}\.({region}\.)?/, - '{service}.dualstack.{region}.' - ); - } - // set global endpoint service.isGlobalEndpoint = !!config.globalEndpoint; if (config.signingRegion) { @@ -7873,10 +10446,98 @@ function getEndpointSuffix(region) { */ module.exports = { configureEndpoint: configureEndpoint, - getEndpointSuffix: getEndpointSuffix + getEndpointSuffix: getEndpointSuffix, }; +/***/ }), + +/***/ 554: +/***/ (function(__unusedmodule, exports) { + +"use strict"; + +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.PersonalAccessTokenCredentialHandler = exports.BearerCredentialHandler = exports.BasicCredentialHandler = void 0; +class BasicCredentialHandler { + constructor(username, password) { + this.username = username; + this.password = password; + } + prepareRequest(options) { + if (!options.headers) { + throw Error('The request has no headers'); + } + options.headers['Authorization'] = `Basic ${Buffer.from(`${this.username}:${this.password}`).toString('base64')}`; + } + // This handler cannot handle 401 + canHandleAuthentication() { + return false; + } + handleAuthentication() { + return __awaiter(this, void 0, void 0, function* () { + throw new Error('not implemented'); + }); + } +} +exports.BasicCredentialHandler = BasicCredentialHandler; +class BearerCredentialHandler { + constructor(token) { + this.token = token; + } + // currently implements pre-authorization + // TODO: support preAuth = false where it hooks on 401 + prepareRequest(options) { + if (!options.headers) { + throw Error('The request has no headers'); + } + options.headers['Authorization'] = `Bearer ${this.token}`; + } + // This handler cannot handle 401 + canHandleAuthentication() { + return false; + } + handleAuthentication() { + return __awaiter(this, void 0, void 0, function* () { + throw new Error('not implemented'); + }); + } +} +exports.BearerCredentialHandler = BearerCredentialHandler; +class PersonalAccessTokenCredentialHandler { + constructor(token) { + this.token = token; + } + // currently implements pre-authorization + // TODO: support preAuth = false where it hooks on 401 + prepareRequest(options) { + if (!options.headers) { + throw Error('The request has no headers'); + } + options.headers['Authorization'] = `Basic ${Buffer.from(`PAT:${this.token}`).toString('base64')}`; + } + // This handler cannot handle 401 + canHandleAuthentication() { + return false; + } + handleAuthentication() { + return __awaiter(this, void 0, void 0, function* () { + throw new Error('not implemented'); + }); + } +} +exports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler; +//# sourceMappingURL=auth.js.map + /***/ }), /***/ 559: @@ -7967,9 +10628,90 @@ module.exports = AWS.Signers.V3Https; /***/ }), /***/ 572: -/***/ (function(module) { +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _v = _interopRequireDefault(__webpack_require__(136)); + +var _md = _interopRequireDefault(__webpack_require__(659)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +const v3 = (0, _v.default)('v3', 0x30, _md.default); +var _default = v3; +exports.default = _default; + +/***/ }), + +/***/ 573: +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; -module.exports = {"rules":{"*/*":{"endpoint":"{service}.{region}.amazonaws.com"},"cn-*/*":{"endpoint":"{service}.{region}.amazonaws.com.cn"},"us-iso-*/*":{"endpoint":"{service}.{region}.c2s.ic.gov"},"us-isob-*/*":{"endpoint":"{service}.{region}.sc2s.sgov.gov"},"*/budgets":"globalSSL","*/cloudfront":"globalSSL","*/sts":"globalSSL","*/importexport":{"endpoint":"{service}.amazonaws.com","signatureVersion":"v2","globalEndpoint":true},"*/route53":"globalSSL","cn-*/route53":{"endpoint":"{service}.amazonaws.com.cn","globalEndpoint":true,"signingRegion":"cn-northwest-1"},"us-gov-*/route53":"globalGovCloud","*/waf":"globalSSL","*/iam":"globalSSL","cn-*/iam":{"endpoint":"{service}.cn-north-1.amazonaws.com.cn","globalEndpoint":true,"signingRegion":"cn-north-1"},"us-gov-*/iam":"globalGovCloud","us-gov-*/sts":{"endpoint":"{service}.{region}.amazonaws.com"},"us-gov-west-1/s3":"s3signature","us-west-1/s3":"s3signature","us-west-2/s3":"s3signature","eu-west-1/s3":"s3signature","ap-southeast-1/s3":"s3signature","ap-southeast-2/s3":"s3signature","ap-northeast-1/s3":"s3signature","sa-east-1/s3":"s3signature","us-east-1/s3":{"endpoint":"{service}.amazonaws.com","signatureVersion":"s3"},"us-east-1/sdb":{"endpoint":"{service}.amazonaws.com","signatureVersion":"v2"},"*/sdb":{"endpoint":"{service}.{region}.amazonaws.com","signatureVersion":"v2"}},"patterns":{"globalSSL":{"endpoint":"https://{service}.amazonaws.com","globalEndpoint":true,"signingRegion":"us-east-1"},"globalGovCloud":{"endpoint":"{service}.us-gov.amazonaws.com","globalEndpoint":true,"signingRegion":"us-gov-west-1"},"s3signature":{"endpoint":"{service}.{region}.amazonaws.com","signatureVersion":"s3"}}}; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.toPlatformPath = exports.toWin32Path = exports.toPosixPath = void 0; +const path = __importStar(__webpack_require__(622)); +/** + * toPosixPath converts the given path to the posix form. On Windows, \\ will be + * replaced with /. + * + * @param pth. Path to transform. + * @return string Posix path. + */ +function toPosixPath(pth) { + return pth.replace(/[\\]/g, '/'); +} +exports.toPosixPath = toPosixPath; +/** + * toWin32Path converts the given path to the win32 form. On Linux, / will be + * replaced with \\. + * + * @param pth. Path to transform. + * @return string Win32 path. + */ +function toWin32Path(pth) { + return pth.replace(/[/]/g, '\\'); +} +exports.toWin32Path = toWin32Path; +/** + * toPlatformPath converts the given path to a platform-specific path. It does + * this by replacing instances of / and \ with the platform-specific path + * separator. + * + * @param pth The path to platformize. + * @return string The platform-specific path. + */ +function toPlatformPath(pth) { + return pth.replace(/[/\\]/g, path.sep); +} +exports.toPlatformPath = toPlatformPath; +//# sourceMappingURL=path-utils.js.map /***/ }), @@ -8199,6 +10941,36 @@ function Collection(iterable, options, factory, nameTr, callback) { module.exports = Collection; +/***/ }), + +/***/ 587: +/***/ (function(module) { + +var getEndpointMode = function() { + return { + IPv4: 'IPv4', + IPv6: 'IPv6', + }; +}; + +module.exports = getEndpointMode; + + +/***/ }), + +/***/ 595: +/***/ (function(module) { + +var getEndpoint = function() { + return { + IPv4: 'http://169.254.169.254', + IPv6: 'http://[fd00:ec2::254]', + }; +}; + +module.exports = getEndpoint; + + /***/ }), /***/ 602: @@ -8372,102 +11144,9 @@ module.exports = Collection; /***/ }), /***/ 605: -/***/ (function(module, __unusedexports, __webpack_require__) { - -var util = __webpack_require__(395).util; -var toBuffer = util.buffer.toBuffer; - -/** - * A lossless representation of a signed, 64-bit integer. Instances of this - * class may be used in arithmetic expressions as if they were numeric - * primitives, but the binary representation will be preserved unchanged as the - * `bytes` property of the object. The bytes should be encoded as big-endian, - * two's complement integers. - * @param {Buffer} bytes - * - * @api private - */ -function Int64(bytes) { - if (bytes.length !== 8) { - throw new Error('Int64 buffers must be exactly 8 bytes'); - } - if (!util.Buffer.isBuffer(bytes)) bytes = toBuffer(bytes); - - this.bytes = bytes; -} - -/** - * @param {number} number - * @returns {Int64} - * - * @api private - */ -Int64.fromNumber = function(number) { - if (number > 9223372036854775807 || number < -9223372036854775808) { - throw new Error( - number + ' is too large (or, if negative, too small) to represent as an Int64' - ); - } - - var bytes = new Uint8Array(8); - for ( - var i = 7, remaining = Math.abs(Math.round(number)); - i > -1 && remaining > 0; - i--, remaining /= 256 - ) { - bytes[i] = remaining; - } - - if (number < 0) { - negate(bytes); - } - - return new Int64(bytes); -}; - -/** - * @returns {number} - * - * @api private - */ -Int64.prototype.valueOf = function() { - var bytes = this.bytes.slice(0); - var negative = bytes[0] & 128; - if (negative) { - negate(bytes); - } - - return parseInt(bytes.toString('hex'), 16) * (negative ? -1 : 1); -}; - -Int64.prototype.toString = function() { - return String(this.valueOf()); -}; - -/** - * @param {Buffer} bytes - * - * @api private - */ -function negate(bytes) { - for (var i = 0; i < 8; i++) { - bytes[i] ^= 0xFF; - } - for (var i = 7; i > -1; i--) { - bytes[i]++; - if (bytes[i] !== 0) { - break; - } - } -} - -/** - * @api private - */ -module.exports = { - Int64: Int64 -}; +/***/ (function(module) { +module.exports = require("http"); /***/ }), @@ -8564,9 +11243,15 @@ AWS.EventListeners = { }); add('VALIDATE_REGION', 'validate', function VALIDATE_REGION(req) { - if (!req.service.config.region && !req.service.isGlobalEndpoint) { - req.response.error = AWS.util.error(new Error(), - {code: 'ConfigError', message: 'Missing region in config'}); + if (!req.service.isGlobalEndpoint) { + var dnsHostRegex = new RegExp(/^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9])$/); + if (!req.service.config.region) { + req.response.error = AWS.util.error(new Error(), + {code: 'ConfigError', message: 'Missing region in config'}); + } else if (!dnsHostRegex.test(req.service.config.region)) { + req.response.error = AWS.util.error(new Error(), + {code: 'ConfigError', message: 'Invalid region in config'}); + } } }); @@ -8602,6 +11287,28 @@ AWS.EventListeners = { new AWS.ParamValidator(validation).validate(rules, req.params); }); + add('COMPUTE_CHECKSUM', 'afterBuild', function COMPUTE_CHECKSUM(req) { + if (!req.service.api.operations) { + return; + } + var operation = req.service.api.operations[req.operation]; + if (!operation) { + return; + } + var body = req.httpRequest.body; + var isNonStreamingPayload = body && (AWS.util.Buffer.isBuffer(body) || typeof body === 'string'); + var headers = req.httpRequest.headers; + if ( + operation.httpChecksumRequired && + req.service.config.computeChecksums && + isNonStreamingPayload && + !headers['Content-MD5'] + ) { + var md5 = AWS.util.crypto.md5(body, 'base64'); + headers['Content-MD5'] = md5; + } + }); + addAsync('COMPUTE_SHA256', 'afterBuild', function COMPUTE_SHA256(req, done) { req.haltHandlersOnError(); if (!req.service.api.operations) { @@ -8659,6 +11366,24 @@ AWS.EventListeners = { req.httpRequest.headers['Host'] = req.httpRequest.endpoint.host; }); + add('SET_TRACE_ID', 'afterBuild', function SET_TRACE_ID(req) { + var traceIdHeaderName = 'X-Amzn-Trace-Id'; + if (AWS.util.isNode() && !Object.hasOwnProperty.call(req.httpRequest.headers, traceIdHeaderName)) { + var ENV_LAMBDA_FUNCTION_NAME = 'AWS_LAMBDA_FUNCTION_NAME'; + var ENV_TRACE_ID = '_X_AMZN_TRACE_ID'; + var functionName = process.env[ENV_LAMBDA_FUNCTION_NAME]; + var traceId = process.env[ENV_TRACE_ID]; + if ( + typeof functionName === 'string' && + functionName.length > 0 && + typeof traceId === 'string' && + traceId.length > 0 + ) { + req.httpRequest.headers[traceIdHeaderName] = traceId; + } + } + }); + add('RESTART', 'restart', function RESTART() { var err = this.response.error; if (!err || !err.retryable) return; @@ -8685,37 +11410,56 @@ AWS.EventListeners = { var authtype = operation ? operation.authtype : ''; if (!service.api.signatureVersion && !authtype && !service.config.signatureVersion) return done(); // none - service.config.getCredentials(function (err, credentials) { - if (err) { - req.response.error = err; - return done(); - } + if (authtype === 'bearer' || service.config.signatureVersion === 'bearer') { + service.config.getToken(function (err, token) { + if (err) { + req.response.error = err; + return done(); + } - try { - var date = service.getSkewCorrectedDate(); - var SignerClass = service.getSignerClass(req); - var signer = new SignerClass(req.httpRequest, - service.api.signingName || service.api.endpointPrefix, - { - signatureCache: service.config.signatureCache, - operation: operation, - signatureVersion: service.api.signatureVersion - }); - signer.setServiceClientId(service._clientId); - - // clear old authorization headers - delete req.httpRequest.headers['Authorization']; - delete req.httpRequest.headers['Date']; - delete req.httpRequest.headers['X-Amz-Date']; - - // add new authorization - signer.addAuthorization(credentials, date); - req.signedAt = date; - } catch (e) { - req.response.error = e; - } - done(); - }); + try { + var SignerClass = service.getSignerClass(req); + var signer = new SignerClass(req.httpRequest); + signer.addAuthorization(token); + } catch (e) { + req.response.error = e; + } + done(); + }); + } else { + service.config.getCredentials(function (err, credentials) { + if (err) { + req.response.error = err; + return done(); + } + + try { + var date = service.getSkewCorrectedDate(); + var SignerClass = service.getSignerClass(req); + var signer = new SignerClass(req.httpRequest, + service.getSigningName(req), + { + signatureCache: service.config.signatureCache, + operation: operation, + signatureVersion: service.api.signatureVersion + }); + signer.setServiceClientId(service._clientId); + + // clear old authorization headers + delete req.httpRequest.headers['Authorization']; + delete req.httpRequest.headers['Date']; + delete req.httpRequest.headers['X-Amz-Date']; + + // add new authorization + signer.addAuthorization(credentials, date); + req.signedAt = date; + } catch (e) { + req.response.error = e; + } + done(); + }); + + } }); add('VALIDATE_RESPONSE', 'validateResponse', function VALIDATE_RESPONSE(resp) { @@ -8729,6 +11473,17 @@ AWS.EventListeners = { } }); + add('ERROR', 'error', function ERROR(err, resp) { + var awsQueryCompatible = resp.request.service.api.awsQueryCompatible; + if (awsQueryCompatible) { + var headers = resp.httpResponse.headers; + var queryErrorCode = headers ? headers['x-amzn-query-error'] : undefined; + if (queryErrorCode && queryErrorCode.includes(';')) { + resp.error.code = queryErrorCode.split(';')[0]; + } + } + }, true); + addAsync('SEND', 'send', function SEND(resp, done) { resp.httpResponse._abortCallback = done; resp.error = null; @@ -8964,8 +11719,14 @@ AWS.EventListeners = { add('EXTRACT_REQUEST_ID', 'extractError', AWS.util.extractRequestId); add('ENOTFOUND_ERROR', 'httpError', function ENOTFOUND_ERROR(err) { - if (err.code === 'NetworkingError' && err.errno === 'ENOTFOUND') { - var message = 'Inaccessible host: `' + err.hostname + + function isDNSError(err) { + return err.errno === 'ENOTFOUND' || + typeof err.errno === 'number' && + typeof AWS.util.getSystemErrorName === 'function' && + ['EAI_NONAME', 'EAI_NODATA'].indexOf(AWS.util.getSystemErrorName(err.errno) >= 0); + } + if (err.code === 'NetworkingError' && isDNSError(err)) { + var message = 'Inaccessible host: `' + err.hostname + '\' at port `' + err.port + '\'. This service may not be available in the `' + err.region + '\' region.'; this.response.error = AWS.util.error(new Error(message), { @@ -8988,6 +11749,9 @@ AWS.EventListeners = { if (!shape) { return shape; } + if (inputShape.isSensitive) { + return '***SensitiveInformation***'; + } switch (inputShape.type) { case 'structure': var struct = {}; @@ -9012,11 +11776,7 @@ AWS.EventListeners = { }); return map; default: - if (inputShape.isSensitive) { - return '***SensitiveInformation***'; - } else { - return shape; - } + return shape; } } @@ -9074,6 +11834,7 @@ AWS.EventListeners = { add('BUILD', 'build', svc.buildRequest); add('EXTRACT_DATA', 'extractData', svc.extractData); add('EXTRACT_ERROR', 'extractError', svc.extractError); + add('UNSET_CONTENT_LENGTH', 'afterBuild', svc.unsetContentLength); }), RestXml: new SequentialExecutor().addNamedListeners(function(add) { @@ -9878,78 +12639,57 @@ exports.LRUCache = LRUCache; /***/ }), +/***/ 631: +/***/ (function(module) { + +module.exports = require("net"); + +/***/ }), + /***/ 634: -/***/ (function(__unusedmodule, __unusedexports, __webpack_require__) { +/***/ (function(__unusedmodule, exports, __webpack_require__) { -var AWS = __webpack_require__(395); +"use strict"; -/** - * Represents credentials from a JSON file on disk. - * If the credentials expire, the SDK can {refresh} the credentials - * from the file. - * - * The format of the file should be similar to the options passed to - * {AWS.Config}: - * - * ```javascript - * {accessKeyId: 'akid', secretAccessKey: 'secret', sessionToken: 'optional'} - * ``` - * - * @example Loading credentials from disk - * var creds = new AWS.FileSystemCredentials('./configuration.json'); - * creds.accessKeyId == 'AKID' - * - * @!attribute filename - * @readonly - * @return [String] the path to the JSON file on disk containing the - * credentials. - * @!macro nobrowser - */ -AWS.FileSystemCredentials = AWS.util.inherit(AWS.Credentials, { - /** - * @overload AWS.FileSystemCredentials(filename) - * Creates a new FileSystemCredentials object from a filename - * - * @param filename [String] the path on disk to the JSON file to load. - */ - constructor: function FileSystemCredentials(filename) { - AWS.Credentials.call(this); - this.filename = filename; - this.get(function() {}); - }, +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _regex = _interopRequireDefault(__webpack_require__(525)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function validate(uuid) { + return typeof uuid === 'string' && _regex.default.test(uuid); +} - /** - * Loads the credentials from the {filename} on disk. - * - * @callback callback function(err) - * Called after the JSON file on disk is read and parsed. When this callback - * is called with no error, it means that the credentials information - * has been loaded into the object (as the `accessKeyId`, `secretAccessKey`, - * and `sessionToken` properties). - * @param err [Error] if an error occurred, this value will be filled - * @see get - */ - refresh: function refresh(callback) { - if (!callback) callback = AWS.util.fn.callback; - try { - var creds = JSON.parse(AWS.util.readFileSync(this.filename)); - AWS.Credentials.call(this, creds); - if (!this.accessKeyId || !this.secretAccessKey) { - throw AWS.util.error( - new Error('Credentials not set in ' + this.filename), - { code: 'FileSystemCredentialsProviderFailure' } - ); - } - this.expired = false; - callback(); - } catch (err) { - callback(err); - } - } +var _default = validate; +exports.default = _default; +/***/ }), + +/***/ 638: +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true }); +exports.default = void 0; + +var _v = _interopRequireDefault(__webpack_require__(136)); +var _sha = _interopRequireDefault(__webpack_require__(329)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +const v5 = (0, _v.default)('v5', 0x50, _sha.default); +var _default = v5; +exports.default = _default; /***/ }), @@ -10118,7 +12858,7 @@ AWS.FileSystemCredentials = AWS.util.inherit(AWS.Credentials, { var Stream try { - Stream = __webpack_require__(413).Stream + Stream = __webpack_require__(794).Stream } catch (ex) { Stream = function () {} } @@ -11603,6 +14343,36 @@ module.exports = { }; +/***/ }), + +/***/ 659: +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _crypto = _interopRequireDefault(__webpack_require__(417)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function md5(bytes) { + if (Array.isArray(bytes)) { + bytes = Buffer.from(bytes); + } else if (typeof bytes === 'string') { + bytes = Buffer.from(bytes, 'utf8'); + } + + return _crypto.default.createHash('md5').update(bytes).digest(); +} + +var _default = md5; +exports.default = _default; + /***/ }), /***/ 660: @@ -11670,6 +14440,296 @@ module.exports = { }; +/***/ }), + +/***/ 665: +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.summary = exports.markdownSummary = exports.SUMMARY_DOCS_URL = exports.SUMMARY_ENV_VAR = void 0; +const os_1 = __webpack_require__(87); +const fs_1 = __webpack_require__(747); +const { access, appendFile, writeFile } = fs_1.promises; +exports.SUMMARY_ENV_VAR = 'GITHUB_STEP_SUMMARY'; +exports.SUMMARY_DOCS_URL = 'https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary'; +class Summary { + constructor() { + this._buffer = ''; + } + /** + * Finds the summary file path from the environment, rejects if env var is not found or file does not exist + * Also checks r/w permissions. + * + * @returns step summary file path + */ + filePath() { + return __awaiter(this, void 0, void 0, function* () { + if (this._filePath) { + return this._filePath; + } + const pathFromEnv = process.env[exports.SUMMARY_ENV_VAR]; + if (!pathFromEnv) { + throw new Error(`Unable to find environment variable for $${exports.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`); + } + try { + yield access(pathFromEnv, fs_1.constants.R_OK | fs_1.constants.W_OK); + } + catch (_a) { + throw new Error(`Unable to access summary file: '${pathFromEnv}'. Check if the file has correct read/write permissions.`); + } + this._filePath = pathFromEnv; + return this._filePath; + }); + } + /** + * Wraps content in an HTML tag, adding any HTML attributes + * + * @param {string} tag HTML tag to wrap + * @param {string | null} content content within the tag + * @param {[attribute: string]: string} attrs key-value list of HTML attributes to add + * + * @returns {string} content wrapped in HTML element + */ + wrap(tag, content, attrs = {}) { + const htmlAttrs = Object.entries(attrs) + .map(([key, value]) => ` ${key}="${value}"`) + .join(''); + if (!content) { + return `<${tag}${htmlAttrs}>`; + } + return `<${tag}${htmlAttrs}>${content}`; + } + /** + * Writes text in the buffer to the summary buffer file and empties buffer. Will append by default. + * + * @param {SummaryWriteOptions} [options] (optional) options for write operation + * + * @returns {Promise} summary instance + */ + write(options) { + return __awaiter(this, void 0, void 0, function* () { + const overwrite = !!(options === null || options === void 0 ? void 0 : options.overwrite); + const filePath = yield this.filePath(); + const writeFunc = overwrite ? writeFile : appendFile; + yield writeFunc(filePath, this._buffer, { encoding: 'utf8' }); + return this.emptyBuffer(); + }); + } + /** + * Clears the summary buffer and wipes the summary file + * + * @returns {Summary} summary instance + */ + clear() { + return __awaiter(this, void 0, void 0, function* () { + return this.emptyBuffer().write({ overwrite: true }); + }); + } + /** + * Returns the current summary buffer as a string + * + * @returns {string} string of summary buffer + */ + stringify() { + return this._buffer; + } + /** + * If the summary buffer is empty + * + * @returns {boolen} true if the buffer is empty + */ + isEmptyBuffer() { + return this._buffer.length === 0; + } + /** + * Resets the summary buffer without writing to summary file + * + * @returns {Summary} summary instance + */ + emptyBuffer() { + this._buffer = ''; + return this; + } + /** + * Adds raw text to the summary buffer + * + * @param {string} text content to add + * @param {boolean} [addEOL=false] (optional) append an EOL to the raw text (default: false) + * + * @returns {Summary} summary instance + */ + addRaw(text, addEOL = false) { + this._buffer += text; + return addEOL ? this.addEOL() : this; + } + /** + * Adds the operating system-specific end-of-line marker to the buffer + * + * @returns {Summary} summary instance + */ + addEOL() { + return this.addRaw(os_1.EOL); + } + /** + * Adds an HTML codeblock to the summary buffer + * + * @param {string} code content to render within fenced code block + * @param {string} lang (optional) language to syntax highlight code + * + * @returns {Summary} summary instance + */ + addCodeBlock(code, lang) { + const attrs = Object.assign({}, (lang && { lang })); + const element = this.wrap('pre', this.wrap('code', code), attrs); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML list to the summary buffer + * + * @param {string[]} items list of items to render + * @param {boolean} [ordered=false] (optional) if the rendered list should be ordered or not (default: false) + * + * @returns {Summary} summary instance + */ + addList(items, ordered = false) { + const tag = ordered ? 'ol' : 'ul'; + const listItems = items.map(item => this.wrap('li', item)).join(''); + const element = this.wrap(tag, listItems); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML table to the summary buffer + * + * @param {SummaryTableCell[]} rows table rows + * + * @returns {Summary} summary instance + */ + addTable(rows) { + const tableBody = rows + .map(row => { + const cells = row + .map(cell => { + if (typeof cell === 'string') { + return this.wrap('td', cell); + } + const { header, data, colspan, rowspan } = cell; + const tag = header ? 'th' : 'td'; + const attrs = Object.assign(Object.assign({}, (colspan && { colspan })), (rowspan && { rowspan })); + return this.wrap(tag, data, attrs); + }) + .join(''); + return this.wrap('tr', cells); + }) + .join(''); + const element = this.wrap('table', tableBody); + return this.addRaw(element).addEOL(); + } + /** + * Adds a collapsable HTML details element to the summary buffer + * + * @param {string} label text for the closed state + * @param {string} content collapsable content + * + * @returns {Summary} summary instance + */ + addDetails(label, content) { + const element = this.wrap('details', this.wrap('summary', label) + content); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML image tag to the summary buffer + * + * @param {string} src path to the image you to embed + * @param {string} alt text description of the image + * @param {SummaryImageOptions} options (optional) addition image attributes + * + * @returns {Summary} summary instance + */ + addImage(src, alt, options) { + const { width, height } = options || {}; + const attrs = Object.assign(Object.assign({}, (width && { width })), (height && { height })); + const element = this.wrap('img', null, Object.assign({ src, alt }, attrs)); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML section heading element + * + * @param {string} text heading text + * @param {number | string} [level=1] (optional) the heading level, default: 1 + * + * @returns {Summary} summary instance + */ + addHeading(text, level) { + const tag = `h${level}`; + const allowedTag = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'].includes(tag) + ? tag + : 'h1'; + const element = this.wrap(allowedTag, text); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML thematic break (
) to the summary buffer + * + * @returns {Summary} summary instance + */ + addSeparator() { + const element = this.wrap('hr', null); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML line break (
) to the summary buffer + * + * @returns {Summary} summary instance + */ + addBreak() { + const element = this.wrap('br', null); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML blockquote to the summary buffer + * + * @param {string} text quote text + * @param {string} cite (optional) citation url + * + * @returns {Summary} summary instance + */ + addQuote(text, cite) { + const attrs = Object.assign({}, (cite && { cite })); + const element = this.wrap('blockquote', text, attrs); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML anchor tag to the summary buffer + * + * @param {string} text link text/content + * @param {string} href hyperlink + * + * @returns {Summary} summary instance + */ + addLink(text, href) { + const element = this.wrap('a', text, { href }); + return this.addRaw(element).addEOL(); + } +} +const _summary = new Summary(); +/** + * @deprecated use `core.summary` + */ +exports.markdownSummary = _summary; +exports.summary = _summary; +//# sourceMappingURL=summary.js.map + /***/ }), /***/ 669: @@ -11850,6 +14910,7 @@ function StructureShape(shape, options) { property(this, 'memberNames', []); property(this, 'required', []); property(this, 'isRequired', function() { return false; }); + property(this, 'isDocument', Boolean(shape.document)); } if (shape.members) { @@ -12095,7 +15156,7 @@ module.exports = Shape; /***/ 683: /***/ (function(module, __unusedexports, __webpack_require__) { -var Int64 = __webpack_require__(605).Int64; +var Int64 = __webpack_require__(996).Int64; var splitMessage = __webpack_require__(175).splitMessage; @@ -12244,7 +15305,7 @@ module.exports = { /***/ 694: /***/ (function(module) { -module.exports = {"acm":{"name":"ACM","cors":true},"apigateway":{"name":"APIGateway","cors":true},"applicationautoscaling":{"prefix":"application-autoscaling","name":"ApplicationAutoScaling","cors":true},"appstream":{"name":"AppStream"},"autoscaling":{"name":"AutoScaling","cors":true},"batch":{"name":"Batch"},"budgets":{"name":"Budgets"},"clouddirectory":{"name":"CloudDirectory","versions":["2016-05-10*"]},"cloudformation":{"name":"CloudFormation","cors":true},"cloudfront":{"name":"CloudFront","versions":["2013-05-12*","2013-11-11*","2014-05-31*","2014-10-21*","2014-11-06*","2015-04-17*","2015-07-27*","2015-09-17*","2016-01-13*","2016-01-28*","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*"],"cors":true},"cloudhsm":{"name":"CloudHSM","cors":true},"cloudsearch":{"name":"CloudSearch"},"cloudsearchdomain":{"name":"CloudSearchDomain"},"cloudtrail":{"name":"CloudTrail","cors":true},"cloudwatch":{"prefix":"monitoring","name":"CloudWatch","cors":true},"cloudwatchevents":{"prefix":"events","name":"CloudWatchEvents","versions":["2014-02-03*"],"cors":true},"cloudwatchlogs":{"prefix":"logs","name":"CloudWatchLogs","cors":true},"codebuild":{"name":"CodeBuild","cors":true},"codecommit":{"name":"CodeCommit","cors":true},"codedeploy":{"name":"CodeDeploy","cors":true},"codepipeline":{"name":"CodePipeline","cors":true},"cognitoidentity":{"prefix":"cognito-identity","name":"CognitoIdentity","cors":true},"cognitoidentityserviceprovider":{"prefix":"cognito-idp","name":"CognitoIdentityServiceProvider","cors":true},"cognitosync":{"prefix":"cognito-sync","name":"CognitoSync","cors":true},"configservice":{"prefix":"config","name":"ConfigService","cors":true},"cur":{"name":"CUR","cors":true},"datapipeline":{"name":"DataPipeline"},"devicefarm":{"name":"DeviceFarm","cors":true},"directconnect":{"name":"DirectConnect","cors":true},"directoryservice":{"prefix":"ds","name":"DirectoryService"},"discovery":{"name":"Discovery"},"dms":{"name":"DMS"},"dynamodb":{"name":"DynamoDB","cors":true},"dynamodbstreams":{"prefix":"streams.dynamodb","name":"DynamoDBStreams","cors":true},"ec2":{"name":"EC2","versions":["2013-06-15*","2013-10-15*","2014-02-01*","2014-05-01*","2014-06-15*","2014-09-01*","2014-10-01*","2015-03-01*","2015-04-15*","2015-10-01*","2016-04-01*","2016-09-15*"],"cors":true},"ecr":{"name":"ECR","cors":true},"ecs":{"name":"ECS","cors":true},"efs":{"prefix":"elasticfilesystem","name":"EFS","cors":true},"elasticache":{"name":"ElastiCache","versions":["2012-11-15*","2014-03-24*","2014-07-15*","2014-09-30*"],"cors":true},"elasticbeanstalk":{"name":"ElasticBeanstalk","cors":true},"elb":{"prefix":"elasticloadbalancing","name":"ELB","cors":true},"elbv2":{"prefix":"elasticloadbalancingv2","name":"ELBv2","cors":true},"emr":{"prefix":"elasticmapreduce","name":"EMR","cors":true},"es":{"name":"ES"},"elastictranscoder":{"name":"ElasticTranscoder","cors":true},"firehose":{"name":"Firehose","cors":true},"gamelift":{"name":"GameLift","cors":true},"glacier":{"name":"Glacier"},"health":{"name":"Health"},"iam":{"name":"IAM","cors":true},"importexport":{"name":"ImportExport"},"inspector":{"name":"Inspector","versions":["2015-08-18*"],"cors":true},"iot":{"name":"Iot","cors":true},"iotdata":{"prefix":"iot-data","name":"IotData","cors":true},"kinesis":{"name":"Kinesis","cors":true},"kinesisanalytics":{"name":"KinesisAnalytics"},"kms":{"name":"KMS","cors":true},"lambda":{"name":"Lambda","cors":true},"lexruntime":{"prefix":"runtime.lex","name":"LexRuntime","cors":true},"lightsail":{"name":"Lightsail"},"machinelearning":{"name":"MachineLearning","cors":true},"marketplacecommerceanalytics":{"name":"MarketplaceCommerceAnalytics","cors":true},"marketplacemetering":{"prefix":"meteringmarketplace","name":"MarketplaceMetering"},"mturk":{"prefix":"mturk-requester","name":"MTurk","cors":true},"mobileanalytics":{"name":"MobileAnalytics","cors":true},"opsworks":{"name":"OpsWorks","cors":true},"opsworkscm":{"name":"OpsWorksCM"},"organizations":{"name":"Organizations"},"pinpoint":{"name":"Pinpoint"},"polly":{"name":"Polly","cors":true},"rds":{"name":"RDS","versions":["2014-09-01*"],"cors":true},"redshift":{"name":"Redshift","cors":true},"rekognition":{"name":"Rekognition","cors":true},"resourcegroupstaggingapi":{"name":"ResourceGroupsTaggingAPI"},"route53":{"name":"Route53","cors":true},"route53domains":{"name":"Route53Domains","cors":true},"s3":{"name":"S3","dualstackAvailable":true,"cors":true},"s3control":{"name":"S3Control","dualstackAvailable":true,"xmlNoDefaultLists":true},"servicecatalog":{"name":"ServiceCatalog","cors":true},"ses":{"prefix":"email","name":"SES","cors":true},"shield":{"name":"Shield"},"simpledb":{"prefix":"sdb","name":"SimpleDB"},"sms":{"name":"SMS"},"snowball":{"name":"Snowball"},"sns":{"name":"SNS","cors":true},"sqs":{"name":"SQS","cors":true},"ssm":{"name":"SSM","cors":true},"storagegateway":{"name":"StorageGateway","cors":true},"stepfunctions":{"prefix":"states","name":"StepFunctions"},"sts":{"name":"STS","cors":true},"support":{"name":"Support"},"swf":{"name":"SWF"},"xray":{"name":"XRay","cors":true},"waf":{"name":"WAF","cors":true},"wafregional":{"prefix":"waf-regional","name":"WAFRegional"},"workdocs":{"name":"WorkDocs","cors":true},"workspaces":{"name":"WorkSpaces"},"codestar":{"name":"CodeStar"},"lexmodelbuildingservice":{"prefix":"lex-models","name":"LexModelBuildingService","cors":true},"marketplaceentitlementservice":{"prefix":"entitlement.marketplace","name":"MarketplaceEntitlementService"},"athena":{"name":"Athena"},"greengrass":{"name":"Greengrass"},"dax":{"name":"DAX"},"migrationhub":{"prefix":"AWSMigrationHub","name":"MigrationHub"},"cloudhsmv2":{"name":"CloudHSMV2"},"glue":{"name":"Glue"},"mobile":{"name":"Mobile"},"pricing":{"name":"Pricing","cors":true},"costexplorer":{"prefix":"ce","name":"CostExplorer","cors":true},"mediaconvert":{"name":"MediaConvert"},"medialive":{"name":"MediaLive"},"mediapackage":{"name":"MediaPackage"},"mediastore":{"name":"MediaStore"},"mediastoredata":{"prefix":"mediastore-data","name":"MediaStoreData","cors":true},"appsync":{"name":"AppSync"},"guardduty":{"name":"GuardDuty"},"mq":{"name":"MQ"},"comprehend":{"name":"Comprehend","cors":true},"iotjobsdataplane":{"prefix":"iot-jobs-data","name":"IoTJobsDataPlane"},"kinesisvideoarchivedmedia":{"prefix":"kinesis-video-archived-media","name":"KinesisVideoArchivedMedia","cors":true},"kinesisvideomedia":{"prefix":"kinesis-video-media","name":"KinesisVideoMedia","cors":true},"kinesisvideo":{"name":"KinesisVideo","cors":true},"sagemakerruntime":{"prefix":"runtime.sagemaker","name":"SageMakerRuntime"},"sagemaker":{"name":"SageMaker"},"translate":{"name":"Translate","cors":true},"resourcegroups":{"prefix":"resource-groups","name":"ResourceGroups","cors":true},"alexaforbusiness":{"name":"AlexaForBusiness"},"cloud9":{"name":"Cloud9"},"serverlessapplicationrepository":{"prefix":"serverlessrepo","name":"ServerlessApplicationRepository"},"servicediscovery":{"name":"ServiceDiscovery"},"workmail":{"name":"WorkMail"},"autoscalingplans":{"prefix":"autoscaling-plans","name":"AutoScalingPlans"},"transcribeservice":{"prefix":"transcribe","name":"TranscribeService"},"connect":{"name":"Connect","cors":true},"acmpca":{"prefix":"acm-pca","name":"ACMPCA"},"fms":{"name":"FMS"},"secretsmanager":{"name":"SecretsManager","cors":true},"iotanalytics":{"name":"IoTAnalytics","cors":true},"iot1clickdevicesservice":{"prefix":"iot1click-devices","name":"IoT1ClickDevicesService"},"iot1clickprojects":{"prefix":"iot1click-projects","name":"IoT1ClickProjects"},"pi":{"name":"PI"},"neptune":{"name":"Neptune"},"mediatailor":{"name":"MediaTailor"},"eks":{"name":"EKS"},"macie":{"name":"Macie"},"dlm":{"name":"DLM"},"signer":{"name":"Signer"},"chime":{"name":"Chime"},"pinpointemail":{"prefix":"pinpoint-email","name":"PinpointEmail"},"ram":{"name":"RAM"},"route53resolver":{"name":"Route53Resolver"},"pinpointsmsvoice":{"prefix":"sms-voice","name":"PinpointSMSVoice"},"quicksight":{"name":"QuickSight"},"rdsdataservice":{"prefix":"rds-data","name":"RDSDataService"},"amplify":{"name":"Amplify"},"datasync":{"name":"DataSync"},"robomaker":{"name":"RoboMaker"},"transfer":{"name":"Transfer"},"globalaccelerator":{"name":"GlobalAccelerator"},"comprehendmedical":{"name":"ComprehendMedical","cors":true},"kinesisanalyticsv2":{"name":"KinesisAnalyticsV2"},"mediaconnect":{"name":"MediaConnect"},"fsx":{"name":"FSx"},"securityhub":{"name":"SecurityHub"},"appmesh":{"name":"AppMesh","versions":["2018-10-01*"]},"licensemanager":{"prefix":"license-manager","name":"LicenseManager"},"kafka":{"name":"Kafka"},"apigatewaymanagementapi":{"name":"ApiGatewayManagementApi"},"apigatewayv2":{"name":"ApiGatewayV2"},"docdb":{"name":"DocDB"},"backup":{"name":"Backup"},"worklink":{"name":"WorkLink"},"textract":{"name":"Textract"},"managedblockchain":{"name":"ManagedBlockchain"},"mediapackagevod":{"prefix":"mediapackage-vod","name":"MediaPackageVod"},"groundstation":{"name":"GroundStation"},"iotthingsgraph":{"name":"IoTThingsGraph"},"iotevents":{"name":"IoTEvents"},"ioteventsdata":{"prefix":"iotevents-data","name":"IoTEventsData"},"personalize":{"name":"Personalize","cors":true},"personalizeevents":{"prefix":"personalize-events","name":"PersonalizeEvents","cors":true},"personalizeruntime":{"prefix":"personalize-runtime","name":"PersonalizeRuntime","cors":true},"applicationinsights":{"prefix":"application-insights","name":"ApplicationInsights"},"servicequotas":{"prefix":"service-quotas","name":"ServiceQuotas"},"ec2instanceconnect":{"prefix":"ec2-instance-connect","name":"EC2InstanceConnect"},"eventbridge":{"name":"EventBridge"},"lakeformation":{"name":"LakeFormation"},"forecastservice":{"prefix":"forecast","name":"ForecastService","cors":true},"forecastqueryservice":{"prefix":"forecastquery","name":"ForecastQueryService","cors":true},"qldb":{"name":"QLDB"},"qldbsession":{"prefix":"qldb-session","name":"QLDBSession"},"workmailmessageflow":{"name":"WorkMailMessageFlow"},"codestarnotifications":{"prefix":"codestar-notifications","name":"CodeStarNotifications"},"savingsplans":{"name":"SavingsPlans"},"sso":{"name":"SSO"},"ssooidc":{"prefix":"sso-oidc","name":"SSOOIDC"},"marketplacecatalog":{"prefix":"marketplace-catalog","name":"MarketplaceCatalog"},"dataexchange":{"name":"DataExchange"},"sesv2":{"name":"SESV2"},"migrationhubconfig":{"prefix":"migrationhub-config","name":"MigrationHubConfig"},"connectparticipant":{"name":"ConnectParticipant"},"appconfig":{"name":"AppConfig"},"iotsecuretunneling":{"name":"IoTSecureTunneling"},"wafv2":{"name":"WAFV2"},"elasticinference":{"prefix":"elastic-inference","name":"ElasticInference"},"imagebuilder":{"name":"Imagebuilder"},"schemas":{"name":"Schemas"},"accessanalyzer":{"name":"AccessAnalyzer"},"codegurureviewer":{"prefix":"codeguru-reviewer","name":"CodeGuruReviewer"},"codeguruprofiler":{"name":"CodeGuruProfiler"},"computeoptimizer":{"prefix":"compute-optimizer","name":"ComputeOptimizer"},"frauddetector":{"name":"FraudDetector"},"kendra":{"name":"Kendra"},"networkmanager":{"name":"NetworkManager"},"outposts":{"name":"Outposts"},"augmentedairuntime":{"prefix":"sagemaker-a2i-runtime","name":"AugmentedAIRuntime"},"ebs":{"name":"EBS"},"kinesisvideosignalingchannels":{"prefix":"kinesis-video-signaling","name":"KinesisVideoSignalingChannels","cors":true},"detective":{"name":"Detective"},"codestarconnections":{"prefix":"codestar-connections","name":"CodeStarconnections"},"synthetics":{"name":"Synthetics"},"iotsitewise":{"name":"IoTSiteWise"},"macie2":{"name":"Macie2"},"codeartifact":{"name":"CodeArtifact"},"honeycode":{"name":"Honeycode"}}; +module.exports = {"acm":{"name":"ACM","cors":true},"apigateway":{"name":"APIGateway","cors":true},"applicationautoscaling":{"prefix":"application-autoscaling","name":"ApplicationAutoScaling","cors":true},"appstream":{"name":"AppStream"},"autoscaling":{"name":"AutoScaling","cors":true},"batch":{"name":"Batch"},"budgets":{"name":"Budgets"},"clouddirectory":{"name":"CloudDirectory","versions":["2016-05-10*"]},"cloudformation":{"name":"CloudFormation","cors":true},"cloudfront":{"name":"CloudFront","versions":["2013-05-12*","2013-11-11*","2014-05-31*","2014-10-21*","2014-11-06*","2015-04-17*","2015-07-27*","2015-09-17*","2016-01-13*","2016-01-28*","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*"],"cors":true},"cloudhsm":{"name":"CloudHSM","cors":true},"cloudsearch":{"name":"CloudSearch"},"cloudsearchdomain":{"name":"CloudSearchDomain"},"cloudtrail":{"name":"CloudTrail","cors":true},"cloudwatch":{"prefix":"monitoring","name":"CloudWatch","cors":true},"cloudwatchevents":{"prefix":"events","name":"CloudWatchEvents","versions":["2014-02-03*"],"cors":true},"cloudwatchlogs":{"prefix":"logs","name":"CloudWatchLogs","cors":true},"codebuild":{"name":"CodeBuild","cors":true},"codecommit":{"name":"CodeCommit","cors":true},"codedeploy":{"name":"CodeDeploy","cors":true},"codepipeline":{"name":"CodePipeline","cors":true},"cognitoidentity":{"prefix":"cognito-identity","name":"CognitoIdentity","cors":true},"cognitoidentityserviceprovider":{"prefix":"cognito-idp","name":"CognitoIdentityServiceProvider","cors":true},"cognitosync":{"prefix":"cognito-sync","name":"CognitoSync","cors":true},"configservice":{"prefix":"config","name":"ConfigService","cors":true},"cur":{"name":"CUR","cors":true},"datapipeline":{"name":"DataPipeline"},"devicefarm":{"name":"DeviceFarm","cors":true},"directconnect":{"name":"DirectConnect","cors":true},"directoryservice":{"prefix":"ds","name":"DirectoryService"},"discovery":{"name":"Discovery"},"dms":{"name":"DMS"},"dynamodb":{"name":"DynamoDB","cors":true},"dynamodbstreams":{"prefix":"streams.dynamodb","name":"DynamoDBStreams","cors":true},"ec2":{"name":"EC2","versions":["2013-06-15*","2013-10-15*","2014-02-01*","2014-05-01*","2014-06-15*","2014-09-01*","2014-10-01*","2015-03-01*","2015-04-15*","2015-10-01*","2016-04-01*","2016-09-15*"],"cors":true},"ecr":{"name":"ECR","cors":true},"ecs":{"name":"ECS","cors":true},"efs":{"prefix":"elasticfilesystem","name":"EFS","cors":true},"elasticache":{"name":"ElastiCache","versions":["2012-11-15*","2014-03-24*","2014-07-15*","2014-09-30*"],"cors":true},"elasticbeanstalk":{"name":"ElasticBeanstalk","cors":true},"elb":{"prefix":"elasticloadbalancing","name":"ELB","cors":true},"elbv2":{"prefix":"elasticloadbalancingv2","name":"ELBv2","cors":true},"emr":{"prefix":"elasticmapreduce","name":"EMR","cors":true},"es":{"name":"ES"},"elastictranscoder":{"name":"ElasticTranscoder","cors":true},"firehose":{"name":"Firehose","cors":true},"gamelift":{"name":"GameLift","cors":true},"glacier":{"name":"Glacier"},"health":{"name":"Health"},"iam":{"name":"IAM","cors":true},"importexport":{"name":"ImportExport"},"inspector":{"name":"Inspector","versions":["2015-08-18*"],"cors":true},"iot":{"name":"Iot","cors":true},"iotdata":{"prefix":"iot-data","name":"IotData","cors":true},"kinesis":{"name":"Kinesis","cors":true},"kinesisanalytics":{"name":"KinesisAnalytics"},"kms":{"name":"KMS","cors":true},"lambda":{"name":"Lambda","cors":true},"lexruntime":{"prefix":"runtime.lex","name":"LexRuntime","cors":true},"lightsail":{"name":"Lightsail"},"machinelearning":{"name":"MachineLearning","cors":true},"marketplacecommerceanalytics":{"name":"MarketplaceCommerceAnalytics","cors":true},"marketplacemetering":{"prefix":"meteringmarketplace","name":"MarketplaceMetering"},"mturk":{"prefix":"mturk-requester","name":"MTurk","cors":true},"mobileanalytics":{"name":"MobileAnalytics","cors":true},"opsworks":{"name":"OpsWorks","cors":true},"opsworkscm":{"name":"OpsWorksCM"},"organizations":{"name":"Organizations"},"pinpoint":{"name":"Pinpoint"},"polly":{"name":"Polly","cors":true},"rds":{"name":"RDS","versions":["2014-09-01*"],"cors":true},"redshift":{"name":"Redshift","cors":true},"rekognition":{"name":"Rekognition","cors":true},"resourcegroupstaggingapi":{"name":"ResourceGroupsTaggingAPI"},"route53":{"name":"Route53","cors":true},"route53domains":{"name":"Route53Domains","cors":true},"s3":{"name":"S3","dualstackAvailable":true,"cors":true},"s3control":{"name":"S3Control","dualstackAvailable":true,"xmlNoDefaultLists":true},"servicecatalog":{"name":"ServiceCatalog","cors":true},"ses":{"prefix":"email","name":"SES","cors":true},"shield":{"name":"Shield"},"simpledb":{"prefix":"sdb","name":"SimpleDB"},"sms":{"name":"SMS"},"snowball":{"name":"Snowball"},"sns":{"name":"SNS","cors":true},"sqs":{"name":"SQS","cors":true},"ssm":{"name":"SSM","cors":true},"storagegateway":{"name":"StorageGateway","cors":true},"stepfunctions":{"prefix":"states","name":"StepFunctions"},"sts":{"name":"STS","cors":true},"support":{"name":"Support"},"swf":{"name":"SWF"},"xray":{"name":"XRay","cors":true},"waf":{"name":"WAF","cors":true},"wafregional":{"prefix":"waf-regional","name":"WAFRegional"},"workdocs":{"name":"WorkDocs","cors":true},"workspaces":{"name":"WorkSpaces"},"codestar":{"name":"CodeStar"},"lexmodelbuildingservice":{"prefix":"lex-models","name":"LexModelBuildingService","cors":true},"marketplaceentitlementservice":{"prefix":"entitlement.marketplace","name":"MarketplaceEntitlementService"},"athena":{"name":"Athena","cors":true},"greengrass":{"name":"Greengrass"},"dax":{"name":"DAX"},"migrationhub":{"prefix":"AWSMigrationHub","name":"MigrationHub"},"cloudhsmv2":{"name":"CloudHSMV2","cors":true},"glue":{"name":"Glue"},"mobile":{"name":"Mobile"},"pricing":{"name":"Pricing","cors":true},"costexplorer":{"prefix":"ce","name":"CostExplorer","cors":true},"mediaconvert":{"name":"MediaConvert"},"medialive":{"name":"MediaLive"},"mediapackage":{"name":"MediaPackage"},"mediastore":{"name":"MediaStore"},"mediastoredata":{"prefix":"mediastore-data","name":"MediaStoreData","cors":true},"appsync":{"name":"AppSync"},"guardduty":{"name":"GuardDuty"},"mq":{"name":"MQ"},"comprehend":{"name":"Comprehend","cors":true},"iotjobsdataplane":{"prefix":"iot-jobs-data","name":"IoTJobsDataPlane"},"kinesisvideoarchivedmedia":{"prefix":"kinesis-video-archived-media","name":"KinesisVideoArchivedMedia","cors":true},"kinesisvideomedia":{"prefix":"kinesis-video-media","name":"KinesisVideoMedia","cors":true},"kinesisvideo":{"name":"KinesisVideo","cors":true},"sagemakerruntime":{"prefix":"runtime.sagemaker","name":"SageMakerRuntime"},"sagemaker":{"name":"SageMaker"},"translate":{"name":"Translate","cors":true},"resourcegroups":{"prefix":"resource-groups","name":"ResourceGroups","cors":true},"alexaforbusiness":{"name":"AlexaForBusiness"},"cloud9":{"name":"Cloud9"},"serverlessapplicationrepository":{"prefix":"serverlessrepo","name":"ServerlessApplicationRepository"},"servicediscovery":{"name":"ServiceDiscovery"},"workmail":{"name":"WorkMail"},"autoscalingplans":{"prefix":"autoscaling-plans","name":"AutoScalingPlans"},"transcribeservice":{"prefix":"transcribe","name":"TranscribeService"},"connect":{"name":"Connect","cors":true},"acmpca":{"prefix":"acm-pca","name":"ACMPCA"},"fms":{"name":"FMS"},"secretsmanager":{"name":"SecretsManager","cors":true},"iotanalytics":{"name":"IoTAnalytics","cors":true},"iot1clickdevicesservice":{"prefix":"iot1click-devices","name":"IoT1ClickDevicesService"},"iot1clickprojects":{"prefix":"iot1click-projects","name":"IoT1ClickProjects"},"pi":{"name":"PI"},"neptune":{"name":"Neptune"},"mediatailor":{"name":"MediaTailor"},"eks":{"name":"EKS"},"macie":{"name":"Macie"},"dlm":{"name":"DLM"},"signer":{"name":"Signer"},"chime":{"name":"Chime"},"pinpointemail":{"prefix":"pinpoint-email","name":"PinpointEmail"},"ram":{"name":"RAM"},"route53resolver":{"name":"Route53Resolver"},"pinpointsmsvoice":{"prefix":"sms-voice","name":"PinpointSMSVoice"},"quicksight":{"name":"QuickSight"},"rdsdataservice":{"prefix":"rds-data","name":"RDSDataService"},"amplify":{"name":"Amplify"},"datasync":{"name":"DataSync"},"robomaker":{"name":"RoboMaker"},"transfer":{"name":"Transfer"},"globalaccelerator":{"name":"GlobalAccelerator"},"comprehendmedical":{"name":"ComprehendMedical","cors":true},"kinesisanalyticsv2":{"name":"KinesisAnalyticsV2"},"mediaconnect":{"name":"MediaConnect"},"fsx":{"name":"FSx"},"securityhub":{"name":"SecurityHub"},"appmesh":{"name":"AppMesh","versions":["2018-10-01*"]},"licensemanager":{"prefix":"license-manager","name":"LicenseManager"},"kafka":{"name":"Kafka"},"apigatewaymanagementapi":{"name":"ApiGatewayManagementApi"},"apigatewayv2":{"name":"ApiGatewayV2"},"docdb":{"name":"DocDB"},"backup":{"name":"Backup"},"worklink":{"name":"WorkLink"},"textract":{"name":"Textract"},"managedblockchain":{"name":"ManagedBlockchain"},"mediapackagevod":{"prefix":"mediapackage-vod","name":"MediaPackageVod"},"groundstation":{"name":"GroundStation"},"iotthingsgraph":{"name":"IoTThingsGraph"},"iotevents":{"name":"IoTEvents"},"ioteventsdata":{"prefix":"iotevents-data","name":"IoTEventsData"},"personalize":{"name":"Personalize","cors":true},"personalizeevents":{"prefix":"personalize-events","name":"PersonalizeEvents","cors":true},"personalizeruntime":{"prefix":"personalize-runtime","name":"PersonalizeRuntime","cors":true},"applicationinsights":{"prefix":"application-insights","name":"ApplicationInsights"},"servicequotas":{"prefix":"service-quotas","name":"ServiceQuotas"},"ec2instanceconnect":{"prefix":"ec2-instance-connect","name":"EC2InstanceConnect"},"eventbridge":{"name":"EventBridge"},"lakeformation":{"name":"LakeFormation"},"forecastservice":{"prefix":"forecast","name":"ForecastService","cors":true},"forecastqueryservice":{"prefix":"forecastquery","name":"ForecastQueryService","cors":true},"qldb":{"name":"QLDB"},"qldbsession":{"prefix":"qldb-session","name":"QLDBSession"},"workmailmessageflow":{"name":"WorkMailMessageFlow"},"codestarnotifications":{"prefix":"codestar-notifications","name":"CodeStarNotifications"},"savingsplans":{"name":"SavingsPlans"},"sso":{"name":"SSO"},"ssooidc":{"prefix":"sso-oidc","name":"SSOOIDC"},"marketplacecatalog":{"prefix":"marketplace-catalog","name":"MarketplaceCatalog","cors":true},"dataexchange":{"name":"DataExchange"},"sesv2":{"name":"SESV2"},"migrationhubconfig":{"prefix":"migrationhub-config","name":"MigrationHubConfig"},"connectparticipant":{"name":"ConnectParticipant"},"appconfig":{"name":"AppConfig"},"iotsecuretunneling":{"name":"IoTSecureTunneling"},"wafv2":{"name":"WAFV2"},"elasticinference":{"prefix":"elastic-inference","name":"ElasticInference"},"imagebuilder":{"name":"Imagebuilder"},"schemas":{"name":"Schemas"},"accessanalyzer":{"name":"AccessAnalyzer"},"codegurureviewer":{"prefix":"codeguru-reviewer","name":"CodeGuruReviewer"},"codeguruprofiler":{"name":"CodeGuruProfiler"},"computeoptimizer":{"prefix":"compute-optimizer","name":"ComputeOptimizer"},"frauddetector":{"name":"FraudDetector"},"kendra":{"name":"Kendra"},"networkmanager":{"name":"NetworkManager"},"outposts":{"name":"Outposts"},"augmentedairuntime":{"prefix":"sagemaker-a2i-runtime","name":"AugmentedAIRuntime"},"ebs":{"name":"EBS"},"kinesisvideosignalingchannels":{"prefix":"kinesis-video-signaling","name":"KinesisVideoSignalingChannels","cors":true},"detective":{"name":"Detective"},"codestarconnections":{"prefix":"codestar-connections","name":"CodeStarconnections"},"synthetics":{"name":"Synthetics"},"iotsitewise":{"name":"IoTSiteWise"},"macie2":{"name":"Macie2"},"codeartifact":{"name":"CodeArtifact"},"honeycode":{"name":"Honeycode"},"ivs":{"name":"IVS"},"braket":{"name":"Braket"},"identitystore":{"name":"IdentityStore"},"appflow":{"name":"Appflow"},"redshiftdata":{"prefix":"redshift-data","name":"RedshiftData"},"ssoadmin":{"prefix":"sso-admin","name":"SSOAdmin"},"timestreamquery":{"prefix":"timestream-query","name":"TimestreamQuery"},"timestreamwrite":{"prefix":"timestream-write","name":"TimestreamWrite"},"s3outposts":{"name":"S3Outposts"},"databrew":{"name":"DataBrew"},"servicecatalogappregistry":{"prefix":"servicecatalog-appregistry","name":"ServiceCatalogAppRegistry"},"networkfirewall":{"prefix":"network-firewall","name":"NetworkFirewall"},"mwaa":{"name":"MWAA"},"amplifybackend":{"name":"AmplifyBackend"},"appintegrations":{"name":"AppIntegrations"},"connectcontactlens":{"prefix":"connect-contact-lens","name":"ConnectContactLens"},"devopsguru":{"prefix":"devops-guru","name":"DevOpsGuru"},"ecrpublic":{"prefix":"ecr-public","name":"ECRPUBLIC"},"lookoutvision":{"name":"LookoutVision"},"sagemakerfeaturestoreruntime":{"prefix":"sagemaker-featurestore-runtime","name":"SageMakerFeatureStoreRuntime"},"customerprofiles":{"prefix":"customer-profiles","name":"CustomerProfiles"},"auditmanager":{"name":"AuditManager"},"emrcontainers":{"prefix":"emr-containers","name":"EMRcontainers"},"healthlake":{"name":"HealthLake"},"sagemakeredge":{"prefix":"sagemaker-edge","name":"SagemakerEdge"},"amp":{"name":"Amp"},"greengrassv2":{"name":"GreengrassV2"},"iotdeviceadvisor":{"name":"IotDeviceAdvisor"},"iotfleethub":{"name":"IoTFleetHub"},"iotwireless":{"name":"IoTWireless"},"location":{"name":"Location","cors":true},"wellarchitected":{"name":"WellArchitected"},"lexmodelsv2":{"prefix":"models.lex.v2","name":"LexModelsV2"},"lexruntimev2":{"prefix":"runtime.lex.v2","name":"LexRuntimeV2","cors":true},"fis":{"name":"Fis"},"lookoutmetrics":{"name":"LookoutMetrics"},"mgn":{"name":"Mgn"},"lookoutequipment":{"name":"LookoutEquipment"},"nimble":{"name":"Nimble"},"finspace":{"name":"Finspace"},"finspacedata":{"prefix":"finspace-data","name":"Finspacedata"},"ssmcontacts":{"prefix":"ssm-contacts","name":"SSMContacts"},"ssmincidents":{"prefix":"ssm-incidents","name":"SSMIncidents"},"applicationcostprofiler":{"name":"ApplicationCostProfiler"},"apprunner":{"name":"AppRunner"},"proton":{"name":"Proton"},"route53recoverycluster":{"prefix":"route53-recovery-cluster","name":"Route53RecoveryCluster"},"route53recoverycontrolconfig":{"prefix":"route53-recovery-control-config","name":"Route53RecoveryControlConfig"},"route53recoveryreadiness":{"prefix":"route53-recovery-readiness","name":"Route53RecoveryReadiness"},"chimesdkidentity":{"prefix":"chime-sdk-identity","name":"ChimeSDKIdentity"},"chimesdkmessaging":{"prefix":"chime-sdk-messaging","name":"ChimeSDKMessaging"},"snowdevicemanagement":{"prefix":"snow-device-management","name":"SnowDeviceManagement"},"memorydb":{"name":"MemoryDB"},"opensearch":{"name":"OpenSearch"},"kafkaconnect":{"name":"KafkaConnect"},"voiceid":{"prefix":"voice-id","name":"VoiceID"},"wisdom":{"name":"Wisdom"},"account":{"name":"Account"},"cloudcontrol":{"name":"CloudControl"},"grafana":{"name":"Grafana"},"panorama":{"name":"Panorama"},"chimesdkmeetings":{"prefix":"chime-sdk-meetings","name":"ChimeSDKMeetings"},"resiliencehub":{"name":"Resiliencehub"},"migrationhubstrategy":{"name":"MigrationHubStrategy"},"appconfigdata":{"name":"AppConfigData"},"drs":{"name":"Drs"},"migrationhubrefactorspaces":{"prefix":"migration-hub-refactor-spaces","name":"MigrationHubRefactorSpaces"},"evidently":{"name":"Evidently"},"inspector2":{"name":"Inspector2"},"rbin":{"name":"Rbin"},"rum":{"name":"RUM"},"backupgateway":{"prefix":"backup-gateway","name":"BackupGateway"},"iottwinmaker":{"name":"IoTTwinMaker"},"workspacesweb":{"prefix":"workspaces-web","name":"WorkSpacesWeb"},"amplifyuibuilder":{"name":"AmplifyUIBuilder"},"keyspaces":{"name":"Keyspaces"},"billingconductor":{"name":"Billingconductor"},"gamesparks":{"name":"GameSparks"},"pinpointsmsvoicev2":{"prefix":"pinpoint-sms-voice-v2","name":"PinpointSMSVoiceV2"},"ivschat":{"name":"Ivschat"},"chimesdkmediapipelines":{"prefix":"chime-sdk-media-pipelines","name":"ChimeSDKMediaPipelines"},"emrserverless":{"prefix":"emr-serverless","name":"EMRServerless"},"m2":{"name":"M2"},"connectcampaigns":{"name":"ConnectCampaigns"},"redshiftserverless":{"prefix":"redshift-serverless","name":"RedshiftServerless"},"rolesanywhere":{"name":"RolesAnywhere"},"licensemanagerusersubscriptions":{"prefix":"license-manager-user-subscriptions","name":"LicenseManagerUserSubscriptions"},"backupstorage":{"name":"BackupStorage"},"privatenetworks":{"name":"PrivateNetworks"},"supportapp":{"prefix":"support-app","name":"SupportApp"},"controltower":{"name":"ControlTower"},"iotfleetwise":{"name":"IoTFleetWise"},"migrationhuborchestrator":{"name":"MigrationHubOrchestrator"},"connectcases":{"name":"ConnectCases"}}; /***/ }), @@ -12719,52 +15780,21 @@ AWS.HttpClient.getInstance = function getInstance() { /***/ 715: /***/ (function(module) { -module.exports = {"version":"2.0","metadata":{"apiVersion":"2011-06-15","endpointPrefix":"sts","globalEndpoint":"sts.amazonaws.com","protocol":"query","serviceAbbreviation":"AWS STS","serviceFullName":"AWS Security Token Service","serviceId":"STS","signatureVersion":"v4","uid":"sts-2011-06-15","xmlNamespace":"https://sts.amazonaws.com/doc/2011-06-15/"},"operations":{"AssumeRole":{"input":{"type":"structure","required":["RoleArn","RoleSessionName"],"members":{"RoleArn":{},"RoleSessionName":{},"PolicyArns":{"shape":"S4"},"Policy":{},"DurationSeconds":{"type":"integer"},"Tags":{"shape":"S8"},"TransitiveTagKeys":{"type":"list","member":{}},"ExternalId":{},"SerialNumber":{},"TokenCode":{}}},"output":{"resultWrapper":"AssumeRoleResult","type":"structure","members":{"Credentials":{"shape":"Sh"},"AssumedRoleUser":{"shape":"Sm"},"PackedPolicySize":{"type":"integer"}}}},"AssumeRoleWithSAML":{"input":{"type":"structure","required":["RoleArn","PrincipalArn","SAMLAssertion"],"members":{"RoleArn":{},"PrincipalArn":{},"SAMLAssertion":{"type":"string","sensitive":true},"PolicyArns":{"shape":"S4"},"Policy":{},"DurationSeconds":{"type":"integer"}}},"output":{"resultWrapper":"AssumeRoleWithSAMLResult","type":"structure","members":{"Credentials":{"shape":"Sh"},"AssumedRoleUser":{"shape":"Sm"},"PackedPolicySize":{"type":"integer"},"Subject":{},"SubjectType":{},"Issuer":{},"Audience":{},"NameQualifier":{}}}},"AssumeRoleWithWebIdentity":{"input":{"type":"structure","required":["RoleArn","RoleSessionName","WebIdentityToken"],"members":{"RoleArn":{},"RoleSessionName":{},"WebIdentityToken":{"type":"string","sensitive":true},"ProviderId":{},"PolicyArns":{"shape":"S4"},"Policy":{},"DurationSeconds":{"type":"integer"}}},"output":{"resultWrapper":"AssumeRoleWithWebIdentityResult","type":"structure","members":{"Credentials":{"shape":"Sh"},"SubjectFromWebIdentityToken":{},"AssumedRoleUser":{"shape":"Sm"},"PackedPolicySize":{"type":"integer"},"Provider":{},"Audience":{}}}},"DecodeAuthorizationMessage":{"input":{"type":"structure","required":["EncodedMessage"],"members":{"EncodedMessage":{}}},"output":{"resultWrapper":"DecodeAuthorizationMessageResult","type":"structure","members":{"DecodedMessage":{}}}},"GetAccessKeyInfo":{"input":{"type":"structure","required":["AccessKeyId"],"members":{"AccessKeyId":{}}},"output":{"resultWrapper":"GetAccessKeyInfoResult","type":"structure","members":{"Account":{}}}},"GetCallerIdentity":{"input":{"type":"structure","members":{}},"output":{"resultWrapper":"GetCallerIdentityResult","type":"structure","members":{"UserId":{},"Account":{},"Arn":{}}}},"GetFederationToken":{"input":{"type":"structure","required":["Name"],"members":{"Name":{},"Policy":{},"PolicyArns":{"shape":"S4"},"DurationSeconds":{"type":"integer"},"Tags":{"shape":"S8"}}},"output":{"resultWrapper":"GetFederationTokenResult","type":"structure","members":{"Credentials":{"shape":"Sh"},"FederatedUser":{"type":"structure","required":["FederatedUserId","Arn"],"members":{"FederatedUserId":{},"Arn":{}}},"PackedPolicySize":{"type":"integer"}}}},"GetSessionToken":{"input":{"type":"structure","members":{"DurationSeconds":{"type":"integer"},"SerialNumber":{},"TokenCode":{}}},"output":{"resultWrapper":"GetSessionTokenResult","type":"structure","members":{"Credentials":{"shape":"Sh"}}}}},"shapes":{"S4":{"type":"list","member":{"type":"structure","members":{"arn":{}}}},"S8":{"type":"list","member":{"type":"structure","required":["Key","Value"],"members":{"Key":{},"Value":{}}}},"Sh":{"type":"structure","required":["AccessKeyId","SecretAccessKey","SessionToken","Expiration"],"members":{"AccessKeyId":{},"SecretAccessKey":{},"SessionToken":{},"Expiration":{"type":"timestamp"}}},"Sm":{"type":"structure","required":["AssumedRoleId","Arn"],"members":{"AssumedRoleId":{},"Arn":{}}}}}; +module.exports = {"version":"2.0","metadata":{"apiVersion":"2011-06-15","endpointPrefix":"sts","globalEndpoint":"sts.amazonaws.com","protocol":"query","serviceAbbreviation":"AWS STS","serviceFullName":"AWS Security Token Service","serviceId":"STS","signatureVersion":"v4","uid":"sts-2011-06-15","xmlNamespace":"https://sts.amazonaws.com/doc/2011-06-15/"},"operations":{"AssumeRole":{"input":{"type":"structure","required":["RoleArn","RoleSessionName"],"members":{"RoleArn":{},"RoleSessionName":{},"PolicyArns":{"shape":"S4"},"Policy":{},"DurationSeconds":{"type":"integer"},"Tags":{"shape":"S8"},"TransitiveTagKeys":{"type":"list","member":{}},"ExternalId":{},"SerialNumber":{},"TokenCode":{},"SourceIdentity":{}}},"output":{"resultWrapper":"AssumeRoleResult","type":"structure","members":{"Credentials":{"shape":"Si"},"AssumedRoleUser":{"shape":"Sn"},"PackedPolicySize":{"type":"integer"},"SourceIdentity":{}}}},"AssumeRoleWithSAML":{"input":{"type":"structure","required":["RoleArn","PrincipalArn","SAMLAssertion"],"members":{"RoleArn":{},"PrincipalArn":{},"SAMLAssertion":{},"PolicyArns":{"shape":"S4"},"Policy":{},"DurationSeconds":{"type":"integer"}}},"output":{"resultWrapper":"AssumeRoleWithSAMLResult","type":"structure","members":{"Credentials":{"shape":"Si"},"AssumedRoleUser":{"shape":"Sn"},"PackedPolicySize":{"type":"integer"},"Subject":{},"SubjectType":{},"Issuer":{},"Audience":{},"NameQualifier":{},"SourceIdentity":{}}}},"AssumeRoleWithWebIdentity":{"input":{"type":"structure","required":["RoleArn","RoleSessionName","WebIdentityToken"],"members":{"RoleArn":{},"RoleSessionName":{},"WebIdentityToken":{},"ProviderId":{},"PolicyArns":{"shape":"S4"},"Policy":{},"DurationSeconds":{"type":"integer"}}},"output":{"resultWrapper":"AssumeRoleWithWebIdentityResult","type":"structure","members":{"Credentials":{"shape":"Si"},"SubjectFromWebIdentityToken":{},"AssumedRoleUser":{"shape":"Sn"},"PackedPolicySize":{"type":"integer"},"Provider":{},"Audience":{},"SourceIdentity":{}}}},"DecodeAuthorizationMessage":{"input":{"type":"structure","required":["EncodedMessage"],"members":{"EncodedMessage":{}}},"output":{"resultWrapper":"DecodeAuthorizationMessageResult","type":"structure","members":{"DecodedMessage":{}}}},"GetAccessKeyInfo":{"input":{"type":"structure","required":["AccessKeyId"],"members":{"AccessKeyId":{}}},"output":{"resultWrapper":"GetAccessKeyInfoResult","type":"structure","members":{"Account":{}}}},"GetCallerIdentity":{"input":{"type":"structure","members":{}},"output":{"resultWrapper":"GetCallerIdentityResult","type":"structure","members":{"UserId":{},"Account":{},"Arn":{}}}},"GetFederationToken":{"input":{"type":"structure","required":["Name"],"members":{"Name":{},"Policy":{},"PolicyArns":{"shape":"S4"},"DurationSeconds":{"type":"integer"},"Tags":{"shape":"S8"}}},"output":{"resultWrapper":"GetFederationTokenResult","type":"structure","members":{"Credentials":{"shape":"Si"},"FederatedUser":{"type":"structure","required":["FederatedUserId","Arn"],"members":{"FederatedUserId":{},"Arn":{}}},"PackedPolicySize":{"type":"integer"}}}},"GetSessionToken":{"input":{"type":"structure","members":{"DurationSeconds":{"type":"integer"},"SerialNumber":{},"TokenCode":{}}},"output":{"resultWrapper":"GetSessionTokenResult","type":"structure","members":{"Credentials":{"shape":"Si"}}}}},"shapes":{"S4":{"type":"list","member":{"type":"structure","members":{"arn":{}}}},"S8":{"type":"list","member":{"type":"structure","required":["Key","Value"],"members":{"Key":{},"Value":{}}}},"Si":{"type":"structure","required":["AccessKeyId","SecretAccessKey","SessionToken","Expiration"],"members":{"AccessKeyId":{},"SecretAccessKey":{},"SessionToken":{},"Expiration":{"type":"timestamp"}}},"Sn":{"type":"structure","required":["AssumedRoleId","Arn"],"members":{"AssumedRoleId":{},"Arn":{}}}}}; /***/ }), /***/ 721: /***/ (function(module) { -module.exports = {"version":"2.0","metadata":{"apiVersion":"2014-10-06","endpointPrefix":"codedeploy","jsonVersion":"1.1","protocol":"json","serviceAbbreviation":"CodeDeploy","serviceFullName":"AWS CodeDeploy","serviceId":"CodeDeploy","signatureVersion":"v4","targetPrefix":"CodeDeploy_20141006","uid":"codedeploy-2014-10-06"},"operations":{"AddTagsToOnPremisesInstances":{"input":{"type":"structure","required":["tags","instanceNames"],"members":{"tags":{"shape":"S2"},"instanceNames":{"shape":"S6"}}}},"BatchGetApplicationRevisions":{"input":{"type":"structure","required":["applicationName","revisions"],"members":{"applicationName":{},"revisions":{"shape":"Sa"}}},"output":{"type":"structure","members":{"applicationName":{},"errorMessage":{},"revisions":{"type":"list","member":{"type":"structure","members":{"revisionLocation":{"shape":"Sb"},"genericRevisionInfo":{"shape":"Su"}}}}}}},"BatchGetApplications":{"input":{"type":"structure","required":["applicationNames"],"members":{"applicationNames":{"shape":"S10"}}},"output":{"type":"structure","members":{"applicationsInfo":{"type":"list","member":{"shape":"S13"}}}}},"BatchGetDeploymentGroups":{"input":{"type":"structure","required":["applicationName","deploymentGroupNames"],"members":{"applicationName":{},"deploymentGroupNames":{"shape":"Sw"}}},"output":{"type":"structure","members":{"deploymentGroupsInfo":{"type":"list","member":{"shape":"S1b"}},"errorMessage":{}}}},"BatchGetDeploymentInstances":{"input":{"type":"structure","required":["deploymentId","instanceIds"],"members":{"deploymentId":{},"instanceIds":{"shape":"S31"}}},"output":{"type":"structure","members":{"instancesSummary":{"type":"list","member":{"shape":"S35"}},"errorMessage":{}}},"deprecated":true,"deprecatedMessage":"This operation is deprecated, use BatchGetDeploymentTargets instead."},"BatchGetDeploymentTargets":{"input":{"type":"structure","members":{"deploymentId":{},"targetIds":{"shape":"S3i"}}},"output":{"type":"structure","members":{"deploymentTargets":{"type":"list","member":{"shape":"S3m"}}}}},"BatchGetDeployments":{"input":{"type":"structure","required":["deploymentIds"],"members":{"deploymentIds":{"shape":"S48"}}},"output":{"type":"structure","members":{"deploymentsInfo":{"type":"list","member":{"shape":"S4b"}}}}},"BatchGetOnPremisesInstances":{"input":{"type":"structure","required":["instanceNames"],"members":{"instanceNames":{"shape":"S6"}}},"output":{"type":"structure","members":{"instanceInfos":{"type":"list","member":{"shape":"S4r"}}}}},"ContinueDeployment":{"input":{"type":"structure","members":{"deploymentId":{},"deploymentWaitType":{}}}},"CreateApplication":{"input":{"type":"structure","required":["applicationName"],"members":{"applicationName":{},"computePlatform":{},"tags":{"shape":"S2"}}},"output":{"type":"structure","members":{"applicationId":{}}}},"CreateDeployment":{"input":{"type":"structure","required":["applicationName"],"members":{"applicationName":{},"deploymentGroupName":{},"revision":{"shape":"Sb"},"deploymentConfigName":{},"description":{},"ignoreApplicationStopFailures":{"type":"boolean"},"targetInstances":{"shape":"S4i"},"autoRollbackConfiguration":{"shape":"S1z"},"updateOutdatedInstancesOnly":{"type":"boolean"},"fileExistsBehavior":{}}},"output":{"type":"structure","members":{"deploymentId":{}}}},"CreateDeploymentConfig":{"input":{"type":"structure","required":["deploymentConfigName"],"members":{"deploymentConfigName":{},"minimumHealthyHosts":{"shape":"S52"},"trafficRoutingConfig":{"shape":"S55"},"computePlatform":{}}},"output":{"type":"structure","members":{"deploymentConfigId":{}}}},"CreateDeploymentGroup":{"input":{"type":"structure","required":["applicationName","deploymentGroupName","serviceRoleArn"],"members":{"applicationName":{},"deploymentGroupName":{},"deploymentConfigName":{},"ec2TagFilters":{"shape":"S1e"},"onPremisesInstanceTagFilters":{"shape":"S1h"},"autoScalingGroups":{"shape":"S4j"},"serviceRoleArn":{},"triggerConfigurations":{"shape":"S1p"},"alarmConfiguration":{"shape":"S1v"},"autoRollbackConfiguration":{"shape":"S1z"},"deploymentStyle":{"shape":"S22"},"blueGreenDeploymentConfiguration":{"shape":"S25"},"loadBalancerInfo":{"shape":"S2d"},"ec2TagSet":{"shape":"S2s"},"ecsServices":{"shape":"S2w"},"onPremisesTagSet":{"shape":"S2u"},"tags":{"shape":"S2"}}},"output":{"type":"structure","members":{"deploymentGroupId":{}}}},"DeleteApplication":{"input":{"type":"structure","required":["applicationName"],"members":{"applicationName":{}}}},"DeleteDeploymentConfig":{"input":{"type":"structure","required":["deploymentConfigName"],"members":{"deploymentConfigName":{}}}},"DeleteDeploymentGroup":{"input":{"type":"structure","required":["applicationName","deploymentGroupName"],"members":{"applicationName":{},"deploymentGroupName":{}}},"output":{"type":"structure","members":{"hooksNotCleanedUp":{"shape":"S1k"}}}},"DeleteGitHubAccountToken":{"input":{"type":"structure","members":{"tokenName":{}}},"output":{"type":"structure","members":{"tokenName":{}}}},"DeleteResourcesByExternalId":{"input":{"type":"structure","members":{"externalId":{}}},"output":{"type":"structure","members":{}}},"DeregisterOnPremisesInstance":{"input":{"type":"structure","required":["instanceName"],"members":{"instanceName":{}}}},"GetApplication":{"input":{"type":"structure","required":["applicationName"],"members":{"applicationName":{}}},"output":{"type":"structure","members":{"application":{"shape":"S13"}}}},"GetApplicationRevision":{"input":{"type":"structure","required":["applicationName","revision"],"members":{"applicationName":{},"revision":{"shape":"Sb"}}},"output":{"type":"structure","members":{"applicationName":{},"revision":{"shape":"Sb"},"revisionInfo":{"shape":"Su"}}}},"GetDeployment":{"input":{"type":"structure","required":["deploymentId"],"members":{"deploymentId":{}}},"output":{"type":"structure","members":{"deploymentInfo":{"shape":"S4b"}}}},"GetDeploymentConfig":{"input":{"type":"structure","required":["deploymentConfigName"],"members":{"deploymentConfigName":{}}},"output":{"type":"structure","members":{"deploymentConfigInfo":{"type":"structure","members":{"deploymentConfigId":{},"deploymentConfigName":{},"minimumHealthyHosts":{"shape":"S52"},"createTime":{"type":"timestamp"},"computePlatform":{},"trafficRoutingConfig":{"shape":"S55"}}}}}},"GetDeploymentGroup":{"input":{"type":"structure","required":["applicationName","deploymentGroupName"],"members":{"applicationName":{},"deploymentGroupName":{}}},"output":{"type":"structure","members":{"deploymentGroupInfo":{"shape":"S1b"}}}},"GetDeploymentInstance":{"input":{"type":"structure","required":["deploymentId","instanceId"],"members":{"deploymentId":{},"instanceId":{}}},"output":{"type":"structure","members":{"instanceSummary":{"shape":"S35"}}},"deprecated":true,"deprecatedMessage":"This operation is deprecated, use GetDeploymentTarget instead."},"GetDeploymentTarget":{"input":{"type":"structure","members":{"deploymentId":{},"targetId":{}}},"output":{"type":"structure","members":{"deploymentTarget":{"shape":"S3m"}}}},"GetOnPremisesInstance":{"input":{"type":"structure","required":["instanceName"],"members":{"instanceName":{}}},"output":{"type":"structure","members":{"instanceInfo":{"shape":"S4r"}}}},"ListApplicationRevisions":{"input":{"type":"structure","required":["applicationName"],"members":{"applicationName":{},"sortBy":{},"sortOrder":{},"s3Bucket":{},"s3KeyPrefix":{},"deployed":{},"nextToken":{}}},"output":{"type":"structure","members":{"revisions":{"shape":"Sa"},"nextToken":{}}}},"ListApplications":{"input":{"type":"structure","members":{"nextToken":{}}},"output":{"type":"structure","members":{"applications":{"shape":"S10"},"nextToken":{}}}},"ListDeploymentConfigs":{"input":{"type":"structure","members":{"nextToken":{}}},"output":{"type":"structure","members":{"deploymentConfigsList":{"type":"list","member":{}},"nextToken":{}}}},"ListDeploymentGroups":{"input":{"type":"structure","required":["applicationName"],"members":{"applicationName":{},"nextToken":{}}},"output":{"type":"structure","members":{"applicationName":{},"deploymentGroups":{"shape":"Sw"},"nextToken":{}}}},"ListDeploymentInstances":{"input":{"type":"structure","required":["deploymentId"],"members":{"deploymentId":{},"nextToken":{},"instanceStatusFilter":{"type":"list","member":{"shape":"S36"}},"instanceTypeFilter":{"type":"list","member":{}}}},"output":{"type":"structure","members":{"instancesList":{"shape":"S31"},"nextToken":{}}},"deprecated":true,"deprecatedMessage":"This operation is deprecated, use ListDeploymentTargets instead."},"ListDeploymentTargets":{"input":{"type":"structure","members":{"deploymentId":{},"nextToken":{},"targetFilters":{"type":"map","key":{},"value":{"type":"list","member":{}}}}},"output":{"type":"structure","members":{"targetIds":{"shape":"S3i"},"nextToken":{}}}},"ListDeployments":{"input":{"type":"structure","members":{"applicationName":{},"deploymentGroupName":{},"externalId":{},"includeOnlyStatuses":{"type":"list","member":{}},"createTimeRange":{"type":"structure","members":{"start":{"type":"timestamp"},"end":{"type":"timestamp"}}},"nextToken":{}}},"output":{"type":"structure","members":{"deployments":{"shape":"S48"},"nextToken":{}}}},"ListGitHubAccountTokenNames":{"input":{"type":"structure","members":{"nextToken":{}}},"output":{"type":"structure","members":{"tokenNameList":{"type":"list","member":{}},"nextToken":{}}}},"ListOnPremisesInstances":{"input":{"type":"structure","members":{"registrationStatus":{},"tagFilters":{"shape":"S1h"},"nextToken":{}}},"output":{"type":"structure","members":{"instanceNames":{"shape":"S6"},"nextToken":{}}}},"ListTagsForResource":{"input":{"type":"structure","required":["ResourceArn"],"members":{"ResourceArn":{},"NextToken":{}}},"output":{"type":"structure","members":{"Tags":{"shape":"S2"},"NextToken":{}}}},"PutLifecycleEventHookExecutionStatus":{"input":{"type":"structure","members":{"deploymentId":{},"lifecycleEventHookExecutionId":{},"status":{}}},"output":{"type":"structure","members":{"lifecycleEventHookExecutionId":{}}}},"RegisterApplicationRevision":{"input":{"type":"structure","required":["applicationName","revision"],"members":{"applicationName":{},"description":{},"revision":{"shape":"Sb"}}}},"RegisterOnPremisesInstance":{"input":{"type":"structure","required":["instanceName"],"members":{"instanceName":{},"iamSessionArn":{},"iamUserArn":{}}}},"RemoveTagsFromOnPremisesInstances":{"input":{"type":"structure","required":["tags","instanceNames"],"members":{"tags":{"shape":"S2"},"instanceNames":{"shape":"S6"}}}},"SkipWaitTimeForInstanceTermination":{"input":{"type":"structure","members":{"deploymentId":{}}},"deprecated":true,"deprecatedMessage":"This operation is deprecated, use ContinueDeployment with DeploymentWaitType instead."},"StopDeployment":{"input":{"type":"structure","required":["deploymentId"],"members":{"deploymentId":{},"autoRollbackEnabled":{"type":"boolean"}}},"output":{"type":"structure","members":{"status":{},"statusMessage":{}}}},"TagResource":{"input":{"type":"structure","required":["ResourceArn","Tags"],"members":{"ResourceArn":{},"Tags":{"shape":"S2"}}},"output":{"type":"structure","members":{}}},"UntagResource":{"input":{"type":"structure","required":["ResourceArn","TagKeys"],"members":{"ResourceArn":{},"TagKeys":{"type":"list","member":{}}}},"output":{"type":"structure","members":{}}},"UpdateApplication":{"input":{"type":"structure","members":{"applicationName":{},"newApplicationName":{}}}},"UpdateDeploymentGroup":{"input":{"type":"structure","required":["applicationName","currentDeploymentGroupName"],"members":{"applicationName":{},"currentDeploymentGroupName":{},"newDeploymentGroupName":{},"deploymentConfigName":{},"ec2TagFilters":{"shape":"S1e"},"onPremisesInstanceTagFilters":{"shape":"S1h"},"autoScalingGroups":{"shape":"S4j"},"serviceRoleArn":{},"triggerConfigurations":{"shape":"S1p"},"alarmConfiguration":{"shape":"S1v"},"autoRollbackConfiguration":{"shape":"S1z"},"deploymentStyle":{"shape":"S22"},"blueGreenDeploymentConfiguration":{"shape":"S25"},"loadBalancerInfo":{"shape":"S2d"},"ec2TagSet":{"shape":"S2s"},"ecsServices":{"shape":"S2w"},"onPremisesTagSet":{"shape":"S2u"}}},"output":{"type":"structure","members":{"hooksNotCleanedUp":{"shape":"S1k"}}}}},"shapes":{"S2":{"type":"list","member":{"type":"structure","members":{"Key":{},"Value":{}}}},"S6":{"type":"list","member":{}},"Sa":{"type":"list","member":{"shape":"Sb"}},"Sb":{"type":"structure","members":{"revisionType":{},"s3Location":{"type":"structure","members":{"bucket":{},"key":{},"bundleType":{},"version":{},"eTag":{}}},"gitHubLocation":{"type":"structure","members":{"repository":{},"commitId":{}}},"string":{"type":"structure","members":{"content":{},"sha256":{}},"deprecated":true,"deprecatedMessage":"RawString and String revision type are deprecated, use AppSpecContent type instead."},"appSpecContent":{"type":"structure","members":{"content":{},"sha256":{}}}}},"Su":{"type":"structure","members":{"description":{},"deploymentGroups":{"shape":"Sw"},"firstUsedTime":{"type":"timestamp"},"lastUsedTime":{"type":"timestamp"},"registerTime":{"type":"timestamp"}}},"Sw":{"type":"list","member":{}},"S10":{"type":"list","member":{}},"S13":{"type":"structure","members":{"applicationId":{},"applicationName":{},"createTime":{"type":"timestamp"},"linkedToGitHub":{"type":"boolean"},"gitHubAccountName":{},"computePlatform":{}}},"S1b":{"type":"structure","members":{"applicationName":{},"deploymentGroupId":{},"deploymentGroupName":{},"deploymentConfigName":{},"ec2TagFilters":{"shape":"S1e"},"onPremisesInstanceTagFilters":{"shape":"S1h"},"autoScalingGroups":{"shape":"S1k"},"serviceRoleArn":{},"targetRevision":{"shape":"Sb"},"triggerConfigurations":{"shape":"S1p"},"alarmConfiguration":{"shape":"S1v"},"autoRollbackConfiguration":{"shape":"S1z"},"deploymentStyle":{"shape":"S22"},"blueGreenDeploymentConfiguration":{"shape":"S25"},"loadBalancerInfo":{"shape":"S2d"},"lastSuccessfulDeployment":{"shape":"S2p"},"lastAttemptedDeployment":{"shape":"S2p"},"ec2TagSet":{"shape":"S2s"},"onPremisesTagSet":{"shape":"S2u"},"computePlatform":{},"ecsServices":{"shape":"S2w"}}},"S1e":{"type":"list","member":{"type":"structure","members":{"Key":{},"Value":{},"Type":{}}}},"S1h":{"type":"list","member":{"type":"structure","members":{"Key":{},"Value":{},"Type":{}}}},"S1k":{"type":"list","member":{"type":"structure","members":{"name":{},"hook":{}}}},"S1p":{"type":"list","member":{"type":"structure","members":{"triggerName":{},"triggerTargetArn":{},"triggerEvents":{"type":"list","member":{}}}}},"S1v":{"type":"structure","members":{"enabled":{"type":"boolean"},"ignorePollAlarmFailure":{"type":"boolean"},"alarms":{"type":"list","member":{"type":"structure","members":{"name":{}}}}}},"S1z":{"type":"structure","members":{"enabled":{"type":"boolean"},"events":{"type":"list","member":{}}}},"S22":{"type":"structure","members":{"deploymentType":{},"deploymentOption":{}}},"S25":{"type":"structure","members":{"terminateBlueInstancesOnDeploymentSuccess":{"type":"structure","members":{"action":{},"terminationWaitTimeInMinutes":{"type":"integer"}}},"deploymentReadyOption":{"type":"structure","members":{"actionOnTimeout":{},"waitTimeInMinutes":{"type":"integer"}}},"greenFleetProvisioningOption":{"type":"structure","members":{"action":{}}}}},"S2d":{"type":"structure","members":{"elbInfoList":{"type":"list","member":{"type":"structure","members":{"name":{}}}},"targetGroupInfoList":{"shape":"S2h"},"targetGroupPairInfoList":{"type":"list","member":{"type":"structure","members":{"targetGroups":{"shape":"S2h"},"prodTrafficRoute":{"shape":"S2m"},"testTrafficRoute":{"shape":"S2m"}}}}}},"S2h":{"type":"list","member":{"shape":"S2i"}},"S2i":{"type":"structure","members":{"name":{}}},"S2m":{"type":"structure","members":{"listenerArns":{"type":"list","member":{}}}},"S2p":{"type":"structure","members":{"deploymentId":{},"status":{},"endTime":{"type":"timestamp"},"createTime":{"type":"timestamp"}}},"S2s":{"type":"structure","members":{"ec2TagSetList":{"type":"list","member":{"shape":"S1e"}}}},"S2u":{"type":"structure","members":{"onPremisesTagSetList":{"type":"list","member":{"shape":"S1h"}}}},"S2w":{"type":"list","member":{"type":"structure","members":{"serviceName":{},"clusterName":{}}}},"S31":{"type":"list","member":{}},"S35":{"type":"structure","members":{"deploymentId":{},"instanceId":{},"status":{"shape":"S36"},"lastUpdatedAt":{"type":"timestamp"},"lifecycleEvents":{"shape":"S37"},"instanceType":{}},"deprecated":true,"deprecatedMessage":"InstanceSummary is deprecated, use DeploymentTarget instead."},"S36":{"type":"string","deprecated":true,"deprecatedMessage":"InstanceStatus is deprecated, use TargetStatus instead."},"S37":{"type":"list","member":{"type":"structure","members":{"lifecycleEventName":{},"diagnostics":{"type":"structure","members":{"errorCode":{},"scriptName":{},"message":{},"logTail":{}}},"startTime":{"type":"timestamp"},"endTime":{"type":"timestamp"},"status":{}}}},"S3i":{"type":"list","member":{}},"S3m":{"type":"structure","members":{"deploymentTargetType":{},"instanceTarget":{"type":"structure","members":{"deploymentId":{},"targetId":{},"targetArn":{},"status":{},"lastUpdatedAt":{"type":"timestamp"},"lifecycleEvents":{"shape":"S37"},"instanceLabel":{}}},"lambdaTarget":{"type":"structure","members":{"deploymentId":{},"targetId":{},"targetArn":{},"status":{},"lastUpdatedAt":{"type":"timestamp"},"lifecycleEvents":{"shape":"S37"},"lambdaFunctionInfo":{"type":"structure","members":{"functionName":{},"functionAlias":{},"currentVersion":{},"targetVersion":{},"targetVersionWeight":{"type":"double"}}}}},"ecsTarget":{"type":"structure","members":{"deploymentId":{},"targetId":{},"targetArn":{},"lastUpdatedAt":{"type":"timestamp"},"lifecycleEvents":{"shape":"S37"},"status":{},"taskSetsInfo":{"type":"list","member":{"type":"structure","members":{"identifer":{},"desiredCount":{"type":"long"},"pendingCount":{"type":"long"},"runningCount":{"type":"long"},"status":{},"trafficWeight":{"type":"double"},"targetGroup":{"shape":"S2i"},"taskSetLabel":{}}}}}},"cloudFormationTarget":{"type":"structure","members":{"deploymentId":{},"targetId":{},"lastUpdatedAt":{"type":"timestamp"},"lifecycleEvents":{"shape":"S37"},"status":{},"resourceType":{},"targetVersionWeight":{"type":"double"}}}}},"S48":{"type":"list","member":{}},"S4b":{"type":"structure","members":{"applicationName":{},"deploymentGroupName":{},"deploymentConfigName":{},"deploymentId":{},"previousRevision":{"shape":"Sb"},"revision":{"shape":"Sb"},"status":{},"errorInformation":{"type":"structure","members":{"code":{},"message":{}}},"createTime":{"type":"timestamp"},"startTime":{"type":"timestamp"},"completeTime":{"type":"timestamp"},"deploymentOverview":{"type":"structure","members":{"Pending":{"type":"long"},"InProgress":{"type":"long"},"Succeeded":{"type":"long"},"Failed":{"type":"long"},"Skipped":{"type":"long"},"Ready":{"type":"long"}}},"description":{},"creator":{},"ignoreApplicationStopFailures":{"type":"boolean"},"autoRollbackConfiguration":{"shape":"S1z"},"updateOutdatedInstancesOnly":{"type":"boolean"},"rollbackInfo":{"type":"structure","members":{"rollbackDeploymentId":{},"rollbackTriggeringDeploymentId":{},"rollbackMessage":{}}},"deploymentStyle":{"shape":"S22"},"targetInstances":{"shape":"S4i"},"instanceTerminationWaitTimeStarted":{"type":"boolean"},"blueGreenDeploymentConfiguration":{"shape":"S25"},"loadBalancerInfo":{"shape":"S2d"},"additionalDeploymentStatusInfo":{"type":"string","deprecated":true,"deprecatedMessage":"AdditionalDeploymentStatusInfo is deprecated, use DeploymentStatusMessageList instead."},"fileExistsBehavior":{},"deploymentStatusMessages":{"type":"list","member":{}},"computePlatform":{},"externalId":{}}},"S4i":{"type":"structure","members":{"tagFilters":{"shape":"S1e"},"autoScalingGroups":{"shape":"S4j"},"ec2TagSet":{"shape":"S2s"}}},"S4j":{"type":"list","member":{}},"S4r":{"type":"structure","members":{"instanceName":{},"iamSessionArn":{},"iamUserArn":{},"instanceArn":{},"registerTime":{"type":"timestamp"},"deregisterTime":{"type":"timestamp"},"tags":{"shape":"S2"}}},"S52":{"type":"structure","members":{"value":{"type":"integer"},"type":{}}},"S55":{"type":"structure","members":{"type":{},"timeBasedCanary":{"type":"structure","members":{"canaryPercentage":{"type":"integer"},"canaryInterval":{"type":"integer"}}},"timeBasedLinear":{"type":"structure","members":{"linearPercentage":{"type":"integer"},"linearInterval":{"type":"integer"}}}}}}}; - -/***/ }), - -/***/ 722: -/***/ (function(module) { - -/** - * Convert array of 16 byte values to UUID string format of the form: - * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX - */ -var byteToHex = []; -for (var i = 0; i < 256; ++i) { - byteToHex[i] = (i + 0x100).toString(16).substr(1); -} - -function bytesToUuid(buf, offset) { - var i = offset || 0; - var bth = byteToHex; - // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4 - return ([bth[buf[i++]], bth[buf[i++]], - bth[buf[i++]], bth[buf[i++]], '-', - bth[buf[i++]], bth[buf[i++]], '-', - bth[buf[i++]], bth[buf[i++]], '-', - bth[buf[i++]], bth[buf[i++]], '-', - bth[buf[i++]], bth[buf[i++]], - bth[buf[i++]], bth[buf[i++]], - bth[buf[i++]], bth[buf[i++]]]).join(''); -} - -module.exports = bytesToUuid; - +module.exports = {"version":"2.0","metadata":{"apiVersion":"2014-10-06","endpointPrefix":"codedeploy","jsonVersion":"1.1","protocol":"json","serviceAbbreviation":"CodeDeploy","serviceFullName":"AWS CodeDeploy","serviceId":"CodeDeploy","signatureVersion":"v4","targetPrefix":"CodeDeploy_20141006","uid":"codedeploy-2014-10-06"},"operations":{"AddTagsToOnPremisesInstances":{"input":{"type":"structure","required":["tags","instanceNames"],"members":{"tags":{"shape":"S2"},"instanceNames":{"shape":"S6"}}}},"BatchGetApplicationRevisions":{"input":{"type":"structure","required":["applicationName","revisions"],"members":{"applicationName":{},"revisions":{"shape":"Sa"}}},"output":{"type":"structure","members":{"applicationName":{},"errorMessage":{},"revisions":{"type":"list","member":{"type":"structure","members":{"revisionLocation":{"shape":"Sb"},"genericRevisionInfo":{"shape":"Su"}}}}}}},"BatchGetApplications":{"input":{"type":"structure","required":["applicationNames"],"members":{"applicationNames":{"shape":"S10"}}},"output":{"type":"structure","members":{"applicationsInfo":{"type":"list","member":{"shape":"S13"}}}}},"BatchGetDeploymentGroups":{"input":{"type":"structure","required":["applicationName","deploymentGroupNames"],"members":{"applicationName":{},"deploymentGroupNames":{"shape":"Sw"}}},"output":{"type":"structure","members":{"deploymentGroupsInfo":{"type":"list","member":{"shape":"S1b"}},"errorMessage":{}}}},"BatchGetDeploymentInstances":{"input":{"type":"structure","required":["deploymentId","instanceIds"],"members":{"deploymentId":{},"instanceIds":{"shape":"S32"}}},"output":{"type":"structure","members":{"instancesSummary":{"type":"list","member":{"shape":"S36"}},"errorMessage":{}}},"deprecated":true,"deprecatedMessage":"This operation is deprecated, use BatchGetDeploymentTargets instead."},"BatchGetDeploymentTargets":{"input":{"type":"structure","members":{"deploymentId":{},"targetIds":{"shape":"S3j"}}},"output":{"type":"structure","members":{"deploymentTargets":{"type":"list","member":{"shape":"S3n"}}}}},"BatchGetDeployments":{"input":{"type":"structure","required":["deploymentIds"],"members":{"deploymentIds":{"shape":"S49"}}},"output":{"type":"structure","members":{"deploymentsInfo":{"type":"list","member":{"shape":"S4c"}}}}},"BatchGetOnPremisesInstances":{"input":{"type":"structure","required":["instanceNames"],"members":{"instanceNames":{"shape":"S6"}}},"output":{"type":"structure","members":{"instanceInfos":{"type":"list","member":{"shape":"S4t"}}}}},"ContinueDeployment":{"input":{"type":"structure","members":{"deploymentId":{},"deploymentWaitType":{}}}},"CreateApplication":{"input":{"type":"structure","required":["applicationName"],"members":{"applicationName":{},"computePlatform":{},"tags":{"shape":"S2"}}},"output":{"type":"structure","members":{"applicationId":{}}}},"CreateDeployment":{"input":{"type":"structure","required":["applicationName"],"members":{"applicationName":{},"deploymentGroupName":{},"revision":{"shape":"Sb"},"deploymentConfigName":{},"description":{},"ignoreApplicationStopFailures":{"type":"boolean"},"targetInstances":{"shape":"S4j"},"autoRollbackConfiguration":{"shape":"S1z"},"updateOutdatedInstancesOnly":{"type":"boolean"},"fileExistsBehavior":{},"overrideAlarmConfiguration":{"shape":"S1v"}}},"output":{"type":"structure","members":{"deploymentId":{}}}},"CreateDeploymentConfig":{"input":{"type":"structure","required":["deploymentConfigName"],"members":{"deploymentConfigName":{},"minimumHealthyHosts":{"shape":"S54"},"trafficRoutingConfig":{"shape":"S57"},"computePlatform":{}}},"output":{"type":"structure","members":{"deploymentConfigId":{}}}},"CreateDeploymentGroup":{"input":{"type":"structure","required":["applicationName","deploymentGroupName","serviceRoleArn"],"members":{"applicationName":{},"deploymentGroupName":{},"deploymentConfigName":{},"ec2TagFilters":{"shape":"S1e"},"onPremisesInstanceTagFilters":{"shape":"S1h"},"autoScalingGroups":{"shape":"S4k"},"serviceRoleArn":{},"triggerConfigurations":{"shape":"S1p"},"alarmConfiguration":{"shape":"S1v"},"autoRollbackConfiguration":{"shape":"S1z"},"outdatedInstancesStrategy":{},"deploymentStyle":{"shape":"S22"},"blueGreenDeploymentConfiguration":{"shape":"S26"},"loadBalancerInfo":{"shape":"S2e"},"ec2TagSet":{"shape":"S2t"},"ecsServices":{"shape":"S2x"},"onPremisesTagSet":{"shape":"S2v"},"tags":{"shape":"S2"}}},"output":{"type":"structure","members":{"deploymentGroupId":{}}}},"DeleteApplication":{"input":{"type":"structure","required":["applicationName"],"members":{"applicationName":{}}}},"DeleteDeploymentConfig":{"input":{"type":"structure","required":["deploymentConfigName"],"members":{"deploymentConfigName":{}}}},"DeleteDeploymentGroup":{"input":{"type":"structure","required":["applicationName","deploymentGroupName"],"members":{"applicationName":{},"deploymentGroupName":{}}},"output":{"type":"structure","members":{"hooksNotCleanedUp":{"shape":"S1k"}}}},"DeleteGitHubAccountToken":{"input":{"type":"structure","members":{"tokenName":{}}},"output":{"type":"structure","members":{"tokenName":{}}}},"DeleteResourcesByExternalId":{"input":{"type":"structure","members":{"externalId":{}}},"output":{"type":"structure","members":{}}},"DeregisterOnPremisesInstance":{"input":{"type":"structure","required":["instanceName"],"members":{"instanceName":{}}}},"GetApplication":{"input":{"type":"structure","required":["applicationName"],"members":{"applicationName":{}}},"output":{"type":"structure","members":{"application":{"shape":"S13"}}}},"GetApplicationRevision":{"input":{"type":"structure","required":["applicationName","revision"],"members":{"applicationName":{},"revision":{"shape":"Sb"}}},"output":{"type":"structure","members":{"applicationName":{},"revision":{"shape":"Sb"},"revisionInfo":{"shape":"Su"}}}},"GetDeployment":{"input":{"type":"structure","required":["deploymentId"],"members":{"deploymentId":{}}},"output":{"type":"structure","members":{"deploymentInfo":{"shape":"S4c"}}}},"GetDeploymentConfig":{"input":{"type":"structure","required":["deploymentConfigName"],"members":{"deploymentConfigName":{}}},"output":{"type":"structure","members":{"deploymentConfigInfo":{"type":"structure","members":{"deploymentConfigId":{},"deploymentConfigName":{},"minimumHealthyHosts":{"shape":"S54"},"createTime":{"type":"timestamp"},"computePlatform":{},"trafficRoutingConfig":{"shape":"S57"}}}}}},"GetDeploymentGroup":{"input":{"type":"structure","required":["applicationName","deploymentGroupName"],"members":{"applicationName":{},"deploymentGroupName":{}}},"output":{"type":"structure","members":{"deploymentGroupInfo":{"shape":"S1b"}}}},"GetDeploymentInstance":{"input":{"type":"structure","required":["deploymentId","instanceId"],"members":{"deploymentId":{},"instanceId":{}}},"output":{"type":"structure","members":{"instanceSummary":{"shape":"S36"}}},"deprecated":true,"deprecatedMessage":"This operation is deprecated, use GetDeploymentTarget instead."},"GetDeploymentTarget":{"input":{"type":"structure","members":{"deploymentId":{},"targetId":{}}},"output":{"type":"structure","members":{"deploymentTarget":{"shape":"S3n"}}}},"GetOnPremisesInstance":{"input":{"type":"structure","required":["instanceName"],"members":{"instanceName":{}}},"output":{"type":"structure","members":{"instanceInfo":{"shape":"S4t"}}}},"ListApplicationRevisions":{"input":{"type":"structure","required":["applicationName"],"members":{"applicationName":{},"sortBy":{},"sortOrder":{},"s3Bucket":{},"s3KeyPrefix":{},"deployed":{},"nextToken":{}}},"output":{"type":"structure","members":{"revisions":{"shape":"Sa"},"nextToken":{}}}},"ListApplications":{"input":{"type":"structure","members":{"nextToken":{}}},"output":{"type":"structure","members":{"applications":{"shape":"S10"},"nextToken":{}}}},"ListDeploymentConfigs":{"input":{"type":"structure","members":{"nextToken":{}}},"output":{"type":"structure","members":{"deploymentConfigsList":{"type":"list","member":{}},"nextToken":{}}}},"ListDeploymentGroups":{"input":{"type":"structure","required":["applicationName"],"members":{"applicationName":{},"nextToken":{}}},"output":{"type":"structure","members":{"applicationName":{},"deploymentGroups":{"shape":"Sw"},"nextToken":{}}}},"ListDeploymentInstances":{"input":{"type":"structure","required":["deploymentId"],"members":{"deploymentId":{},"nextToken":{},"instanceStatusFilter":{"type":"list","member":{"shape":"S37"}},"instanceTypeFilter":{"type":"list","member":{}}}},"output":{"type":"structure","members":{"instancesList":{"shape":"S32"},"nextToken":{}}},"deprecated":true,"deprecatedMessage":"This operation is deprecated, use ListDeploymentTargets instead."},"ListDeploymentTargets":{"input":{"type":"structure","members":{"deploymentId":{},"nextToken":{},"targetFilters":{"type":"map","key":{},"value":{"type":"list","member":{}}}}},"output":{"type":"structure","members":{"targetIds":{"shape":"S3j"},"nextToken":{}}}},"ListDeployments":{"input":{"type":"structure","members":{"applicationName":{},"deploymentGroupName":{},"externalId":{},"includeOnlyStatuses":{"type":"list","member":{}},"createTimeRange":{"type":"structure","members":{"start":{"type":"timestamp"},"end":{"type":"timestamp"}}},"nextToken":{}}},"output":{"type":"structure","members":{"deployments":{"shape":"S49"},"nextToken":{}}}},"ListGitHubAccountTokenNames":{"input":{"type":"structure","members":{"nextToken":{}}},"output":{"type":"structure","members":{"tokenNameList":{"type":"list","member":{}},"nextToken":{}}}},"ListOnPremisesInstances":{"input":{"type":"structure","members":{"registrationStatus":{},"tagFilters":{"shape":"S1h"},"nextToken":{}}},"output":{"type":"structure","members":{"instanceNames":{"shape":"S6"},"nextToken":{}}}},"ListTagsForResource":{"input":{"type":"structure","required":["ResourceArn"],"members":{"ResourceArn":{},"NextToken":{}}},"output":{"type":"structure","members":{"Tags":{"shape":"S2"},"NextToken":{}}}},"PutLifecycleEventHookExecutionStatus":{"input":{"type":"structure","members":{"deploymentId":{},"lifecycleEventHookExecutionId":{},"status":{}}},"output":{"type":"structure","members":{"lifecycleEventHookExecutionId":{}}}},"RegisterApplicationRevision":{"input":{"type":"structure","required":["applicationName","revision"],"members":{"applicationName":{},"description":{},"revision":{"shape":"Sb"}}}},"RegisterOnPremisesInstance":{"input":{"type":"structure","required":["instanceName"],"members":{"instanceName":{},"iamSessionArn":{},"iamUserArn":{}}}},"RemoveTagsFromOnPremisesInstances":{"input":{"type":"structure","required":["tags","instanceNames"],"members":{"tags":{"shape":"S2"},"instanceNames":{"shape":"S6"}}}},"SkipWaitTimeForInstanceTermination":{"input":{"type":"structure","members":{"deploymentId":{}}},"deprecated":true,"deprecatedMessage":"This operation is deprecated, use ContinueDeployment with DeploymentWaitType instead."},"StopDeployment":{"input":{"type":"structure","required":["deploymentId"],"members":{"deploymentId":{},"autoRollbackEnabled":{"type":"boolean"}}},"output":{"type":"structure","members":{"status":{},"statusMessage":{}}}},"TagResource":{"input":{"type":"structure","required":["ResourceArn","Tags"],"members":{"ResourceArn":{},"Tags":{"shape":"S2"}}},"output":{"type":"structure","members":{}}},"UntagResource":{"input":{"type":"structure","required":["ResourceArn","TagKeys"],"members":{"ResourceArn":{},"TagKeys":{"type":"list","member":{}}}},"output":{"type":"structure","members":{}}},"UpdateApplication":{"input":{"type":"structure","members":{"applicationName":{},"newApplicationName":{}}}},"UpdateDeploymentGroup":{"input":{"type":"structure","required":["applicationName","currentDeploymentGroupName"],"members":{"applicationName":{},"currentDeploymentGroupName":{},"newDeploymentGroupName":{},"deploymentConfigName":{},"ec2TagFilters":{"shape":"S1e"},"onPremisesInstanceTagFilters":{"shape":"S1h"},"autoScalingGroups":{"shape":"S4k"},"serviceRoleArn":{},"triggerConfigurations":{"shape":"S1p"},"alarmConfiguration":{"shape":"S1v"},"autoRollbackConfiguration":{"shape":"S1z"},"outdatedInstancesStrategy":{},"deploymentStyle":{"shape":"S22"},"blueGreenDeploymentConfiguration":{"shape":"S26"},"loadBalancerInfo":{"shape":"S2e"},"ec2TagSet":{"shape":"S2t"},"ecsServices":{"shape":"S2x"},"onPremisesTagSet":{"shape":"S2v"}}},"output":{"type":"structure","members":{"hooksNotCleanedUp":{"shape":"S1k"}}}}},"shapes":{"S2":{"type":"list","member":{"type":"structure","members":{"Key":{},"Value":{}}}},"S6":{"type":"list","member":{}},"Sa":{"type":"list","member":{"shape":"Sb"}},"Sb":{"type":"structure","members":{"revisionType":{},"s3Location":{"type":"structure","members":{"bucket":{},"key":{},"bundleType":{},"version":{},"eTag":{}}},"gitHubLocation":{"type":"structure","members":{"repository":{},"commitId":{}}},"string":{"type":"structure","members":{"content":{},"sha256":{}},"deprecated":true,"deprecatedMessage":"RawString and String revision type are deprecated, use AppSpecContent type instead."},"appSpecContent":{"type":"structure","members":{"content":{},"sha256":{}}}}},"Su":{"type":"structure","members":{"description":{},"deploymentGroups":{"shape":"Sw"},"firstUsedTime":{"type":"timestamp"},"lastUsedTime":{"type":"timestamp"},"registerTime":{"type":"timestamp"}}},"Sw":{"type":"list","member":{}},"S10":{"type":"list","member":{}},"S13":{"type":"structure","members":{"applicationId":{},"applicationName":{},"createTime":{"type":"timestamp"},"linkedToGitHub":{"type":"boolean"},"gitHubAccountName":{},"computePlatform":{}}},"S1b":{"type":"structure","members":{"applicationName":{},"deploymentGroupId":{},"deploymentGroupName":{},"deploymentConfigName":{},"ec2TagFilters":{"shape":"S1e"},"onPremisesInstanceTagFilters":{"shape":"S1h"},"autoScalingGroups":{"shape":"S1k"},"serviceRoleArn":{},"targetRevision":{"shape":"Sb"},"triggerConfigurations":{"shape":"S1p"},"alarmConfiguration":{"shape":"S1v"},"autoRollbackConfiguration":{"shape":"S1z"},"deploymentStyle":{"shape":"S22"},"outdatedInstancesStrategy":{},"blueGreenDeploymentConfiguration":{"shape":"S26"},"loadBalancerInfo":{"shape":"S2e"},"lastSuccessfulDeployment":{"shape":"S2q"},"lastAttemptedDeployment":{"shape":"S2q"},"ec2TagSet":{"shape":"S2t"},"onPremisesTagSet":{"shape":"S2v"},"computePlatform":{},"ecsServices":{"shape":"S2x"}}},"S1e":{"type":"list","member":{"type":"structure","members":{"Key":{},"Value":{},"Type":{}}}},"S1h":{"type":"list","member":{"type":"structure","members":{"Key":{},"Value":{},"Type":{}}}},"S1k":{"type":"list","member":{"type":"structure","members":{"name":{},"hook":{}}}},"S1p":{"type":"list","member":{"type":"structure","members":{"triggerName":{},"triggerTargetArn":{},"triggerEvents":{"type":"list","member":{}}}}},"S1v":{"type":"structure","members":{"enabled":{"type":"boolean"},"ignorePollAlarmFailure":{"type":"boolean"},"alarms":{"type":"list","member":{"type":"structure","members":{"name":{}}}}}},"S1z":{"type":"structure","members":{"enabled":{"type":"boolean"},"events":{"type":"list","member":{}}}},"S22":{"type":"structure","members":{"deploymentType":{},"deploymentOption":{}}},"S26":{"type":"structure","members":{"terminateBlueInstancesOnDeploymentSuccess":{"type":"structure","members":{"action":{},"terminationWaitTimeInMinutes":{"type":"integer"}}},"deploymentReadyOption":{"type":"structure","members":{"actionOnTimeout":{},"waitTimeInMinutes":{"type":"integer"}}},"greenFleetProvisioningOption":{"type":"structure","members":{"action":{}}}}},"S2e":{"type":"structure","members":{"elbInfoList":{"type":"list","member":{"type":"structure","members":{"name":{}}}},"targetGroupInfoList":{"shape":"S2i"},"targetGroupPairInfoList":{"type":"list","member":{"type":"structure","members":{"targetGroups":{"shape":"S2i"},"prodTrafficRoute":{"shape":"S2n"},"testTrafficRoute":{"shape":"S2n"}}}}}},"S2i":{"type":"list","member":{"shape":"S2j"}},"S2j":{"type":"structure","members":{"name":{}}},"S2n":{"type":"structure","members":{"listenerArns":{"type":"list","member":{}}}},"S2q":{"type":"structure","members":{"deploymentId":{},"status":{},"endTime":{"type":"timestamp"},"createTime":{"type":"timestamp"}}},"S2t":{"type":"structure","members":{"ec2TagSetList":{"type":"list","member":{"shape":"S1e"}}}},"S2v":{"type":"structure","members":{"onPremisesTagSetList":{"type":"list","member":{"shape":"S1h"}}}},"S2x":{"type":"list","member":{"type":"structure","members":{"serviceName":{},"clusterName":{}}}},"S32":{"type":"list","member":{}},"S36":{"type":"structure","members":{"deploymentId":{},"instanceId":{},"status":{"shape":"S37"},"lastUpdatedAt":{"type":"timestamp"},"lifecycleEvents":{"shape":"S38"},"instanceType":{}},"deprecated":true,"deprecatedMessage":"InstanceSummary is deprecated, use DeploymentTarget instead."},"S37":{"type":"string","deprecated":true,"deprecatedMessage":"InstanceStatus is deprecated, use TargetStatus instead."},"S38":{"type":"list","member":{"type":"structure","members":{"lifecycleEventName":{},"diagnostics":{"type":"structure","members":{"errorCode":{},"scriptName":{},"message":{},"logTail":{}}},"startTime":{"type":"timestamp"},"endTime":{"type":"timestamp"},"status":{}}}},"S3j":{"type":"list","member":{}},"S3n":{"type":"structure","members":{"deploymentTargetType":{},"instanceTarget":{"type":"structure","members":{"deploymentId":{},"targetId":{},"targetArn":{},"status":{},"lastUpdatedAt":{"type":"timestamp"},"lifecycleEvents":{"shape":"S38"},"instanceLabel":{}}},"lambdaTarget":{"type":"structure","members":{"deploymentId":{},"targetId":{},"targetArn":{},"status":{},"lastUpdatedAt":{"type":"timestamp"},"lifecycleEvents":{"shape":"S38"},"lambdaFunctionInfo":{"type":"structure","members":{"functionName":{},"functionAlias":{},"currentVersion":{},"targetVersion":{},"targetVersionWeight":{"type":"double"}}}}},"ecsTarget":{"type":"structure","members":{"deploymentId":{},"targetId":{},"targetArn":{},"lastUpdatedAt":{"type":"timestamp"},"lifecycleEvents":{"shape":"S38"},"status":{},"taskSetsInfo":{"type":"list","member":{"type":"structure","members":{"identifer":{},"desiredCount":{"type":"long"},"pendingCount":{"type":"long"},"runningCount":{"type":"long"},"status":{},"trafficWeight":{"type":"double"},"targetGroup":{"shape":"S2j"},"taskSetLabel":{}}}}}},"cloudFormationTarget":{"type":"structure","members":{"deploymentId":{},"targetId":{},"lastUpdatedAt":{"type":"timestamp"},"lifecycleEvents":{"shape":"S38"},"status":{},"resourceType":{},"targetVersionWeight":{"type":"double"}}}}},"S49":{"type":"list","member":{}},"S4c":{"type":"structure","members":{"applicationName":{},"deploymentGroupName":{},"deploymentConfigName":{},"deploymentId":{},"previousRevision":{"shape":"Sb"},"revision":{"shape":"Sb"},"status":{},"errorInformation":{"type":"structure","members":{"code":{},"message":{}}},"createTime":{"type":"timestamp"},"startTime":{"type":"timestamp"},"completeTime":{"type":"timestamp"},"deploymentOverview":{"type":"structure","members":{"Pending":{"type":"long"},"InProgress":{"type":"long"},"Succeeded":{"type":"long"},"Failed":{"type":"long"},"Skipped":{"type":"long"},"Ready":{"type":"long"}}},"description":{},"creator":{},"ignoreApplicationStopFailures":{"type":"boolean"},"autoRollbackConfiguration":{"shape":"S1z"},"updateOutdatedInstancesOnly":{"type":"boolean"},"rollbackInfo":{"type":"structure","members":{"rollbackDeploymentId":{},"rollbackTriggeringDeploymentId":{},"rollbackMessage":{}}},"deploymentStyle":{"shape":"S22"},"targetInstances":{"shape":"S4j"},"instanceTerminationWaitTimeStarted":{"type":"boolean"},"blueGreenDeploymentConfiguration":{"shape":"S26"},"loadBalancerInfo":{"shape":"S2e"},"additionalDeploymentStatusInfo":{"type":"string","deprecated":true,"deprecatedMessage":"AdditionalDeploymentStatusInfo is deprecated, use DeploymentStatusMessageList instead."},"fileExistsBehavior":{},"deploymentStatusMessages":{"type":"list","member":{}},"computePlatform":{},"externalId":{},"relatedDeployments":{"type":"structure","members":{"autoUpdateOutdatedInstancesRootDeploymentId":{},"autoUpdateOutdatedInstancesDeploymentIds":{"shape":"S49"}}},"overrideAlarmConfiguration":{"shape":"S1v"}}},"S4j":{"type":"structure","members":{"tagFilters":{"shape":"S1e"},"autoScalingGroups":{"shape":"S4k"},"ec2TagSet":{"shape":"S2t"}}},"S4k":{"type":"list","member":{}},"S4t":{"type":"structure","members":{"instanceName":{},"iamSessionArn":{},"iamUserArn":{},"instanceArn":{},"registerTime":{"type":"timestamp"},"deregisterTime":{"type":"timestamp"},"tags":{"shape":"S2"}}},"S54":{"type":"structure","members":{"type":{},"value":{"type":"integer"}}},"S57":{"type":"structure","members":{"type":{},"timeBasedCanary":{"type":"structure","members":{"canaryPercentage":{"type":"integer"},"canaryInterval":{"type":"integer"}}},"timeBasedLinear":{"type":"structure","members":{"linearPercentage":{"type":"integer"},"linearInterval":{"type":"integer"}}}}}}}; /***/ }), /***/ 723: /***/ (function(module, __unusedexports, __webpack_require__) { -var Transform = __webpack_require__(413).Transform; +var Transform = __webpack_require__(794).Transform; var parseEvent = __webpack_require__(657).parseEvent; /** @type {Transform} */ @@ -12808,28 +15838,49 @@ module.exports = { /***/ }), /***/ 733: -/***/ (function(module, __unusedexports, __webpack_require__) { +/***/ (function(__unusedmodule, exports, __webpack_require__) { -__webpack_require__(234); -var AWS = __webpack_require__(395); -var Service = AWS.Service; -var apiLoader = AWS.apiLoader; +"use strict"; -apiLoader.services['sts'] = {}; -AWS.STS = Service.defineService('sts', ['2011-06-15']); -__webpack_require__(861); -Object.defineProperty(apiLoader.services['sts'], '2011-06-15', { - get: function get() { - var model = __webpack_require__(715); - model.paginators = __webpack_require__(262).pagination; - return model; - }, - enumerable: true, - configurable: true + +Object.defineProperty(exports, "__esModule", { + value: true }); +exports.default = void 0; -module.exports = AWS.STS; +var _rng = _interopRequireDefault(__webpack_require__(844)); + +var _bytesToUuid = _interopRequireDefault(__webpack_require__(390)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function v4(options, buf, offset) { + var i = buf && offset || 0; + + if (typeof options == 'string') { + buf = options === 'binary' ? new Array(16) : null; + options = null; + } + + options = options || {}; + + var rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` + + + rnds[6] = rnds[6] & 0x0f | 0x40; + rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided + if (buf) { + for (var ii = 0; ii < 16; ++ii) { + buf[i + ii] = rnds[ii]; + } + } + + return buf || (0, _bytesToUuid.default)(rnds); +} + +var _default = v4; +exports.default = _default; /***/ }), @@ -12981,15 +16032,174 @@ module.exports = AWS.STS; } } - XMLDeclaration.prototype.toString = function(options) { - return this.options.writer.set(options).declaration(this); - }; + XMLDeclaration.prototype.toString = function(options) { + return this.options.writer.set(options).declaration(this); + }; + + return XMLDeclaration; + + })(XMLNode); + +}).call(this); + + +/***/ }), + +/***/ 742: +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.OidcClient = void 0; +const http_client_1 = __webpack_require__(425); +const auth_1 = __webpack_require__(554); +const core_1 = __webpack_require__(470); +class OidcClient { + static createHttpClient(allowRetry = true, maxRetry = 10) { + const requestOptions = { + allowRetries: allowRetry, + maxRetries: maxRetry + }; + return new http_client_1.HttpClient('actions/oidc-client', [new auth_1.BearerCredentialHandler(OidcClient.getRequestToken())], requestOptions); + } + static getRequestToken() { + const token = process.env['ACTIONS_ID_TOKEN_REQUEST_TOKEN']; + if (!token) { + throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable'); + } + return token; + } + static getIDTokenUrl() { + const runtimeUrl = process.env['ACTIONS_ID_TOKEN_REQUEST_URL']; + if (!runtimeUrl) { + throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable'); + } + return runtimeUrl; + } + static getCall(id_token_url) { + var _a; + return __awaiter(this, void 0, void 0, function* () { + const httpclient = OidcClient.createHttpClient(); + const res = yield httpclient + .getJson(id_token_url) + .catch(error => { + throw new Error(`Failed to get ID Token. \n + Error Code : ${error.statusCode}\n + Error Message: ${error.result.message}`); + }); + const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value; + if (!id_token) { + throw new Error('Response json body do not have ID Token field'); + } + return id_token; + }); + } + static getIDToken(audience) { + return __awaiter(this, void 0, void 0, function* () { + try { + // New ID Token is requested from action service + let id_token_url = OidcClient.getIDTokenUrl(); + if (audience) { + const encodedAudience = encodeURIComponent(audience); + id_token_url = `${id_token_url}&audience=${encodedAudience}`; + } + core_1.debug(`ID token url is ${id_token_url}`); + const id_token = yield OidcClient.getCall(id_token_url); + core_1.setSecret(id_token); + return id_token; + } + catch (error) { + throw new Error(`Error message: ${error.message}`); + } + }); + } +} +exports.OidcClient = OidcClient; +//# sourceMappingURL=oidc-utils.js.map + +/***/ }), - return XMLDeclaration; +/***/ 745: +/***/ (function(__unusedmodule, __unusedexports, __webpack_require__) { - })(XMLNode); +var AWS = __webpack_require__(395); -}).call(this); +/** + * Represents credentials from a JSON file on disk. + * If the credentials expire, the SDK can {refresh} the credentials + * from the file. + * + * The format of the file should be similar to the options passed to + * {AWS.Config}: + * + * ```javascript + * {accessKeyId: 'akid', secretAccessKey: 'secret', sessionToken: 'optional'} + * ``` + * + * @example Loading credentials from disk + * var creds = new AWS.FileSystemCredentials('./configuration.json'); + * creds.accessKeyId == 'AKID' + * + * @!attribute filename + * @readonly + * @return [String] the path to the JSON file on disk containing the + * credentials. + * @!macro nobrowser + */ +AWS.FileSystemCredentials = AWS.util.inherit(AWS.Credentials, { + + /** + * @overload AWS.FileSystemCredentials(filename) + * Creates a new FileSystemCredentials object from a filename + * + * @param filename [String] the path on disk to the JSON file to load. + */ + constructor: function FileSystemCredentials(filename) { + AWS.Credentials.call(this); + this.filename = filename; + this.get(function() {}); + }, + + /** + * Loads the credentials from the {filename} on disk. + * + * @callback callback function(err) + * Called after the JSON file on disk is read and parsed. When this callback + * is called with no error, it means that the credentials information + * has been loaded into the object (as the `accessKeyId`, `secretAccessKey`, + * and `sessionToken` properties). + * @param err [Error] if an error occurred, this value will be filled + * @see get + */ + refresh: function refresh(callback) { + if (!callback) callback = AWS.util.fn.callback; + try { + var creds = JSON.parse(AWS.util.readFileSync(this.filename)); + AWS.Credentials.call(this, creds); + if (!this.accessKeyId || !this.secretAccessKey) { + throw AWS.util.error( + new Error('Credentials not set in ' + this.filename), + { code: 'FileSystemCredentialsProviderFailure' } + ); + } + this.expired = false; + callback(); + } catch (err) { + callback(err); + } + } + +}); /***/ }), @@ -13348,6 +16558,8 @@ module.exports = require("fs"); var AWS = __webpack_require__(395); __webpack_require__(711); var inherit = AWS.util.inherit; +var getMetadataServiceEndpoint = __webpack_require__(756); +var URL = __webpack_require__(414).URL; /** * Represents a metadata service available on EC2 instances. Using the @@ -13367,9 +16579,9 @@ var inherit = AWS.util.inherit; */ AWS.MetadataService = inherit({ /** - * @return [String] the hostname of the instance metadata service + * @return [String] the endpoint of the instance metadata service */ - host: '169.254.169.254', + endpoint: getMetadataServiceEndpoint(), /** * @!ignore @@ -13405,6 +16617,10 @@ AWS.MetadataService = inherit({ * retry delay on retryable errors. See AWS.Config for details. */ constructor: function MetadataService(options) { + if (options && options.host) { + options.endpoint = 'http://' + options.host; + delete options.host; + } AWS.util.update(this, options); }, @@ -13437,7 +16653,11 @@ AWS.MetadataService = inherit({ } path = path || '/'; - var httpRequest = new AWS.HttpRequest('http://' + this.host + path); + + // Verify that host is a valid URL + if (URL) { new URL(this.endpoint); } + + var httpRequest = new AWS.HttpRequest(this.endpoint + path); httpRequest.method = options.method || 'GET'; if (options.headers) { httpRequest.headers = options.headers; @@ -13768,7 +16988,7 @@ AWS.Signers.V4 = inherit(AWS.Signers.RequestSigner, { hexEncodedBodyHash: function hexEncodedBodyHash() { var request = this.request; - if (this.isPresigned() && this.serviceName === 's3' && !request.body) { + if (this.isPresigned() && (['s3', 's3-object-lambda'].indexOf(this.serviceName) > -1) && !request.body) { return 'UNSIGNED-PAYLOAD'; } else if (request.headers['X-Amz-Content-Sha256']) { return request.headers['X-Amz-Content-Sha256']; @@ -13867,6 +17087,37 @@ module.exports = AWS.Signers.V4; }).call(this); +/***/ }), + +/***/ 756: +/***/ (function(module, __unusedexports, __webpack_require__) { + +var AWS = __webpack_require__(395); + +var Endpoint = __webpack_require__(595)(); +var EndpointMode = __webpack_require__(587)(); + +var ENDPOINT_CONFIG_OPTIONS = __webpack_require__(160)(); +var ENDPOINT_MODE_CONFIG_OPTIONS = __webpack_require__(273)(); + +var getMetadataServiceEndpoint = function() { + var endpoint = AWS.util.loadConfig(ENDPOINT_CONFIG_OPTIONS); + if (endpoint !== undefined) return endpoint; + + var endpointMode = AWS.util.loadConfig(ENDPOINT_MODE_CONFIG_OPTIONS); + switch (endpointMode) { + case EndpointMode.IPv4: + return Endpoint.IPv4; + case EndpointMode.IPv6: + return Endpoint.IPv6; + default: + throw new Error('Unsupported endpoint mode: ' + endpointMode); + } +}; + +module.exports = getMetadataServiceEndpoint; + + /***/ }), /***/ 762: @@ -13892,68 +17143,238 @@ function resolveMonitoringConfig() { return toJSType(config); } -/** - * Resolve configurations from environmental variables. - * @param {object} client side monitoring config object needs to be resolved - * @returns {boolean} whether resolving configurations is done - * @api private - */ -function fromEnvironment(config) { - config.port = config.port || process.env.AWS_CSM_PORT; - config.enabled = config.enabled || process.env.AWS_CSM_ENABLED; - config.clientId = config.clientId || process.env.AWS_CSM_CLIENT_ID; - config.host = config.host || process.env.AWS_CSM_HOST; - return config.port && config.enabled && config.clientId && config.host || - ['false', '0'].indexOf(config.enabled) >= 0; //no need to read shared config file if explicitely disabled +/** + * Resolve configurations from environmental variables. + * @param {object} client side monitoring config object needs to be resolved + * @returns {boolean} whether resolving configurations is done + * @api private + */ +function fromEnvironment(config) { + config.port = config.port || process.env.AWS_CSM_PORT; + config.enabled = config.enabled || process.env.AWS_CSM_ENABLED; + config.clientId = config.clientId || process.env.AWS_CSM_CLIENT_ID; + config.host = config.host || process.env.AWS_CSM_HOST; + return config.port && config.enabled && config.clientId && config.host || + ['false', '0'].indexOf(config.enabled) >= 0; //no need to read shared config file if explicitely disabled +} + +/** + * Resolve cofigurations from shared config file with specified role name + * @param {object} client side monitoring config object needs to be resolved + * @returns {boolean} whether resolving configurations is done + * @api private + */ +function fromConfigFile(config) { + var sharedFileConfig; + try { + var configFile = AWS.util.iniLoader.loadFrom({ + isConfig: true, + filename: process.env[AWS.util.sharedConfigFileEnv] + }); + var sharedFileConfig = configFile[ + process.env.AWS_PROFILE || AWS.util.defaultProfile + ]; + } catch (err) { + return false; + } + if (!sharedFileConfig) return config; + config.port = config.port || sharedFileConfig.csm_port; + config.enabled = config.enabled || sharedFileConfig.csm_enabled; + config.clientId = config.clientId || sharedFileConfig.csm_client_id; + config.host = config.host || sharedFileConfig.csm_host; + return config.port && config.enabled && config.clientId && config.host; +} + +/** + * Transfer the resolved configuration value to proper types: port as number, enabled + * as boolean and clientId as string. The 'enabled' flag is valued to false when set + * to 'false' or '0'. + * @param {object} resolved client side monitoring config + * @api private + */ +function toJSType(config) { + //config.XXX is either undefined or string + var falsyNotations = ['false', '0', undefined]; + if (!config.enabled || falsyNotations.indexOf(config.enabled.toLowerCase()) >= 0) { + config.enabled = false; + } else { + config.enabled = true; + } + config.port = config.port ? parseInt(config.port, 10) : undefined; + return config; +} + +module.exports = resolveMonitoringConfig; + + +/***/ }), + +/***/ 763: +/***/ (function(module, __unusedexports, __webpack_require__) { + +var AWS = __webpack_require__(395); +var util = AWS.util; +var Shape = AWS.Model.Shape; + +var xml2js = __webpack_require__(992); + +/** + * @api private + */ +var options = { // options passed to xml2js parser + explicitCharkey: false, // undocumented + trim: false, // trim the leading/trailing whitespace from text nodes + normalize: false, // trim interior whitespace inside text nodes + explicitRoot: false, // return the root node in the resulting object? + emptyTag: null, // the default value for empty nodes + explicitArray: true, // always put child nodes in an array + ignoreAttrs: false, // ignore attributes, only create text nodes + mergeAttrs: false, // merge attributes and child elements + validator: null // a callable validator +}; + +function NodeXmlParser() { } + +NodeXmlParser.prototype.parse = function(xml, shape) { + shape = shape || {}; + + var result = null; + var error = null; + + var parser = new xml2js.Parser(options); + parser.parseString(xml, function (e, r) { + error = e; + result = r; + }); + + if (result) { + var data = parseXml(result, shape); + if (result.ResponseMetadata) { + data.ResponseMetadata = parseXml(result.ResponseMetadata[0], {}); + } + return data; + } else if (error) { + throw util.error(error, {code: 'XMLParserError', retryable: true}); + } else { // empty xml document + return parseXml({}, shape); + } +}; + +function parseXml(xml, shape) { + switch (shape.type) { + case 'structure': return parseStructure(xml, shape); + case 'map': return parseMap(xml, shape); + case 'list': return parseList(xml, shape); + case undefined: case null: return parseUnknown(xml); + default: return parseScalar(xml, shape); + } +} + +function parseStructure(xml, shape) { + var data = {}; + if (xml === null) return data; + + util.each(shape.members, function(memberName, memberShape) { + var xmlName = memberShape.name; + if (Object.prototype.hasOwnProperty.call(xml, xmlName) && Array.isArray(xml[xmlName])) { + var xmlChild = xml[xmlName]; + if (!memberShape.flattened) xmlChild = xmlChild[0]; + + data[memberName] = parseXml(xmlChild, memberShape); + } else if (memberShape.isXmlAttribute && + xml.$ && Object.prototype.hasOwnProperty.call(xml.$, xmlName)) { + data[memberName] = parseScalar(xml.$[xmlName], memberShape); + } else if (memberShape.type === 'list' && !shape.api.xmlNoDefaultLists) { + data[memberName] = memberShape.defaultValue; + } + }); + + return data; +} + +function parseMap(xml, shape) { + var data = {}; + if (xml === null) return data; + + var xmlKey = shape.key.name || 'key'; + var xmlValue = shape.value.name || 'value'; + var iterable = shape.flattened ? xml : xml.entry; + + if (Array.isArray(iterable)) { + util.arrayEach(iterable, function(child) { + data[child[xmlKey][0]] = parseXml(child[xmlValue][0], shape.value); + }); + } + + return data; } -/** - * Resolve cofigurations from shared config file with specified role name - * @param {object} client side monitoring config object needs to be resolved - * @returns {boolean} whether resolving configurations is done - * @api private - */ -function fromConfigFile(config) { - var sharedFileConfig; - try { - var configFile = AWS.util.iniLoader.loadFrom({ - isConfig: true, - filename: process.env[AWS.util.sharedConfigFileEnv] +function parseList(xml, shape) { + var data = []; + var name = shape.member.name || 'member'; + if (shape.flattened) { + util.arrayEach(xml, function(xmlChild) { + data.push(parseXml(xmlChild, shape.member)); + }); + } else if (xml && Array.isArray(xml[name])) { + util.arrayEach(xml[name], function(child) { + data.push(parseXml(child, shape.member)); }); - var sharedFileConfig = configFile[ - process.env.AWS_PROFILE || AWS.util.defaultProfile - ]; - } catch (err) { - return false; } - if (!sharedFileConfig) return config; - config.port = config.port || sharedFileConfig.csm_port; - config.enabled = config.enabled || sharedFileConfig.csm_enabled; - config.clientId = config.clientId || sharedFileConfig.csm_client_id; - config.host = config.host || sharedFileConfig.csm_host; - return config.port && config.enabled && config.clientId && config.host; + + return data; } -/** - * Transfer the resolved configuration value to proper types: port as number, enabled - * as boolean and clientId as string. The 'enabled' flag is valued to false when set - * to 'false' or '0'. - * @param {object} resolved client side monitoring config - * @api private - */ -function toJSType(config) { - //config.XXX is either undefined or string - var falsyNotations = ['false', '0', undefined]; - if (!config.enabled || falsyNotations.indexOf(config.enabled.toLowerCase()) >= 0) { - config.enabled = false; +function parseScalar(text, shape) { + if (text && text.$ && text.$.encoding === 'base64') { + shape = new Shape.create({type: text.$.encoding}); + } + if (text && text._) text = text._; + + if (typeof shape.toType === 'function') { + return shape.toType(text); } else { - config.enabled = true; + return text; } - config.port = config.port ? parseInt(config.port, 10) : undefined; - return config; } -module.exports = resolveMonitoringConfig; +function parseUnknown(xml) { + if (xml === undefined || xml === null) return ''; + if (typeof xml === 'string') return xml; + + // parse a list + if (Array.isArray(xml)) { + var arr = []; + for (i = 0; i < xml.length; i++) { + arr.push(parseXml(xml[i], {})); + } + return arr; + } + + // empty object + var keys = Object.keys(xml), i; + if (keys.length === 0 || (keys.length === 1 && keys[0] === '$')) { + return {}; + } + + // object, parse as structure + var data = {}; + for (i = 0; i < keys.length; i++) { + var key = keys[i], value = xml[key]; + if (key === '$') continue; + if (value.length > 1) { // this member is a list + data[key] = parseList(value, {member: {}}); + } else { // this member is a single item + data[key] = parseXml(value[0], {}); + } + } + return data; +} + +/** + * @api private + */ +module.exports = NodeXmlParser; /***/ }), @@ -14452,6 +17873,7 @@ function Api(api, options) { property(this, 'documentation', api.documentation); property(this, 'documentationUrl', api.documentationUrl); } + property(this, 'awsQueryCompatible', api.metadata.awsQueryCompatible); } /** @@ -14544,6 +17966,13 @@ AWS.Signers.V3 = inherit(AWS.Signers.RequestSigner, { module.exports = AWS.Signers.V3; +/***/ }), + +/***/ 794: +/***/ (function(module) { + +module.exports = require("stream"); + /***/ }), /***/ 796: @@ -14866,6 +18295,18 @@ module.exports = AWS.Signers.V3; var TYPE_NULL = 7; var TYPE_ARRAY_NUMBER = 8; var TYPE_ARRAY_STRING = 9; + var TYPE_NAME_TABLE = { + 0: 'number', + 1: 'any', + 2: 'string', + 3: 'array', + 4: 'object', + 5: 'boolean', + 6: 'expression', + 7: 'null', + 8: 'Array', + 9: 'Array' + }; var TOK_EOF = "EOF"; var TOK_UNQUOTEDIDENTIFIER = "UnquotedIdentifier"; @@ -15277,10 +18718,8 @@ module.exports = AWS.Signers.V3; var node = {type: "Field", name: token.value}; if (this._lookahead(0) === TOK_LPAREN) { throw new Error("Quoted identifier not allowed for function names."); - } else { - return node; } - break; + return node; case TOK_NOT: right = this.expression(bindingPower.Not); return {type: "NotExpression", children: [right]}; @@ -15314,10 +18753,8 @@ module.exports = AWS.Signers.V3; right = this._parseProjectionRHS(bindingPower.Star); return {type: "Projection", children: [{type: "Identity"}, right]}; - } else { - return this._parseMultiselectList(); } - break; + return this._parseMultiselectList(); case TOK_CURRENT: return {type: TOK_CURRENT}; case TOK_EXPREF: @@ -15349,13 +18786,11 @@ module.exports = AWS.Signers.V3; if (this._lookahead(0) !== TOK_STAR) { right = this._parseDotRHS(rbp); return {type: "Subexpression", children: [left, right]}; - } else { - // Creating a projection. - this._advance(); - right = this._parseProjectionRHS(rbp); - return {type: "ValueProjection", children: [left, right]}; } - break; + // Creating a projection. + this._advance(); + right = this._parseProjectionRHS(rbp); + return {type: "ValueProjection", children: [left, right]}; case TOK_PIPE: right = this.expression(bindingPower.Pipe); return {type: TOK_PIPE, children: [left, right]}; @@ -15409,13 +18844,11 @@ module.exports = AWS.Signers.V3; if (token.type === TOK_NUMBER || token.type === TOK_COLON) { right = this._parseIndexExpression(); return this._projectIfSlice(left, right); - } else { - this._match(TOK_STAR); - this._match(TOK_RBRACKET); - right = this._parseProjectionRHS(bindingPower.Star); - return {type: "Projection", children: [left, right]}; } - break; + this._match(TOK_STAR); + this._match(TOK_RBRACKET); + right = this._parseProjectionRHS(bindingPower.Star); + return {type: "Projection", children: [left, right]}; default: this._errorToken(this._lookaheadToken(0)); } @@ -15592,19 +19025,15 @@ module.exports = AWS.Signers.V3; var matched, current, result, first, second, field, left, right, collected, i; switch (node.type) { case "Field": - if (value === null ) { - return null; - } else if (isObject(value)) { + if (value !== null && isObject(value)) { field = value[node.name]; if (field === undefined) { return null; } else { return field; } - } else { - return null; } - break; + return null; case "Subexpression": result = this.visit(node.children[0], value); for (i = 1; i < node.children.length; i++) { @@ -15975,11 +19404,16 @@ module.exports = AWS.Signers.V3; } } if (!typeMatched) { + var expected = currentSpec + .map(function(typeIdentifier) { + return TYPE_NAME_TABLE[typeIdentifier]; + }) + .join(','); throw new Error("TypeError: " + name + "() " + "expected argument " + (i + 1) + - " to be type " + currentSpec + - " but received type " + actualType + - " instead."); + " to be type " + expected + + " but received type " + + TYPE_NAME_TABLE[actualType] + " instead."); } } }, @@ -16393,6 +19827,36 @@ module.exports = AWS.Signers.V3; })( false ? undefined : exports); +/***/ }), + +/***/ 803: +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _crypto = _interopRequireDefault(__webpack_require__(417)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function md5(bytes) { + if (Array.isArray(bytes)) { + bytes = Buffer.from(bytes); + } else if (typeof bytes === 'string') { + bytes = Buffer.from(bytes, 'utf8'); + } + + return _crypto.default.createHash('md5').update(bytes).digest(); +} + +var _default = md5; +exports.default = _default; + /***/ }), /***/ 806: @@ -16419,6 +19883,7 @@ function translate(value, shape) { function translateStructure(structure, shape) { if (structure == null) return undefined; + if (shape.isDocument) return structure; var struct = {}; var shapeMembers = shape.members; @@ -16470,172 +19935,116 @@ module.exports = JsonParser; /***/ }), /***/ 810: -/***/ (function(module, __unusedexports, __webpack_require__) { +/***/ (function(__unusedmodule, exports, __webpack_require__) { -var AWS = __webpack_require__(395); -var util = AWS.util; -var Shape = AWS.Model.Shape; +"use strict"; -var xml2js = __webpack_require__(992); -/** - * @api private - */ -var options = { // options passed to xml2js parser - explicitCharkey: false, // undocumented - trim: false, // trim the leading/trailing whitespace from text nodes - normalize: false, // trim interior whitespace inside text nodes - explicitRoot: false, // return the root node in the resulting object? - emptyTag: null, // the default value for empty nodes - explicitArray: true, // always put child nodes in an array - ignoreAttrs: false, // ignore attributes, only create text nodes - mergeAttrs: false, // merge attributes and child elements - validator: null // a callable validator -}; +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; -function NodeXmlParser() { } +var _rng = _interopRequireDefault(__webpack_require__(506)); -NodeXmlParser.prototype.parse = function(xml, shape) { - shape = shape || {}; +var _stringify = _interopRequireDefault(__webpack_require__(960)); - var result = null; - var error = null; +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - var parser = new xml2js.Parser(options); - parser.parseString(xml, function (e, r) { - error = e; - result = r; - }); +// **`v1()` - Generate time-based UUID** +// +// Inspired by https://github.com/LiosK/UUID.js +// and http://docs.python.org/library/uuid.html +let _nodeId; - if (result) { - var data = parseXml(result, shape); - if (result.ResponseMetadata) { - data.ResponseMetadata = parseXml(result.ResponseMetadata[0], {}); - } - return data; - } else if (error) { - throw util.error(error, {code: 'XMLParserError', retryable: true}); - } else { // empty xml document - return parseXml({}, shape); - } -}; +let _clockseq; // Previous uuid creation time -function parseXml(xml, shape) { - switch (shape.type) { - case 'structure': return parseStructure(xml, shape); - case 'map': return parseMap(xml, shape); - case 'list': return parseList(xml, shape); - case undefined: case null: return parseUnknown(xml); - default: return parseScalar(xml, shape); - } -} -function parseStructure(xml, shape) { - var data = {}; - if (xml === null) return data; +let _lastMSecs = 0; +let _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details - util.each(shape.members, function(memberName, memberShape) { - var xmlName = memberShape.name; - if (Object.prototype.hasOwnProperty.call(xml, xmlName) && Array.isArray(xml[xmlName])) { - var xmlChild = xml[xmlName]; - if (!memberShape.flattened) xmlChild = xmlChild[0]; +function v1(options, buf, offset) { + let i = buf && offset || 0; + const b = buf || new Array(16); + options = options || {}; + let node = options.node || _nodeId; + let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not + // specified. We do this lazily to minimize issues related to insufficient + // system entropy. See #189 - data[memberName] = parseXml(xmlChild, memberShape); - } else if (memberShape.isXmlAttribute && - xml.$ && Object.prototype.hasOwnProperty.call(xml.$, xmlName)) { - data[memberName] = parseScalar(xml.$[xmlName], memberShape); - } else if (memberShape.type === 'list' && !shape.api.xmlNoDefaultLists) { - data[memberName] = memberShape.defaultValue; + if (node == null || clockseq == null) { + const seedBytes = options.random || (options.rng || _rng.default)(); + + if (node == null) { + // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) + node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]]; } - }); - return data; -} + if (clockseq == null) { + // Per 4.2.2, randomize (14 bit) clockseq + clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff; + } + } // UUID timestamps are 100 nano-second units since the Gregorian epoch, + // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so + // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs' + // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. -function parseMap(xml, shape) { - var data = {}; - if (xml === null) return data; - var xmlKey = shape.key.name || 'key'; - var xmlValue = shape.value.name || 'value'; - var iterable = shape.flattened ? xml : xml.entry; + let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock + // cycle to simulate higher resolution clock + + let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs) + + const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression + + if (dt < 0 && options.clockseq === undefined) { + clockseq = clockseq + 1 & 0x3fff; + } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new + // time interval + + + if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) { + nsecs = 0; + } // Per 4.2.1.2 Throw error if too many uuids are requested + - if (Array.isArray(iterable)) { - util.arrayEach(iterable, function(child) { - data[child[xmlKey][0]] = parseXml(child[xmlValue][0], shape.value); - }); + if (nsecs >= 10000) { + throw new Error("uuid.v1(): Can't create more than 10M uuids/sec"); } - return data; -} + _lastMSecs = msecs; + _lastNSecs = nsecs; + _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch -function parseList(xml, shape) { - var data = []; - var name = shape.member.name || 'member'; - if (shape.flattened) { - util.arrayEach(xml, function(xmlChild) { - data.push(parseXml(xmlChild, shape.member)); - }); - } else if (xml && Array.isArray(xml[name])) { - util.arrayEach(xml[name], function(child) { - data.push(parseXml(child, shape.member)); - }); - } + msecs += 12219292800000; // `time_low` - return data; -} + const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; + b[i++] = tl >>> 24 & 0xff; + b[i++] = tl >>> 16 & 0xff; + b[i++] = tl >>> 8 & 0xff; + b[i++] = tl & 0xff; // `time_mid` -function parseScalar(text, shape) { - if (text && text.$ && text.$.encoding === 'base64') { - shape = new Shape.create({type: text.$.encoding}); - } - if (text && text._) text = text._; + const tmh = msecs / 0x100000000 * 10000 & 0xfffffff; + b[i++] = tmh >>> 8 & 0xff; + b[i++] = tmh & 0xff; // `time_high_and_version` - if (typeof shape.toType === 'function') { - return shape.toType(text); - } else { - return text; - } -} + b[i++] = tmh >>> 24 & 0xf | 0x10; // include version -function parseUnknown(xml) { - if (xml === undefined || xml === null) return ''; - if (typeof xml === 'string') return xml; + b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) - // parse a list - if (Array.isArray(xml)) { - var arr = []; - for (i = 0; i < xml.length; i++) { - arr.push(parseXml(xml[i], {})); - } - return arr; - } + b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low` - // empty object - var keys = Object.keys(xml), i; - if (keys.length === 0 || keys === ['$']) { - return {}; - } + b[i++] = clockseq & 0xff; // `node` - // object, parse as structure - var data = {}; - for (i = 0; i < keys.length; i++) { - var key = keys[i], value = xml[key]; - if (key === '$') continue; - if (value.length > 1) { // this member is a list - data[key] = parseList(value, {member: {}}); - } else { // this member is a single item - data[key] = parseXml(value[0], {}); - } + for (let n = 0; n < 6; ++n) { + b[i + n] = node[n]; } - return data; -} -/** - * @api private - */ -module.exports = NodeXmlParser; + return buf || (0, _stringify.default)(b); +} +var _default = v1; +exports.default = _default; /***/ }), @@ -16646,18 +20055,32 @@ var AWS = __webpack_require__(395); var os = __webpack_require__(87); var path = __webpack_require__(622); -function parseFile(filename, isConfig) { - var content = AWS.util.ini.parse(AWS.util.readFileSync(filename)); - var tmpContent = {}; - Object.keys(content).forEach(function(profileName) { - var profileContent = content[profileName]; - profileName = isConfig ? profileName.replace(/^profile\s/, '') : profileName; - Object.defineProperty(tmpContent, profileName, { - value: profileContent, - enumerable: true - }); +function parseFile(filename) { + return AWS.util.ini.parse(AWS.util.readFileSync(filename)); +} + +function getProfiles(fileContent) { + var tmpContent = {}; + Object.keys(fileContent).forEach(function(sectionName) { + if (/^sso-session\s/.test(sectionName)) return; + Object.defineProperty(tmpContent, sectionName.replace(/^profile\s/, ''), { + value: fileContent[sectionName], + enumerable: true + }); + }); + return tmpContent; +} + +function getSsoSessions(fileContent) { + var tmpContent = {}; + Object.keys(fileContent).forEach(function(sectionName) { + if (!/^sso-session\s/.test(sectionName)) return; + Object.defineProperty(tmpContent, sectionName.replace(/^sso-session\s/, ''), { + value: fileContent[sectionName], + enumerable: true }); - return tmpContent; + }); + return tmpContent; } /** @@ -16672,41 +20095,66 @@ function parseFile(filename, isConfig) { AWS.IniLoader = AWS.util.inherit({ constructor: function IniLoader() { this.resolvedProfiles = {}; + this.resolvedSsoSessions = {}; }, /** Remove all cached files. Used after config files are updated. */ clearCachedFiles: function clearCachedFiles() { this.resolvedProfiles = {}; + this.resolvedSsoSessions = {}; }, -/** - * Load configurations from config/credentials files and cache them - * for later use. If no file is specified it will try to load default - * files. - * @param options [map] information describing the file - * @option options filename [String] ('~/.aws/credentials' or defined by - * AWS_SHARED_CREDENTIALS_FILE process env var or '~/.aws/config' if - * isConfig is set to true) - * path to the file to be read. - * @option options isConfig [Boolean] (false) True to read config file. - * @return [map] object containing contents from file in key-value - * pairs. - */ + /** + * Load configurations from config/credentials files and cache them + * for later use. If no file is specified it will try to load default files. + * + * @param options [map] information describing the file + * @option options filename [String] ('~/.aws/credentials' or defined by + * AWS_SHARED_CREDENTIALS_FILE process env var or '~/.aws/config' if + * isConfig is set to true) + * path to the file to be read. + * @option options isConfig [Boolean] (false) True to read config file. + * @return [map] object containing contents from file in key-value + * pairs. + */ loadFrom: function loadFrom(options) { options = options || {}; var isConfig = options.isConfig === true; var filename = options.filename || this.getDefaultFilePath(isConfig); if (!this.resolvedProfiles[filename]) { - var fileContent = this.parseFile(filename, isConfig); - Object.defineProperty(this.resolvedProfiles, filename, { value: fileContent }); + var fileContent = parseFile(filename); + if (isConfig) { + Object.defineProperty(this.resolvedProfiles, filename, { + value: getProfiles(fileContent) + }); + } else { + Object.defineProperty(this.resolvedProfiles, filename, { value: fileContent }); + } } return this.resolvedProfiles[filename]; }, /** - * @api private + * Load sso sessions from config/credentials files and cache them + * for later use. If no file is specified it will try to load default file. + * + * @param options [map] information describing the file + * @option options filename [String] ('~/.aws/config' or defined by + * AWS_CONFIG_FILE process env var) + * @return [map] object containing contents from file in key-value + * pairs. */ - parseFile: parseFile, + loadSsoSessionsFrom: function loadSsoSessionsFrom(options) { + options = options || {}; + var filename = options.filename || this.getDefaultFilePath(true); + if (!this.resolvedSsoSessions[filename]) { + var fileContent = parseFile(filename); + Object.defineProperty(this.resolvedSsoSessions, filename, { + value: getSsoSessions(fileContent) + }); + } + return this.resolvedSsoSessions[filename]; + }, /** * @api private @@ -16745,8 +20193,7 @@ AWS.IniLoader = AWS.util.inherit({ var IniLoader = AWS.IniLoader; module.exports = { - IniLoader: IniLoader, - parseFile: parseFile, + IniLoader: IniLoader }; @@ -16857,42 +20304,6 @@ module.exports = { }; -/***/ }), - -/***/ 826: -/***/ (function(module, __unusedexports, __webpack_require__) { - -var rng = __webpack_require__(139); -var bytesToUuid = __webpack_require__(722); - -function v4(options, buf, offset) { - var i = buf && offset || 0; - - if (typeof(options) == 'string') { - buf = options === 'binary' ? new Array(16) : null; - options = null; - } - options = options || {}; - - var rnds = options.random || (options.rng || rng)(); - - // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` - rnds[6] = (rnds[6] & 0x0f) | 0x40; - rnds[8] = (rnds[8] & 0x3f) | 0x80; - - // Copy bytes to buffer, if provided - if (buf) { - for (var ii = 0; ii < 16; ++ii) { - buf[i + ii] = rnds[ii]; - } - } - - return buf || bytesToUuid(rnds); -} - -module.exports = v4; - - /***/ }), /***/ 828: @@ -17135,6 +20546,7 @@ AWS.Signers.RequestSigner.getVersion = function getVersion(version) { case 'v4': return AWS.Signers.V4; case 's3': return AWS.Signers.S3; case 'v3https': return AWS.Signers.V3Https; + case 'bearer': return AWS.Signers.Bearer; } throw new Error('Unknown signing version ' + version); }; @@ -17145,7 +20557,29 @@ __webpack_require__(566); __webpack_require__(754); __webpack_require__(616); __webpack_require__(951); +__webpack_require__(143); + + +/***/ }), + +/***/ 844: +/***/ (function(__unusedmodule, exports, __webpack_require__) { +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = rng; + +var _crypto = _interopRequireDefault(__webpack_require__(417)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function rng() { + return _crypto.default.randomBytes(16); +} /***/ }), @@ -17589,27 +21023,279 @@ module.exports = AWS.IAM; return this.comment(value); }; - XMLNode.prototype.r = function(value) { - return this.raw(value); - }; + XMLNode.prototype.r = function(value) { + return this.raw(value); + }; + + XMLNode.prototype.i = function(target, value) { + return this.instruction(target, value); + }; + + XMLNode.prototype.u = function() { + return this.up(); + }; + + XMLNode.prototype.importXMLBuilder = function(doc) { + return this.importDocument(doc); + }; + + return XMLNode; + + })(); + +}).call(this); + + +/***/ }), + +/***/ 858: +/***/ (function(__unusedmodule, __unusedexports, __webpack_require__) { + +var AWS = __webpack_require__(395); +var crypto = __webpack_require__(417); +var fs = __webpack_require__(747); +var path = __webpack_require__(622); +var iniLoader = AWS.util.iniLoader; + +// Tracking refresh attempt to ensure refresh is not attempted more than once every 30 seconds. +var lastRefreshAttemptTime = 0; + +/** + * Throws error is key is not present in token object. + * + * @param token [Object] Object to be validated. + * @param key [String] The key to be validated on the object. + */ +var validateTokenKey = function validateTokenKey(token, key) { + if (!token[key]) { + throw AWS.util.error( + new Error('Key "' + key + '" not present in SSO Token'), + { code: 'SSOTokenProviderFailure' } + ); + } +}; + +/** + * Calls callback function with or without error based on provided times in case + * of unsuccessful refresh. + * + * @param currentTime [number] current time in milliseconds since ECMAScript epoch. + * @param tokenExpireTime [number] token expire time in milliseconds since ECMAScript epoch. + * @param callback [Function] Callback to call in case of error. + */ +var refreshUnsuccessful = function refreshUnsuccessful( + currentTime, + tokenExpireTime, + callback +) { + if (tokenExpireTime > currentTime) { + // Cached token is still valid, return. + callback(null); + } else { + // Token invalid, throw error requesting user to sso login. + throw AWS.util.error( + new Error('SSO Token refresh failed. Please log in using "aws sso login"'), + { code: 'SSOTokenProviderFailure' } + ); + } +}; + +/** + * Represents token loaded from disk derived from the AWS SSO device grant authorication flow. + * + * ## Using SSO Token Provider + * + * This provider is checked by default in the Node.js environment in TokenProviderChain. + * To use the SSO Token Provider, simply add your SSO Start URL and Region to the + * ~/.aws/config file in the following format: + * + * [default] + * sso_start_url = https://d-abc123.awsapps.com/start + * sso_region = us-east-1 + * + * ## Using custom profiles + * + * The SDK supports loading token for separate profiles. This can be done in two ways: + * + * 1. Set the `AWS_PROFILE` environment variable in your process prior to loading the SDK. + * 2. Directly load the AWS.SSOTokenProvider: + * + * ```javascript + * var ssoTokenProvider = new AWS.SSOTokenProvider({profile: 'myprofile'}); + * ``` + * + * @!macro nobrowser + */ +AWS.SSOTokenProvider = AWS.util.inherit(AWS.Token, { + /** + * Expiry window of five minutes. + */ + expiryWindow: 5 * 60, + + /** + * Creates a new token object from cached access token. + * + * @param options [map] a set of options + * @option options profile [String] (AWS_PROFILE env var or 'default') + * the name of the profile to load. + * @option options callback [Function] (err) Token is eagerly loaded + * by the constructor. When the callback is called with no error, the + * token has been loaded successfully. + */ + constructor: function SSOTokenProvider(options) { + AWS.Token.call(this); + + options = options || {}; + + this.expired = true; + this.profile = options.profile || process.env.AWS_PROFILE || AWS.util.defaultProfile; + this.get(options.callback || AWS.util.fn.noop); + }, + + /** + * Reads sso_start_url from provided profile, and reads token from + * ~/.aws/sso/cache/.json + * + * Throws an error if required fields token and expiresAt are missing. + * Throws an error if token has expired and metadata to perform refresh is + * not available. + * Attempts to refresh the token if it's within 5 minutes before expiry time. + * + * @api private + */ + load: function load(callback) { + var self = this; + var profiles = iniLoader.loadFrom({ isConfig: true }); + var profile = profiles[this.profile] || {}; + + if (Object.keys(profile).length === 0) { + throw AWS.util.error( + new Error('Profile "' + this.profile + '" not found'), + { code: 'SSOTokenProviderFailure' } + ); + } else if (!profile['sso_session']) { + throw AWS.util.error( + new Error('Profile "' + profileName + '" is missing required property "sso_session".'), + { code: 'SSOTokenProviderFailure' } + ); + } + + var ssoSessionName = profile['sso_session']; + var ssoSessions = iniLoader.loadSsoSessionsFrom(); + var ssoSession = ssoSessions[ssoSessionName]; + + if (!ssoSession) { + throw AWS.util.error( + new Error('Sso session "' + ssoSessionName + '" not found'), + { code: 'SSOTokenProviderFailure' } + ); + } else if (!ssoSession['sso_start_url']) { + throw AWS.util.error( + new Error('Sso session "' + profileName + '" is missing required property "sso_start_url".'), + { code: 'SSOTokenProviderFailure' } + ); + } else if (!ssoSession['sso_region']) { + throw AWS.util.error( + new Error('Sso session "' + profileName + '" is missing required property "sso_region".'), + { code: 'SSOTokenProviderFailure' } + ); + } + + var hasher = crypto.createHash('sha1'); + var fileName = hasher.update(ssoSessionName).digest('hex') + '.json'; + var cachePath = path.join(iniLoader.getHomeDir(), '.aws', 'sso', 'cache', fileName); + var tokenFromCache = JSON.parse(fs.readFileSync(cachePath)); + + if (!tokenFromCache) { + throw AWS.util.error( + new Error('Cached token not found. Please log in using "aws sso login"' + + ' for profile "' + this.profile + '".'), + { code: 'SSOTokenProviderFailure' } + ); + } + + validateTokenKey(tokenFromCache, 'accessToken'); + validateTokenKey(tokenFromCache, 'expiresAt'); + + var currentTime = AWS.util.date.getDate().getTime(); + var adjustedTime = new Date(currentTime + this.expiryWindow * 1000); + var tokenExpireTime = new Date(tokenFromCache['expiresAt']); + + if (tokenExpireTime > adjustedTime) { + // Token is valid and not expired. + self.token = tokenFromCache.accessToken; + self.expireTime = tokenExpireTime; + self.expired = false; + callback(null); + return; + } + + // Skip new refresh, if last refresh was done within 30 seconds. + if (currentTime - lastRefreshAttemptTime < 30 * 1000) { + refreshUnsuccessful(currentTime, tokenExpireTime, callback); + return; + } - XMLNode.prototype.i = function(target, value) { - return this.instruction(target, value); - }; + // Token is in expiry window, refresh from SSOOIDC.createToken() call. + validateTokenKey(tokenFromCache, 'clientId'); + validateTokenKey(tokenFromCache, 'clientSecret'); + validateTokenKey(tokenFromCache, 'refreshToken'); - XMLNode.prototype.u = function() { - return this.up(); - }; + if (!self.service || self.service.config.region !== ssoSession.sso_region) { + self.service = new AWS.SSOOIDC({ region: ssoSession.sso_region }); + } - XMLNode.prototype.importXMLBuilder = function(doc) { - return this.importDocument(doc); + var params = { + clientId: tokenFromCache.clientId, + clientSecret: tokenFromCache.clientSecret, + refreshToken: tokenFromCache.refreshToken, + grantType: 'refresh_token', }; - return XMLNode; - - })(); + lastRefreshAttemptTime = AWS.util.date.getDate().getTime(); + self.service.createToken(params, function(err, data) { + if (err || !data) { + refreshUnsuccessful(currentTime, tokenExpireTime, callback); + } else { + try { + validateTokenKey(data, 'accessToken'); + validateTokenKey(data, 'expiresIn'); + self.expired = false; + self.token = data.accessToken; + self.expireTime = new Date(Date.now() + data.expiresIn * 1000); + callback(null); + + try { + // Write updated token data to disk. + tokenFromCache.accessToken = data.accessToken; + tokenFromCache.expiresAt = self.expireTime.toISOString(); + tokenFromCache.refreshToken = data.refreshToken; + fs.writeFileSync(cachePath, JSON.stringify(tokenFromCache, null, 2)); + } catch (error) { + // Swallow error if unable to write token to file. + } + } catch (error) { + refreshUnsuccessful(currentTime, tokenExpireTime, callback); + } + } + }); + }, -}).call(this); + /** + * Loads the cached access token from disk. + * + * @callback callback function(err) + * Called after the AWS SSO process has been executed. When this + * callback is called with no error, it means that the token information + * has been loaded into the object (as the `token` property). + * @param err [Error] if an error occurred, this value will be filled. + * @see get + */ + refresh: function refresh(callback) { + iniLoader.clearCachedFiles(); + this.coalesceRefresh(callback || AWS.util.fn.callback); + }, +}); /***/ }), @@ -17711,7 +21397,7 @@ AWS.util.update(AWS.STS.prototype, { /***/ (function(module, __unusedexports, __webpack_require__) { var util = __webpack_require__(395).util; -var Transform = __webpack_require__(413).Transform; +var Transform = __webpack_require__(794).Transform; var allocBuffer = util.buffer.alloc; /** @type {Transform} */ @@ -17840,7 +21526,7 @@ module.exports = { var AWS = __webpack_require__(395); var fs = __webpack_require__(747); -var STS = __webpack_require__(733); +var STS = __webpack_require__(106); var iniLoader = AWS.util.iniLoader; /** @@ -18145,13 +21831,6 @@ AWS.EnvironmentCredentials = AWS.util.inherit(AWS.Credentials, { }); -/***/ }), - -/***/ 876: -/***/ (function(module) { - -module.exports = require("http"); - /***/ }), /***/ 884: @@ -18584,7 +22263,7 @@ AWS.NodeHttpClient = AWS.util.inherit({ } var useSSL = endpoint.protocol === 'https:'; - var http = useSSL ? __webpack_require__(211) : __webpack_require__(876); + var http = useSSL ? __webpack_require__(211) : __webpack_require__(605); var options = { host: endpoint.hostname, port: endpoint.port, @@ -18648,18 +22327,22 @@ AWS.NodeHttpClient = AWS.util.inherit({ stream.abort(); }); - stream.on('error', function() { + stream.on('error', function(err) { if (connectTimeoutId) { clearTimeout(connectTimeoutId); connectTimeoutId = null; } if (stream.didCallback) return; stream.didCallback = true; - errCallback.apply(stream, arguments); + if ('ECONNRESET' === err.code || 'EPIPE' === err.code || 'ETIMEDOUT' === err.code) { + errCallback(AWS.util.error(err, {code: 'TimeoutError'})); + } else { + errCallback(err); + } }); var expect = httpRequest.headers.Expect || httpRequest.headers.expect; if (expect === '100-continue') { - stream.on('continue', function() { + stream.once('continue', function() { self.writeBody(stream, httpRequest); }); } else { @@ -18706,7 +22389,7 @@ AWS.NodeHttpClient = AWS.util.inherit({ * Create the https.Agent or http.Agent according to the request schema. */ getAgent: function getAgent(useSSL, agentOptions) { - var http = useSSL ? __webpack_require__(211) : __webpack_require__(876); + var http = useSSL ? __webpack_require__(211) : __webpack_require__(605); if (useSSL) { if (!AWS.NodeHttpClient.sslAgent) { AWS.NodeHttpClient.sslAgent = new http.Agent(AWS.util.merge({ @@ -18790,18 +22473,124 @@ module.exports.iniLoader = new IniLoader(); /***/ }), -/***/ 898: -/***/ (function(module, __unusedexports, __webpack_require__) { +/***/ 893: +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _rng = _interopRequireDefault(__webpack_require__(844)); + +var _bytesToUuid = _interopRequireDefault(__webpack_require__(390)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +// **`v1()` - Generate time-based UUID** +// +// Inspired by https://github.com/LiosK/UUID.js +// and http://docs.python.org/library/uuid.html +var _nodeId; + +var _clockseq; // Previous uuid creation time + -var v1 = __webpack_require__(86); -var v4 = __webpack_require__(826); +var _lastMSecs = 0; +var _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details + +function v1(options, buf, offset) { + var i = buf && offset || 0; + var b = buf || []; + options = options || {}; + var node = options.node || _nodeId; + var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not + // specified. We do this lazily to minimize issues related to insufficient + // system entropy. See #189 + + if (node == null || clockseq == null) { + var seedBytes = options.random || (options.rng || _rng.default)(); + + if (node == null) { + // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) + node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]]; + } + + if (clockseq == null) { + // Per 4.2.2, randomize (14 bit) clockseq + clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff; + } + } // UUID timestamps are 100 nano-second units since the Gregorian epoch, + // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so + // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs' + // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. + + + var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime(); // Per 4.2.1.2, use count of uuid's generated during the current clock + // cycle to simulate higher resolution clock + + var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs) + + var dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression + + if (dt < 0 && options.clockseq === undefined) { + clockseq = clockseq + 1 & 0x3fff; + } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new + // time interval -var uuid = v4; -uuid.v1 = v1; -uuid.v4 = v4; -module.exports = uuid; + if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) { + nsecs = 0; + } // Per 4.2.1.2 Throw error if too many uuids are requested + + + if (nsecs >= 10000) { + throw new Error("uuid.v1(): Can't create more than 10M uuids/sec"); + } + + _lastMSecs = msecs; + _lastNSecs = nsecs; + _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch + + msecs += 12219292800000; // `time_low` + + var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; + b[i++] = tl >>> 24 & 0xff; + b[i++] = tl >>> 16 & 0xff; + b[i++] = tl >>> 8 & 0xff; + b[i++] = tl & 0xff; // `time_mid` + + var tmh = msecs / 0x100000000 * 10000 & 0xfffffff; + b[i++] = tmh >>> 8 & 0xff; + b[i++] = tmh & 0xff; // `time_high_and_version` + + b[i++] = tmh >>> 24 & 0xf | 0x10; // include version + + b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) + + b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low` + + b[i++] = clockseq & 0xff; // `node` + + for (var n = 0; n < 6; ++n) { + b[i + n] = node[n]; + } + + return buf ? buf : (0, _bytesToUuid.default)(b); +} + +var _default = v1; +exports.default = _default; + +/***/ }), + +/***/ 896: +/***/ (function(module) { +module.exports = {"version":2,"waiters":{"DeploymentSuccessful":{"delay":15,"operation":"GetDeployment","maxAttempts":120,"acceptors":[{"expected":"Succeeded","matcher":"path","state":"success","argument":"deploymentInfo.status"},{"expected":"Failed","matcher":"path","state":"failure","argument":"deploymentInfo.status"},{"expected":"Stopped","matcher":"path","state":"failure","argument":"deploymentInfo.status"}]}}}; /***/ }), @@ -19058,6 +22847,7 @@ AWS.CredentialProviderChain = AWS.util.inherit(AWS.Credentials, { * AWS.CredentialProviderChain.defaultProviders = [ * function () { return new AWS.EnvironmentCredentials('AWS'); }, * function () { return new AWS.EnvironmentCredentials('AMAZON'); }, + * function () { return new AWS.SsoCredentials(); }, * function () { return new AWS.SharedIniFileCredentials(); }, * function () { return new AWS.ECSCredentials(); }, * function () { return new AWS.ProcessCredentials(); }, @@ -19123,8 +22913,9 @@ function extractError(resp) { if (httpResponse.body.length > 0) { try { var e = JSON.parse(httpResponse.body.toString()); - if (e.__type || e.code) { - error.code = (e.__type || e.code).split('#').pop(); + var code = e.__type || e.code || e.Code; + if (code) { + error.code = code.split('#').pop(); } if (error.code === 'RequestEntityTooLarge') { error.message = 'Request body must be less than 1 MB'; @@ -19841,6 +23632,52 @@ AWS.Signers.Presign = inherit({ module.exports = AWS.Signers.Presign; +/***/ }), + +/***/ 960: +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _validate = _interopRequireDefault(__webpack_require__(634)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * Convert array of 16 byte values to UUID string format of the form: + * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX + */ +const byteToHex = []; + +for (let i = 0; i < 256; ++i) { + byteToHex.push((i + 0x100).toString(16).substr(1)); +} + +function stringify(arr, offset = 0) { + // Note: Be careful editing this code! It's been tuned for performance + // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434 + const uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one + // of the following: + // - One or more input array values don't map to a hex octet (leading to + // "undefined" in the uuid) + // - Invalid input values for the RFC `version` or `variant` fields + + if (!(0, _validate.default)(uuid)) { + throw TypeError('Stringified UUID is invalid'); + } + + return uuid; +} + +var _default = stringify; +exports.default = _default; + /***/ }), /***/ 964: @@ -19872,6 +23709,12 @@ function Operation(name, operation, options) { 'NULL' ); + // httpChecksum replaces usage of httpChecksumRequired, but some APIs + // (s3control) still uses old trait. + var httpChecksumRequired = operation.httpChecksumRequired + || (operation.httpChecksum && operation.httpChecksum.requestChecksumRequired); + property(this, 'httpChecksumRequired', httpChecksumRequired, false); + memoizedProperty(this, 'input', function() { if (!operation.input) { return new Shape.create({type: 'structure'}, options); @@ -19970,7 +23813,13 @@ module.exports = Operation; * Escapes characters that can not be in an XML element. */ function escapeElement(value) { - return value.replace(/&/g, '&').replace(//g, '>'); + return value.replace(/&/g, '&') + .replace(//g, '>') + .replace(/\r/g, ' ') + .replace(/\n/g, ' ') + .replace(/\u0085/g, '…') + .replace(/\u2028/, '
'); } /** @@ -19987,7 +23836,7 @@ module.exports = { /***/ (function(__unusedmodule, __unusedexports, __webpack_require__) { var AWS = __webpack_require__(395); -var STS = __webpack_require__(733); +var STS = __webpack_require__(106); /** * Represents credentials retrieved from STS SAML support. @@ -20147,8 +23996,9 @@ AWS.ParamValidator = AWS.util.inherit({ }, validateStructure: function validateStructure(shape, params, context) { - this.validateType(params, context, ['object'], 'structure'); + if (shape.isDocument) return true; + this.validateType(params, context, ['object'], 'structure'); var paramName; for (var i = 0; shape.required && i < shape.required.length; i++) { paramName = shape.required[i]; @@ -20169,7 +24019,7 @@ AWS.ParamValidator = AWS.util.inherit({ if (memberShape !== undefined) { var memberContext = [context, paramName].join('.'); this.validateMember(memberShape, paramValue, memberContext); - } else { + } else if (paramValue !== undefined && paramValue !== null) { this.fail('UnexpectedParameter', 'Unexpected key \'' + paramName + '\' found in ' + context); } @@ -20489,7 +24339,7 @@ AWS.ProcessCredentials = AWS.util.inherit(AWS.Credentials, { * @throws ProcessCredentialsProviderFailure */ loadViaCredentialProcess: function loadViaCredentialProcess(profile, callback) { - proc.exec(profile['credential_process'], function(err, stdOut, stdErr) { + proc.exec(profile['credential_process'], { env: process.env }, function(err, stdOut, stdErr) { if (err) { callback(AWS.util.error( new Error('credential_process returned error'), @@ -20966,6 +24816,106 @@ module.exports = { }).call(this); +/***/ }), + +/***/ 996: +/***/ (function(module, __unusedexports, __webpack_require__) { + +var util = __webpack_require__(395).util; +var toBuffer = util.buffer.toBuffer; + +/** + * A lossless representation of a signed, 64-bit integer. Instances of this + * class may be used in arithmetic expressions as if they were numeric + * primitives, but the binary representation will be preserved unchanged as the + * `bytes` property of the object. The bytes should be encoded as big-endian, + * two's complement integers. + * @param {Buffer} bytes + * + * @api private + */ +function Int64(bytes) { + if (bytes.length !== 8) { + throw new Error('Int64 buffers must be exactly 8 bytes'); + } + if (!util.Buffer.isBuffer(bytes)) bytes = toBuffer(bytes); + + this.bytes = bytes; +} + +/** + * @param {number} number + * @returns {Int64} + * + * @api private + */ +Int64.fromNumber = function(number) { + if (number > 9223372036854775807 || number < -9223372036854775808) { + throw new Error( + number + ' is too large (or, if negative, too small) to represent as an Int64' + ); + } + + var bytes = new Uint8Array(8); + for ( + var i = 7, remaining = Math.abs(Math.round(number)); + i > -1 && remaining > 0; + i--, remaining /= 256 + ) { + bytes[i] = remaining; + } + + if (number < 0) { + negate(bytes); + } + + return new Int64(bytes); +}; + +/** + * @returns {number} + * + * @api private + */ +Int64.prototype.valueOf = function() { + var bytes = this.bytes.slice(0); + var negative = bytes[0] & 128; + if (negative) { + negate(bytes); + } + + return parseInt(bytes.toString('hex'), 16) * (negative ? -1 : 1); +}; + +Int64.prototype.toString = function() { + return String(this.valueOf()); +}; + +/** + * @param {Buffer} bytes + * + * @api private + */ +function negate(bytes) { + for (var i = 0; i < 8; i++) { + bytes[i] ^= 0xFF; + } + for (var i = 7; i > -1; i--) { + bytes[i]++; + if (bytes[i] !== 0) { + break; + } + } +} + +/** + * @api private + */ +module.exports = { + Int64: Int64 +}; + + /***/ }) /******/ }); \ No newline at end of file diff --git a/src/index.ts b/src/index.ts index d524e0d..60b551e 100644 --- a/src/index.ts +++ b/src/index.ts @@ -6,9 +6,9 @@ import STS from 'aws-sdk/clients/sts' async function run(): Promise { try { - const appName = core.getInput('application-name') - const groupName = core.getInput('deployment-group-name') - const appspecFile = core.getInput('appspec-file') + const appName = core.getInput('application-name', {required: true}) + const groupName = core.getInput('deployment-group-name', {required: true}) + const appspecFile = core.getInput('appspec-file', {required: true}) core.debug(`Hello world! ${appName}, ${groupName}, ${appspecFile}`) const appspecJson = fs.readFileSync(appspecFile, 'utf8') From a85ee8f7fb77ef03819ab5d17a1cc6ba4b7605af Mon Sep 17 00:00:00 2001 From: Gary Crye Date: Wed, 2 Nov 2022 14:06:27 -0600 Subject: [PATCH 03/10] Use Node.js 16 --- .github/workflows/ci.yaml | 2 +- action.yaml | 2 +- package.json | 2 +- yarn.lock | 8 ++++---- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 834e957..87d3c48 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -6,7 +6,7 @@ on: - master - 'v*' env: - node_version: "12.x" + node_version: "16.x" jobs: build: # make sure build/ci work properly diff --git a/action.yaml b/action.yaml index 4513714..6e15ed2 100644 --- a/action.yaml +++ b/action.yaml @@ -11,5 +11,5 @@ inputs: description: 'Appspec file' required: true runs: - using: 'node12' + using: 'node16' main: 'dist/index.js' diff --git a/package.json b/package.json index 474b1eb..8f93a31 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ }, "devDependencies": { "@types/jest": "^24.0.23", - "@types/node": "^12.7.12", + "@types/node": "^16.18.3", "@typescript-eslint/parser": "^2.8.0", "@zeit/ncc": "^0.20.5", "eslint": "^5.16.0", diff --git a/yarn.lock b/yarn.lock index 8771ee1..3b838b0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -584,10 +584,10 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.14.tgz#24a0b5959f16ac141aeb0c5b3cd7a15b7c64cbce" integrity sha512-syUgf67ZQpaJj01/tRTknkMNoBBLWJOBODF0Zm4NrXmiSuxjymFrxnTu1QVYRubhVkRcZLYZG8STTwJRdVm/WQ== -"@types/node@^12.7.12": - version "12.12.47" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.47.tgz#5007b8866a2f9150de82335ca7e24dd1d59bdfb5" - integrity sha512-yzBInQFhdY8kaZmqoL2+3U5dSTMrKaYcb561VU+lDzAYvqt+2lojvBEy+hmpSNuXnPTx7m9+04CzWYOUqWME2A== +"@types/node@^16.18.3": + version "16.18.3" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.3.tgz#d7f7ba828ad9e540270f01ce00d391c54e6e0abc" + integrity sha512-jh6m0QUhIRcZpNv7Z/rpN+ZWXOicUUQbSoWks7Htkbb9IjFQj4kzcX/xFCkjstCj5flMsN8FiSvt+q+Tcs4Llg== "@types/parse-json@^4.0.0": version "4.0.0" From ae70208a21f1cba527d832954d8067695d05dfa7 Mon Sep 17 00:00:00 2001 From: Gary Crye Date: Wed, 2 Nov 2022 14:11:07 -0600 Subject: [PATCH 04/10] Remove unused `js-yaml` dev dependency --- package.json | 1 - yarn.lock | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/package.json b/package.json index 8f93a31..6ec997a 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,6 @@ "eslint-plugin-prettier": "^3.1.3", "jest": "^24.9.0", "jest-circus": "^24.9.0", - "js-yaml": "^3.13.1", "prettier": "^1.19.1", "ts-jest": "^24.2.0", "typescript": "^3.6.4" diff --git a/yarn.lock b/yarn.lock index 3b838b0..9f68253 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3110,7 +3110,7 @@ jmespath@0.16.0: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^3.13.0, js-yaml@^3.13.1: +js-yaml@^3.13.0: version "3.14.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== From 9e6193fd403da93d39c34dab5685c463d4d65f4d Mon Sep 17 00:00:00 2001 From: Gary Crye Date: Wed, 2 Nov 2022 14:16:08 -0600 Subject: [PATCH 05/10] Update to `typescript@^4.8.4` --- dist/index.js | 18 +++++++++++++++--- package.json | 2 +- src/index.ts | 8 +++++++- yarn.lock | 8 ++++---- 4 files changed, 27 insertions(+), 9 deletions(-) diff --git a/dist/index.js b/dist/index.js index 52c29c6..e0c90dc 100644 --- a/dist/index.js +++ b/dist/index.js @@ -10039,7 +10039,11 @@ exports.default = _default; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -10052,7 +10056,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? ( var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; @@ -10114,7 +10118,15 @@ To view the progress of this deployment: process.exit(0); } catch (error) { - core.setFailed(error.message); + if (error instanceof Error) { + core.setFailed(error.message); + } + else if (typeof error === 'string') { + core.setFailed(error); + } + else { + core.setFailed(`An unexpected error occurred: ${error}`); + } } } run(); diff --git a/package.json b/package.json index 6ec997a..90af0ae 100644 --- a/package.json +++ b/package.json @@ -31,6 +31,6 @@ "jest-circus": "^24.9.0", "prettier": "^1.19.1", "ts-jest": "^24.2.0", - "typescript": "^3.6.4" + "typescript": "^4.8.4" } } diff --git a/src/index.ts b/src/index.ts index 60b551e..a99c7a7 100644 --- a/src/index.ts +++ b/src/index.ts @@ -59,7 +59,13 @@ To view the progress of this deployment: process.exit(0) } catch (error) { - core.setFailed(error.message) + if (error instanceof Error) { + core.setFailed(error.message) + } else if (typeof error === 'string') { + core.setFailed(error) + } else { + core.setFailed(`An unexpected error occurred: ${error}`) + } } } diff --git a/yarn.lock b/yarn.lock index 9f68253..4652fe4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4836,10 +4836,10 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" -typescript@^3.6.4: - version "3.9.6" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.6.tgz#8f3e0198a34c3ae17091b35571d3afd31999365a" - integrity sha512-Pspx3oKAPJtjNwE92YS05HQoY7z2SFyOpHo9MqJor3BXAGNaPUs83CuVp9VISFkSjyRfiTpmKuAYGJB7S7hOxw== +typescript@^4.8.4: + version "4.8.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.4.tgz#c464abca159669597be5f96b8943500b238e60e6" + integrity sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ== union-value@^1.0.0: version "1.0.1" From f746f8e2dbd18181217b43ec28d2cbd406479a06 Mon Sep 17 00:00:00 2001 From: Gary Crye Date: Wed, 2 Nov 2022 14:17:27 -0600 Subject: [PATCH 06/10] Update to `jest@^29` BTW, `jest-circus` is the default parser nowadays --- dist/index.js | 16004 ++++++++++++++++++++++++------------------------ package.json | 7 +- yarn.lock | 3789 +++++------- 3 files changed, 9618 insertions(+), 10182 deletions(-) diff --git a/dist/index.js b/dist/index.js index e0c90dc..cf6022c 100644 --- a/dist/index.js +++ b/dist/index.js @@ -5263,4787 +5263,4704 @@ module.exports = {"pagination":{"ListIdentityPools":{"input_token":"NextToken"," /***/ }), -/***/ 293: +/***/ 292: /***/ (function(__unusedmodule, exports, __webpack_require__) { -"use strict"; +;(function (sax) { // wrapper for non-node envs + sax.parser = function (strict, opt) { return new SAXParser(strict, opt) } + sax.SAXParser = SAXParser + sax.SAXStream = SAXStream + sax.createStream = createStream + // When we pass the MAX_BUFFER_LENGTH position, start checking for buffer overruns. + // When we check, schedule the next check for MAX_BUFFER_LENGTH - (max(buffer lengths)), + // since that's the earliest that a buffer overrun could occur. This way, checks are + // as rare as required, but as often as necessary to ensure never crossing this bound. + // Furthermore, buffers are only tested at most once per write(), so passing a very + // large string into write() might have undesirable effects, but this is manageable by + // the caller, so it is assumed to be safe. Thus, a call to write() may, in the extreme + // edge case, result in creating at most one complete copy of the string passed in. + // Set to Infinity to have unlimited buffers. + sax.MAX_BUFFER_LENGTH = 64 * 1024 -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = void 0; + var buffers = [ + 'comment', 'sgmlDecl', 'textNode', 'tagName', 'doctype', + 'procInstName', 'procInstBody', 'entity', 'attribName', + 'attribValue', 'cdata', 'script' + ] -var _rng = _interopRequireDefault(__webpack_require__(506)); + sax.EVENTS = [ + 'text', + 'processinginstruction', + 'sgmldeclaration', + 'doctype', + 'comment', + 'opentagstart', + 'attribute', + 'opentag', + 'closetag', + 'opencdata', + 'cdata', + 'closecdata', + 'error', + 'end', + 'ready', + 'script', + 'opennamespace', + 'closenamespace' + ] -var _stringify = _interopRequireDefault(__webpack_require__(960)); + function SAXParser (strict, opt) { + if (!(this instanceof SAXParser)) { + return new SAXParser(strict, opt) + } -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + var parser = this + clearBuffers(parser) + parser.q = parser.c = '' + parser.bufferCheckPosition = sax.MAX_BUFFER_LENGTH + parser.opt = opt || {} + parser.opt.lowercase = parser.opt.lowercase || parser.opt.lowercasetags + parser.looseCase = parser.opt.lowercase ? 'toLowerCase' : 'toUpperCase' + parser.tags = [] + parser.closed = parser.closedRoot = parser.sawRoot = false + parser.tag = parser.error = null + parser.strict = !!strict + parser.noscript = !!(strict || parser.opt.noscript) + parser.state = S.BEGIN + parser.strictEntities = parser.opt.strictEntities + parser.ENTITIES = parser.strictEntities ? Object.create(sax.XML_ENTITIES) : Object.create(sax.ENTITIES) + parser.attribList = [] -function v4(options, buf, offset) { - options = options || {}; + // namespaces form a prototype chain. + // it always points at the current tag, + // which protos to its parent tag. + if (parser.opt.xmlns) { + parser.ns = Object.create(rootNS) + } - const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` + // mostly just for error reporting + parser.trackPosition = parser.opt.position !== false + if (parser.trackPosition) { + parser.position = parser.line = parser.column = 0 + } + emit(parser, 'onready') + } + if (!Object.create) { + Object.create = function (o) { + function F () {} + F.prototype = o + var newf = new F() + return newf + } + } - rnds[6] = rnds[6] & 0x0f | 0x40; - rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided + if (!Object.keys) { + Object.keys = function (o) { + var a = [] + for (var i in o) if (o.hasOwnProperty(i)) a.push(i) + return a + } + } - if (buf) { - offset = offset || 0; + function checkBufferLength (parser) { + var maxAllowed = Math.max(sax.MAX_BUFFER_LENGTH, 10) + var maxActual = 0 + for (var i = 0, l = buffers.length; i < l; i++) { + var len = parser[buffers[i]].length + if (len > maxAllowed) { + // Text/cdata nodes can get big, and since they're buffered, + // we can get here under normal conditions. + // Avoid issues by emitting the text node now, + // so at least it won't get any bigger. + switch (buffers[i]) { + case 'textNode': + closeText(parser) + break - for (let i = 0; i < 16; ++i) { - buf[offset + i] = rnds[i]; + case 'cdata': + emitNode(parser, 'oncdata', parser.cdata) + parser.cdata = '' + break + + case 'script': + emitNode(parser, 'onscript', parser.script) + parser.script = '' + break + + default: + error(parser, 'Max buffer length exceeded: ' + buffers[i]) + } + } + maxActual = Math.max(maxActual, len) } + // schedule the next check for the earliest possible buffer overrun. + var m = sax.MAX_BUFFER_LENGTH - maxActual + parser.bufferCheckPosition = m + parser.position + } - return buf; + function clearBuffers (parser) { + for (var i = 0, l = buffers.length; i < l; i++) { + parser[buffers[i]] = '' + } } - return (0, _stringify.default)(rnds); -} + function flushBuffers (parser) { + closeText(parser) + if (parser.cdata !== '') { + emitNode(parser, 'oncdata', parser.cdata) + parser.cdata = '' + } + if (parser.script !== '') { + emitNode(parser, 'onscript', parser.script) + parser.script = '' + } + } -var _default = v4; -exports.default = _default; + SAXParser.prototype = { + end: function () { end(this) }, + write: write, + resume: function () { this.error = null; return this }, + close: function () { return this.write(null) }, + flush: function () { flushBuffers(this) } + } -/***/ }), + var Stream + try { + Stream = __webpack_require__(794).Stream + } catch (ex) { + Stream = function () {} + } -/***/ 304: -/***/ (function(module) { + var streamWraps = sax.EVENTS.filter(function (ev) { + return ev !== 'error' && ev !== 'end' + }) -module.exports = require("string_decoder"); + function createStream (strict, opt) { + return new SAXStream(strict, opt) + } -/***/ }), + function SAXStream (strict, opt) { + if (!(this instanceof SAXStream)) { + return new SAXStream(strict, opt) + } -/***/ 306: -/***/ (function(__unusedmodule, __unusedexports, __webpack_require__) { + Stream.apply(this) -var AWS = __webpack_require__(395); -var STS = __webpack_require__(106); + this._parser = new SAXParser(strict, opt) + this.writable = true + this.readable = true -/** - * Represents credentials retrieved from STS Web Identity Federation support. - * - * By default this provider gets credentials using the - * {AWS.STS.assumeRoleWithWebIdentity} service operation. This operation - * requires a `RoleArn` containing the ARN of the IAM trust policy for the - * application for which credentials will be given. In addition, the - * `WebIdentityToken` must be set to the token provided by the identity - * provider. See {constructor} for an example on creating a credentials - * object with proper `RoleArn` and `WebIdentityToken` values. - * - * ## Refreshing Credentials from Identity Service - * - * In addition to AWS credentials expiring after a given amount of time, the - * login token from the identity provider will also expire. Once this token - * expires, it will not be usable to refresh AWS credentials, and another - * token will be needed. The SDK does not manage refreshing of the token value, - * but this can be done through a "refresh token" supported by most identity - * providers. Consult the documentation for the identity provider for refreshing - * tokens. Once the refreshed token is acquired, you should make sure to update - * this new token in the credentials object's {params} property. The following - * code will update the WebIdentityToken, assuming you have retrieved an updated - * token from the identity provider: - * - * ```javascript - * AWS.config.credentials.params.WebIdentityToken = updatedToken; - * ``` - * - * Future calls to `credentials.refresh()` will now use the new token. - * - * @!attribute params - * @return [map] the map of params passed to - * {AWS.STS.assumeRoleWithWebIdentity}. To update the token, set the - * `params.WebIdentityToken` property. - * @!attribute data - * @return [map] the raw data response from the call to - * {AWS.STS.assumeRoleWithWebIdentity}. Use this if you want to get - * access to other properties from the response. - */ -AWS.WebIdentityCredentials = AWS.util.inherit(AWS.Credentials, { - /** - * Creates a new credentials object. - * @param (see AWS.STS.assumeRoleWithWebIdentity) - * @example Creating a new credentials object - * AWS.config.credentials = new AWS.WebIdentityCredentials({ - * RoleArn: 'arn:aws:iam::1234567890:role/WebIdentity', - * WebIdentityToken: 'ABCDEFGHIJKLMNOP', // token from identity service - * RoleSessionName: 'web' // optional name, defaults to web-identity - * }, { - * // optionally provide configuration to apply to the underlying AWS.STS service client - * // if configuration is not provided, then configuration will be pulled from AWS.config - * - * // specify timeout options - * httpOptions: { - * timeout: 100 - * } - * }); - * @see AWS.STS.assumeRoleWithWebIdentity - * @see AWS.Config - */ - constructor: function WebIdentityCredentials(params, clientConfig) { - AWS.Credentials.call(this); - this.expired = true; - this.params = params; - this.params.RoleSessionName = this.params.RoleSessionName || 'web-identity'; - this.data = null; - this._clientConfig = AWS.util.copy(clientConfig || {}); - }, - - /** - * Refreshes credentials using {AWS.STS.assumeRoleWithWebIdentity} - * - * @callback callback function(err) - * Called when the STS service responds (or fails). When - * this callback is called with no error, it means that the credentials - * information has been loaded into the object (as the `accessKeyId`, - * `secretAccessKey`, and `sessionToken` properties). - * @param err [Error] if an error occurred, this value will be filled - * @see get - */ - refresh: function refresh(callback) { - this.coalesceRefresh(callback || AWS.util.fn.callback); - }, - - /** - * @api private - */ - load: function load(callback) { - var self = this; - self.createClients(); - self.service.assumeRoleWithWebIdentity(function (err, data) { - self.data = null; - if (!err) { - self.data = data; - self.service.credentialsFrom(data, self); - } - callback(err); - }); - }, + var me = this - /** - * @api private - */ - createClients: function() { - if (!this.service) { - var stsConfig = AWS.util.merge({}, this._clientConfig); - stsConfig.params = this.params; - this.service = new STS(stsConfig); + this._parser.onend = function () { + me.emit('end') } - } - -}); - - -/***/ }), - -/***/ 312: -/***/ (function(module, __unusedexports, __webpack_require__) { - -// Generated by CoffeeScript 1.12.7 -(function() { - var XMLDocument, XMLDocumentCB, XMLStreamWriter, XMLStringWriter, assign, isFunction, ref; - - ref = __webpack_require__(582), assign = ref.assign, isFunction = ref.isFunction; - XMLDocument = __webpack_require__(559); + this._parser.onerror = function (er) { + me.emit('error', er) - XMLDocumentCB = __webpack_require__(768); + // if didn't throw, then means error was handled. + // go ahead and clear error, so we can write again. + me._parser.error = null + } - XMLStringWriter = __webpack_require__(750); + this._decoder = null - XMLStreamWriter = __webpack_require__(458); + streamWraps.forEach(function (ev) { + Object.defineProperty(me, 'on' + ev, { + get: function () { + return me._parser['on' + ev] + }, + set: function (h) { + if (!h) { + me.removeAllListeners(ev) + me._parser['on' + ev] = h + return h + } + me.on(ev, h) + }, + enumerable: true, + configurable: false + }) + }) + } - module.exports.create = function(name, xmldec, doctype, options) { - var doc, root; - if (name == null) { - throw new Error("Root element needs a name"); - } - options = assign({}, xmldec, doctype, options); - doc = new XMLDocument(options); - root = doc.element(name); - if (!options.headless) { - doc.declaration(options); - if ((options.pubID != null) || (options.sysID != null)) { - doc.doctype(options); - } + SAXStream.prototype = Object.create(Stream.prototype, { + constructor: { + value: SAXStream } - return root; - }; + }) - module.exports.begin = function(options, onData, onEnd) { - var ref1; - if (isFunction(options)) { - ref1 = [options, onData], onData = ref1[0], onEnd = ref1[1]; - options = {}; - } - if (onData) { - return new XMLDocumentCB(options, onData, onEnd); - } else { - return new XMLDocument(options); + SAXStream.prototype.write = function (data) { + if (typeof Buffer === 'function' && + typeof Buffer.isBuffer === 'function' && + Buffer.isBuffer(data)) { + if (!this._decoder) { + var SD = __webpack_require__(304).StringDecoder + this._decoder = new SD('utf8') + } + data = this._decoder.write(data) } - }; - module.exports.stringWriter = function(options) { - return new XMLStringWriter(options); - }; + this._parser.write(data.toString()) + this.emit('data', data) + return true + } - module.exports.streamWriter = function(stream, options) { - return new XMLStreamWriter(stream, options); - }; + SAXStream.prototype.end = function (chunk) { + if (chunk && chunk.length) { + this.write(chunk) + } + this._parser.end() + return true + } -}).call(this); + SAXStream.prototype.on = function (ev, handler) { + var me = this + if (!me._parser['on' + ev] && streamWraps.indexOf(ev) !== -1) { + me._parser['on' + ev] = function () { + var args = arguments.length === 1 ? [arguments[0]] : Array.apply(null, arguments) + args.splice(0, 0, ev) + me.emit.apply(me, args) + } + } + return Stream.prototype.on.call(me, ev, handler) + } -/***/ }), + // this really needs to be replaced with character classes. + // XML allows all manner of ridiculous numbers and digits. + var CDATA = '[CDATA[' + var DOCTYPE = 'DOCTYPE' + var XML_NAMESPACE = 'http://www.w3.org/XML/1998/namespace' + var XMLNS_NAMESPACE = 'http://www.w3.org/2000/xmlns/' + var rootNS = { xml: XML_NAMESPACE, xmlns: XMLNS_NAMESPACE } -/***/ 315: -/***/ (function(module, __unusedexports, __webpack_require__) { + // http://www.w3.org/TR/REC-xml/#NT-NameStartChar + // This implementation works on strings, a single character at a time + // as such, it cannot ever support astral-plane characters (10000-EFFFF) + // without a significant breaking change to either this parser, or the + // JavaScript language. Implementation of an emoji-capable xml parser + // is left as an exercise for the reader. + var nameStart = /[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/ -var util = __webpack_require__(153); -var Rest = __webpack_require__(618); -var Json = __webpack_require__(912); -var JsonBuilder = __webpack_require__(337); -var JsonParser = __webpack_require__(806); + var nameBody = /[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/ -var METHODS_WITHOUT_BODY = ['GET', 'HEAD', 'DELETE']; + var entityStart = /[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/ + var entityBody = /[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/ -function unsetContentLength(req) { - var payloadMember = util.getRequestPayloadShape(req); - if ( - payloadMember === undefined && - METHODS_WITHOUT_BODY.indexOf(req.httpRequest.method) >= 0 - ) { - delete req.httpRequest.headers['Content-Length']; + function isWhitespace (c) { + return c === ' ' || c === '\n' || c === '\r' || c === '\t' } -} - -function populateBody(req) { - var builder = new JsonBuilder(); - var input = req.service.api.operations[req.operation].input; - - if (input.payload) { - var params = {}; - var payloadShape = input.members[input.payload]; - params = req.params[input.payload]; - if (payloadShape.type === 'structure') { - req.httpRequest.body = builder.build(params || {}, payloadShape); - applyContentTypeHeader(req); - } else if (params !== undefined) { - // non-JSON payload - req.httpRequest.body = params; - if (payloadShape.type === 'binary' || payloadShape.isStreaming) { - applyContentTypeHeader(req, true); - } - } - } else { - req.httpRequest.body = builder.build(req.params, input); - applyContentTypeHeader(req); + function isQuote (c) { + return c === '"' || c === '\'' } -} -function applyContentTypeHeader(req, isBinary) { - if (!req.httpRequest.headers['Content-Type']) { - var type = isBinary ? 'binary/octet-stream' : 'application/json'; - req.httpRequest.headers['Content-Type'] = type; + function isAttribEnd (c) { + return c === '>' || isWhitespace(c) } -} - -function buildRequest(req) { - Rest.buildRequest(req); - // never send body payload on GET/HEAD/DELETE - if (METHODS_WITHOUT_BODY.indexOf(req.httpRequest.method) < 0) { - populateBody(req); + function isMatch (regex, c) { + return regex.test(c) } -} - -function extractError(resp) { - Json.extractError(resp); -} - -function extractData(resp) { - Rest.extractData(resp); - var req = resp.request; - var operation = req.service.api.operations[req.operation]; - var rules = req.service.api.operations[req.operation].output || {}; - var parser; - var hasEventOutput = operation.hasEventOutput; + function notMatch (regex, c) { + return !isMatch(regex, c) + } - if (rules.payload) { - var payloadMember = rules.members[rules.payload]; - var body = resp.httpResponse.body; - if (payloadMember.isEventStream) { - parser = new JsonParser(); - resp.data[payload] = util.createEventStream( - AWS.HttpClient.streamsApiVersion === 2 ? resp.httpResponse.stream : body, - parser, - payloadMember - ); - } else if (payloadMember.type === 'structure' || payloadMember.type === 'list') { - var parser = new JsonParser(); - resp.data[rules.payload] = parser.parse(body, payloadMember); - } else if (payloadMember.type === 'binary' || payloadMember.isStreaming) { - resp.data[rules.payload] = body; - } else { - resp.data[rules.payload] = payloadMember.toType(body); - } - } else { - var data = resp.data; - Json.extractData(resp); - resp.data = util.merge(data, resp.data); - } -} - -/** - * @api private - */ -module.exports = { - buildRequest: buildRequest, - extractError: extractError, - extractData: extractData, - unsetContentLength: unsetContentLength -}; - - -/***/ }), - -/***/ 316: -/***/ (function(__unusedmodule, __unusedexports, __webpack_require__) { - -var AWS = __webpack_require__(395); - -/** - * Represents credentials received from relative URI specified in the ECS container. - * - * This class will request refreshable credentials from the relative URI - * specified by the AWS_CONTAINER_CREDENTIALS_RELATIVE_URI or the - * AWS_CONTAINER_CREDENTIALS_FULL_URI environment variable. If valid credentials - * are returned in the response, these will be used with zero configuration. - * - * This credentials class will by default timeout after 1 second of inactivity - * and retry 3 times. - * If your requests to the relative URI are timing out, you can increase - * the value by configuring them directly: - * - * ```javascript - * AWS.config.credentials = new AWS.ECSCredentials({ - * httpOptions: { timeout: 5000 }, // 5 second timeout - * maxRetries: 10, // retry 10 times - * retryDelayOptions: { base: 200 } // see AWS.Config for information - * }); - * ``` - * - * @see AWS.Config.retryDelayOptions - * - * @!macro nobrowser - */ -AWS.ECSCredentials = AWS.RemoteCredentials; - - -/***/ }), - -/***/ 317: -/***/ (function(module, __unusedexports, __webpack_require__) { - -__webpack_require__(234); -var AWS = __webpack_require__(395); -var Service = AWS.Service; -var apiLoader = AWS.apiLoader; - -apiLoader.services['codedeploy'] = {}; -AWS.CodeDeploy = Service.defineService('codedeploy', ['2014-10-06']); -Object.defineProperty(apiLoader.services['codedeploy'], '2014-10-06', { - get: function get() { - var model = __webpack_require__(721); - model.paginators = __webpack_require__(971).pagination; - model.waiters = __webpack_require__(896).waiters; - return model; - }, - enumerable: true, - configurable: true -}); - -module.exports = AWS.CodeDeploy; - - -/***/ }), - -/***/ 329: -/***/ (function(__unusedmodule, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = void 0; - -var _crypto = _interopRequireDefault(__webpack_require__(417)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function sha1(bytes) { - if (Array.isArray(bytes)) { - bytes = Buffer.from(bytes); - } else if (typeof bytes === 'string') { - bytes = Buffer.from(bytes, 'utf8'); - } - - return _crypto.default.createHash('sha1').update(bytes).digest(); -} - -var _default = sha1; -exports.default = _default; - -/***/ }), - -/***/ 337: -/***/ (function(module, __unusedexports, __webpack_require__) { - -var util = __webpack_require__(153); - -function JsonBuilder() { } - -JsonBuilder.prototype.build = function(value, shape) { - return JSON.stringify(translate(value, shape)); -}; - -function translate(value, shape) { - if (!shape || value === undefined || value === null) return undefined; - - switch (shape.type) { - case 'structure': return translateStructure(value, shape); - case 'map': return translateMap(value, shape); - case 'list': return translateList(value, shape); - default: return translateScalar(value, shape); + var S = 0 + sax.STATE = { + BEGIN: S++, // leading byte order mark or whitespace + BEGIN_WHITESPACE: S++, // leading whitespace + TEXT: S++, // general stuff + TEXT_ENTITY: S++, // & and such. + OPEN_WAKA: S++, // < + SGML_DECL: S++, // + SCRIPT: S++, //