about summary refs log tree commit diff
path: root/.venv/lib/python3.12/site-packages/botocore/data
diff options
context:
space:
mode:
authorS. Solomon Darnell2025-03-28 21:52:21 -0500
committerS. Solomon Darnell2025-03-28 21:52:21 -0500
commit4a52a71956a8d46fcb7294ac71734504bb09bcc2 (patch)
treeee3dc5af3b6313e921cd920906356f5d4febc4ed /.venv/lib/python3.12/site-packages/botocore/data
parentcc961e04ba734dd72309fb548a2f97d67d578813 (diff)
downloadgn-ai-master.tar.gz
two version of R2R are here HEAD master
Diffstat (limited to '.venv/lib/python3.12/site-packages/botocore/data')
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/_retry.json292
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/accessanalyzer/2019-11-01/endpoint-rule-set-1.json.gzbin0 -> 1241 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/accessanalyzer/2019-11-01/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/accessanalyzer/2019-11-01/paginators-1.json70
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/accessanalyzer/2019-11-01/paginators-1.sdk-extras.json31
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/accessanalyzer/2019-11-01/service-2.json.gzbin0 -> 25266 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/account/2021-02-01/endpoint-rule-set-1.json.gzbin0 -> 1382 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/account/2021-02-01/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/account/2021-02-01/paginators-1.json10
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/account/2021-02-01/service-2.json.gzbin0 -> 5514 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/acm-pca/2017-08-22/endpoint-rule-set-1.json.gzbin0 -> 1236 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/acm-pca/2017-08-22/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/acm-pca/2017-08-22/paginators-1.json22
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/acm-pca/2017-08-22/service-2.json.gzbin0 -> 24708 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/acm-pca/2017-08-22/waiters-2.json64
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/acm/2015-12-08/endpoint-rule-set-1.json.gzbin0 -> 1232 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/acm/2015-12-08/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/acm/2015-12-08/paginators-1.json10
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/acm/2015-12-08/service-2.json.gzbin0 -> 14187 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/acm/2015-12-08/waiters-2.json35
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/amp/2020-08-01/endpoint-rule-set-1.json.gzbin0 -> 1146 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/amp/2020-08-01/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/amp/2020-08-01/paginators-1.json22
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/amp/2020-08-01/service-2.json.gzbin0 -> 10920 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/amp/2020-08-01/waiters-2.json76
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/amplify/2017-07-25/endpoint-rule-set-1.json.gzbin0 -> 1150 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/amplify/2017-07-25/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/amplify/2017-07-25/paginators-1.json28
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/amplify/2017-07-25/service-2.json.gzbin0 -> 17121 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/amplifybackend/2020-08-11/endpoint-rule-set-1.json.gzbin0 -> 1152 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/amplifybackend/2020-08-11/paginators-1.json10
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/amplifybackend/2020-08-11/service-2.json.gzbin0 -> 10990 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/amplifyuibuilder/2021-08-11/endpoint-rule-set-1.json.gzbin0 -> 1158 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/amplifyuibuilder/2021-08-11/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/amplifyuibuilder/2021-08-11/paginators-1.json43
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/amplifyuibuilder/2021-08-11/service-2.json.gzbin0 -> 15634 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/amplifyuibuilder/2021-08-11/waiters-2.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/apigateway/2015-07-09/endpoint-rule-set-1.json.gzbin0 -> 1152 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/apigateway/2015-07-09/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/apigateway/2015-07-09/paginators-1.json117
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/apigateway/2015-07-09/service-2.json.gzbin0 -> 38790 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/apigatewaymanagementapi/2018-11-29/endpoint-rule-set-1.json.gzbin0 -> 1150 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/apigatewaymanagementapi/2018-11-29/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/apigatewaymanagementapi/2018-11-29/service-2.json.gzbin0 -> 1422 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/apigatewayv2/2018-11-29/endpoint-rule-set-1.json.gzbin0 -> 1152 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/apigatewayv2/2018-11-29/paginators-1.json64
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/apigatewayv2/2018-11-29/service-2.json.gzbin0 -> 40680 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/appconfig/2019-10-09/endpoint-rule-set-1.json.gzbin0 -> 1232 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/appconfig/2019-10-09/examples-1.json720
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/appconfig/2019-10-09/paginators-1.json52
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/appconfig/2019-10-09/service-2.json.gzbin0 -> 19453 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/appconfigdata/2021-11-11/endpoint-rule-set-1.json.gzbin0 -> 1237 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/appconfigdata/2021-11-11/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/appconfigdata/2021-11-11/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/appconfigdata/2021-11-11/service-2.json.gzbin0 -> 3114 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/appfabric/2023-05-19/endpoint-rule-set-1.json.gzbin0 -> 1290 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/appfabric/2023-05-19/paginators-1.json28
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/appfabric/2023-05-19/service-2.json.gzbin0 -> 8601 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/appfabric/2023-05-19/waiters-2.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/appflow/2020-08-23/endpoint-rule-set-1.json.gzbin0 -> 1150 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/appflow/2020-08-23/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/appflow/2020-08-23/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/appflow/2020-08-23/service-2.json.gzbin0 -> 32806 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/appintegrations/2020-07-29/endpoint-rule-set-1.json.gzbin0 -> 1154 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/appintegrations/2020-07-29/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/appintegrations/2020-07-29/paginators-1.json40
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/appintegrations/2020-07-29/service-2.json.gzbin0 -> 6412 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/application-autoscaling/2016-02-06/endpoint-rule-set-1.json.gzbin0 -> 1245 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/application-autoscaling/2016-02-06/examples-1.json221
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/application-autoscaling/2016-02-06/paginators-1.json28
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/application-autoscaling/2016-02-06/service-2.json.gzbin0 -> 24099 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/application-insights/2018-11-25/endpoint-rule-set-1.json.gzbin0 -> 1160 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/application-insights/2018-11-25/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/application-insights/2018-11-25/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/application-insights/2018-11-25/service-2.json.gzbin0 -> 12427 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/application-signals/2024-04-15/endpoint-rule-set-1.json.gzbin0 -> 842 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/application-signals/2024-04-15/paginators-1.json40
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/application-signals/2024-04-15/paginators-1.sdk-extras.json31
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/application-signals/2024-04-15/service-2.json.gzbin0 -> 17179 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/applicationcostprofiler/2020-09-10/endpoint-rule-set-1.json.gzbin0 -> 1159 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/applicationcostprofiler/2020-09-10/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/applicationcostprofiler/2020-09-10/paginators-1.json10
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/applicationcostprofiler/2020-09-10/service-2.json.gzbin0 -> 2827 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/appmesh/2018-10-01/endpoint-rule-set-1.json.gzbin0 -> 1289 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/appmesh/2018-10-01/examples-1.json4
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/appmesh/2018-10-01/paginators-1.json28
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/appmesh/2018-10-01/service-2.json.gzbin0 -> 7902 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/appmesh/2019-01-25/endpoint-rule-set-1.json.gzbin0 -> 1150 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/appmesh/2019-01-25/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/appmesh/2019-01-25/paginators-1.json52
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/appmesh/2019-01-25/service-2.json.gzbin0 -> 23271 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/apprunner/2020-05-15/endpoint-rule-set-1.json.gzbin0 -> 1151 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/apprunner/2020-05-15/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/apprunner/2020-05-15/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/apprunner/2020-05-15/service-2.json.gzbin0 -> 19780 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/appstream/2016-12-01/endpoint-rule-set-1.json.gzbin0 -> 1244 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/appstream/2016-12-01/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/appstream/2016-12-01/paginators-1.json60
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/appstream/2016-12-01/service-2.json.gzbin0 -> 32138 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/appstream/2016-12-01/waiters-2.json55
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/appsync/2017-07-25/endpoint-rule-set-1.json.gzbin0 -> 1151 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/appsync/2017-07-25/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/appsync/2017-07-25/paginators-1.json76
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/appsync/2017-07-25/service-2.json.gzbin0 -> 30994 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/apptest/2022-12-06/endpoint-rule-set-1.json.gzbin0 -> 1297 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/apptest/2022-12-06/paginators-1.json40
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/apptest/2022-12-06/service-2.json.gzbin0 -> 9493 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/apptest/2022-12-06/waiters-2.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/arc-zonal-shift/2022-10-30/endpoint-rule-set-1.json.gzbin0 -> 1306 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/arc-zonal-shift/2022-10-30/paginators-1.json22
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/arc-zonal-shift/2022-10-30/service-2.json.gzbin0 -> 10072 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/artifact/2018-05-10/endpoint-rule-set-1.json.gzbin0 -> 1380 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/artifact/2018-05-10/paginators-1.json16
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/artifact/2018-05-10/service-2.json.gzbin0 -> 3350 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/artifact/2018-05-10/waiters-2.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/athena/2017-05-18/endpoint-rule-set-1.json.gzbin0 -> 1149 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/athena/2017-05-18/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/athena/2017-05-18/paginators-1.json50
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/athena/2017-05-18/service-2.json.gzbin0 -> 31476 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/auditmanager/2017-07-25/endpoint-rule-set-1.json.gzbin0 -> 1153 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/auditmanager/2017-07-25/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/auditmanager/2017-07-25/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/auditmanager/2017-07-25/service-2.json.gzbin0 -> 27539 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/autoscaling-plans/2018-01-06/endpoint-rule-set-1.json.gzbin0 -> 1154 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/autoscaling-plans/2018-01-06/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/autoscaling-plans/2018-01-06/paginators-1.json16
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/autoscaling-plans/2018-01-06/service-2.json.gzbin0 -> 9084 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/autoscaling/2011-01-01/endpoint-rule-set-1.json.gzbin0 -> 1238 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/autoscaling/2011-01-01/examples-1.json1696
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/autoscaling/2011-01-01/paginators-1.json70
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/autoscaling/2011-01-01/paginators-1.sdk-extras.json12
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/autoscaling/2011-01-01/service-2.json.gzbin0 -> 59967 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/b2bi/2022-06-23/endpoint-rule-set-1.json.gzbin0 -> 1299 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/b2bi/2022-06-23/paginators-1.json28
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/b2bi/2022-06-23/service-2.json.gzbin0 -> 15113 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/backup-gateway/2021-01-01/endpoint-rule-set-1.json.gzbin0 -> 1153 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/backup-gateway/2021-01-01/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/backup-gateway/2021-01-01/paginators-1.json22
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/backup-gateway/2021-01-01/service-2.json.gzbin0 -> 7373 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/backup/2018-11-15/endpoint-rule-set-1.json.gzbin0 -> 1149 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/backup/2018-11-15/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/backup/2018-11-15/paginators-1.json112
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/backup/2018-11-15/service-2.json.gzbin0 -> 50552 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/backupsearch/2018-05-10/endpoint-rule-set-1.json.gzbin0 -> 903 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/backupsearch/2018-05-10/paginators-1.json28
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/backupsearch/2018-05-10/service-2.json.gzbin0 -> 7507 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/backupsearch/2018-05-10/waiters-2.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/batch/2016-08-10/endpoint-rule-set-1.json.gzbin0 -> 1268 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/batch/2016-08-10/examples-1.json711
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/batch/2016-08-10/paginators-1.json46
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/batch/2016-08-10/service-2.json.gzbin0 -> 55859 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/bcm-data-exports/2023-11-26/endpoint-rule-set-1.json.gzbin0 -> 1288 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/bcm-data-exports/2023-11-26/paginators-1.json22
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/bcm-data-exports/2023-11-26/service-2.json.gzbin0 -> 5122 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/bcm-pricing-calculator/2024-06-19/endpoint-rule-set-1.json.gzbin0 -> 910 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/bcm-pricing-calculator/2024-06-19/paginators-1.json64
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/bcm-pricing-calculator/2024-06-19/service-2.json.gzbin0 -> 12946 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/bcm-pricing-calculator/2024-06-19/waiters-2.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/bedrock-agent-runtime/2023-07-26/endpoint-rule-set-1.json.gzbin0 -> 1311 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/bedrock-agent-runtime/2023-07-26/paginators-1.json38
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/bedrock-agent-runtime/2023-07-26/paginators-1.sdk-extras.json12
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/bedrock-agent-runtime/2023-07-26/service-2.json.gzbin0 -> 41960 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/bedrock-agent/2023-06-05/endpoint-rule-set-1.json.gzbin0 -> 1305 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/bedrock-agent/2023-06-05/paginators-1.json88
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/bedrock-agent/2023-06-05/service-2.json.gzbin0 -> 53542 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/bedrock-data-automation-runtime/2024-06-13/endpoint-rule-set-1.json.gzbin0 -> 1319 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/bedrock-data-automation-runtime/2024-06-13/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/bedrock-data-automation-runtime/2024-06-13/service-2.json.gzbin0 -> 2678 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/bedrock-data-automation/2023-07-26/endpoint-rule-set-1.json.gzbin0 -> 1312 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/bedrock-data-automation/2023-07-26/paginators-1.json16
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/bedrock-data-automation/2023-07-26/service-2.json.gzbin0 -> 4763 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/bedrock-runtime/2023-09-30/endpoint-rule-set-1.json.gzbin0 -> 1306 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/bedrock-runtime/2023-09-30/paginators-1.json10
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/bedrock-runtime/2023-09-30/service-2.json.gzbin0 -> 17828 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/bedrock-runtime/2023-09-30/waiters-2.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/bedrock/2023-04-20/endpoint-rule-set-1.json.gzbin0 -> 1300 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/bedrock/2023-04-20/paginators-1.json76
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/bedrock/2023-04-20/service-2.json.gzbin0 -> 43466 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/bedrock/2023-04-20/waiters-2.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/billing/2023-09-07/endpoint-rule-set-1.json.gzbin0 -> 900 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/billing/2023-09-07/paginators-1.json16
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/billing/2023-09-07/service-2.json.gzbin0 -> 4087 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/billing/2023-09-07/waiters-2.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/billingconductor/2021-07-30/endpoint-rule-set-1.json.gzbin0 -> 1313 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/billingconductor/2021-07-30/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/billingconductor/2021-07-30/paginators-1.json80
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/billingconductor/2021-07-30/service-2.json.gzbin0 -> 15064 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/billingconductor/2021-07-30/waiters-2.json4
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/braket/2019-09-01/endpoint-rule-set-1.json.gzbin0 -> 1149 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/braket/2019-09-01/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/braket/2019-09-01/paginators-1.json22
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/braket/2019-09-01/service-2.json.gzbin0 -> 8100 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/budgets/2016-10-20/endpoint-rule-set-1.json.gzbin0 -> 1582 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/budgets/2016-10-20/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/budgets/2016-10-20/paginators-1.json52
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/budgets/2016-10-20/service-2.json.gzbin0 -> 12425 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ce/2017-10-25/endpoint-rule-set-1.json.gzbin0 -> 1591 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ce/2017-10-25/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ce/2017-10-25/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ce/2017-10-25/service-2.json.gzbin0 -> 41153 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/chatbot/2017-10-11/endpoint-rule-set-1.json.gzbin0 -> 1298 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/chatbot/2017-10-11/paginators-1.json58
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/chatbot/2017-10-11/service-2.json.gzbin0 -> 10732 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-identity/2021-04-20/endpoint-rule-set-1.json.gzbin0 -> 1152 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-identity/2021-04-20/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-identity/2021-04-20/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-identity/2021-04-20/service-2.json.gzbin0 -> 8111 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-media-pipelines/2021-07-15/endpoint-rule-set-1.json.gzbin0 -> 1159 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-media-pipelines/2021-07-15/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-media-pipelines/2021-07-15/service-2.json.gzbin0 -> 18799 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-meetings/2021-07-15/endpoint-rule-set-1.json.gzbin0 -> 1155 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-meetings/2021-07-15/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-meetings/2021-07-15/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-meetings/2021-07-15/service-2.json.gzbin0 -> 11217 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-messaging/2021-05-15/endpoint-rule-set-1.json.gzbin0 -> 1153 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-messaging/2021-05-15/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-messaging/2021-05-15/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-messaging/2021-05-15/service-2.json.gzbin0 -> 16213 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-voice/2022-08-03/endpoint-rule-set-1.json.gzbin0 -> 1303 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-voice/2022-08-03/paginators-1.json16
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-voice/2022-08-03/service-2.json.gzbin0 -> 23567 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/chime/2018-05-01/endpoint-rule-set-1.json.gzbin0 -> 1306 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/chime/2018-05-01/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/chime/2018-05-01/paginators-1.json16
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/chime/2018-05-01/service-2.json.gzbin0 -> 15347 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cleanrooms/2022-02-17/endpoint-rule-set-1.json.gzbin0 -> 1301 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cleanrooms/2022-02-17/paginators-1.json118
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cleanrooms/2022-02-17/service-2.json.gzbin0 -> 37268 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cleanrooms/2022-02-17/waiters-2.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cleanroomsml/2023-09-06/endpoint-rule-set-1.json.gzbin0 -> 1304 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cleanroomsml/2023-09-06/paginators-1.json94
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cleanroomsml/2023-09-06/service-2.json.gzbin0 -> 23199 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cleanroomsml/2023-09-06/waiters-2.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloud9/2017-09-23/endpoint-rule-set-1.json.gzbin0 -> 1150 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloud9/2017-09-23/examples-1.json315
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloud9/2017-09-23/paginators-1.json16
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloud9/2017-09-23/service-2.json.gzbin0 -> 6088 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudcontrol/2021-09-30/endpoint-rule-set-1.json.gzbin0 -> 1156 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudcontrol/2021-09-30/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudcontrol/2021-09-30/paginators-1.json16
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudcontrol/2021-09-30/paginators-1.sdk-extras.json12
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudcontrol/2021-09-30/service-2.json.gzbin0 -> 6492 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudcontrol/2021-09-30/waiters-2.json27
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/clouddirectory/2016-05-10/endpoint-rule-set-1.json.gzbin0 -> 1398 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/clouddirectory/2016-05-10/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/clouddirectory/2016-05-10/paginators-1.json100
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/clouddirectory/2016-05-10/service-2.json.gzbin0 -> 22958 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/clouddirectory/2017-01-11/endpoint-rule-set-1.json.gzbin0 -> 1241 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/clouddirectory/2017-01-11/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/clouddirectory/2017-01-11/paginators-1.json118
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/clouddirectory/2017-01-11/service-2.json.gzbin0 -> 23901 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudformation/2010-05-15/endpoint-rule-set-1.json.gzbin0 -> 1239 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudformation/2010-05-15/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudformation/2010-05-15/paginators-1.json136
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudformation/2010-05-15/service-2.json.gzbin0 -> 78471 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudformation/2010-05-15/waiters-2.json404
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront-keyvaluestore/2022-07-26/endpoint-rule-set-1.json.gzbin0 -> 2213 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront-keyvaluestore/2022-07-26/paginators-1.json10
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront-keyvaluestore/2022-07-26/service-2.json.gzbin0 -> 2220 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2014-05-31/endpoint-rule-set-1.json.gzbin0 -> 1839 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2014-05-31/paginators-1.json32
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2014-05-31/service-2.json.gzbin0 -> 15298 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2014-05-31/waiters-2.json47
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2014-10-21/endpoint-rule-set-1.json.gzbin0 -> 1839 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2014-10-21/paginators-1.json32
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2014-10-21/service-2.json.gzbin0 -> 15887 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2014-10-21/waiters-2.json47
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2014-11-06/endpoint-rule-set-1.json.gzbin0 -> 1839 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2014-11-06/paginators-1.json32
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2014-11-06/service-2.json.gzbin0 -> 15959 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2014-11-06/waiters-2.json47
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2015-04-17/endpoint-rule-set-1.json.gzbin0 -> 1839 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2015-04-17/paginators-1.json32
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2015-04-17/service-2.json.gzbin0 -> 16213 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2015-04-17/waiters-2.json47
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2015-07-27/endpoint-rule-set-1.json.gzbin0 -> 1839 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2015-07-27/paginators-1.json32
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2015-07-27/service-2.json.gzbin0 -> 16702 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2015-07-27/waiters-2.json47
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2015-09-17/endpoint-rule-set-1.json.gzbin0 -> 1839 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2015-09-17/paginators-1.json32
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2015-09-17/service-2.json.gzbin0 -> 15890 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2015-09-17/waiters-2.json47
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-01-13/endpoint-rule-set-1.json.gzbin0 -> 1839 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-01-13/paginators-1.json32
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-01-13/service-2.json.gzbin0 -> 16358 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-01-13/waiters-2.json47
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-01-28/endpoint-rule-set-1.json.gzbin0 -> 1574 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-01-28/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-01-28/paginators-1.json32
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-01-28/service-2.json.gzbin0 -> 16279 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-01-28/waiters-2.json47
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-08-01/endpoint-rule-set-1.json.gzbin0 -> 1574 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-08-01/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-08-01/paginators-1.json32
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-08-01/service-2.json.gzbin0 -> 17725 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-08-01/waiters-2.json47
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-08-20/endpoint-rule-set-1.json.gzbin0 -> 1574 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-08-20/paginators-1.json32
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-08-20/service-2.json.gzbin0 -> 18123 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-08-20/waiters-2.json47
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-09-07/endpoint-rule-set-1.json.gzbin0 -> 1574 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-09-07/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-09-07/paginators-1.json32
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-09-07/service-2.json.gzbin0 -> 18444 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-09-07/waiters-2.json47
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-09-29/endpoint-rule-set-1.json.gzbin0 -> 1574 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-09-29/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-09-29/paginators-1.json32
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-09-29/service-2.json.gzbin0 -> 27522 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-09-29/waiters-2.json47
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-11-25/endpoint-rule-set-1.json.gzbin0 -> 1574 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-11-25/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-11-25/paginators-1.json32
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-11-25/service-2.json.gzbin0 -> 27955 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-11-25/waiters-2.json47
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2017-03-25/endpoint-rule-set-1.json.gzbin0 -> 1574 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2017-03-25/paginators-1.json32
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2017-03-25/service-2.json.gzbin0 -> 29088 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2017-03-25/waiters-2.json47
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2017-10-30/endpoint-rule-set-1.json.gzbin0 -> 1574 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2017-10-30/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2017-10-30/paginators-1.json32
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2017-10-30/service-2.json.gzbin0 -> 34767 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2017-10-30/waiters-2.json47
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2018-06-18/endpoint-rule-set-1.json.gzbin0 -> 1574 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2018-06-18/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2018-06-18/paginators-1.json32
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2018-06-18/service-2.json.gzbin0 -> 35482 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2018-06-18/waiters-2.json47
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2018-11-05/endpoint-rule-set-1.json.gzbin0 -> 1574 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2018-11-05/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2018-11-05/paginators-1.json32
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2018-11-05/service-2.json.gzbin0 -> 36144 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2018-11-05/waiters-2.json47
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2019-03-26/endpoint-rule-set-1.json.gzbin0 -> 1574 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2019-03-26/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2019-03-26/paginators-1.json32
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2019-03-26/service-2.json.gzbin0 -> 37652 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2019-03-26/waiters-2.json47
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2020-05-31/endpoint-rule-set-1.json.gzbin0 -> 1408 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2020-05-31/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2020-05-31/paginators-1.json44
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2020-05-31/service-2.json.gzbin0 -> 73899 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2020-05-31/waiters-2.json41
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudhsm/2014-05-30/endpoint-rule-set-1.json.gzbin0 -> 1148 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudhsm/2014-05-30/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudhsm/2014-05-30/paginators-1.json19
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudhsm/2014-05-30/service-2.json.gzbin0 -> 5556 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudhsmv2/2017-04-28/endpoint-rule-set-1.json.gzbin0 -> 1244 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudhsmv2/2017-04-28/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudhsmv2/2017-04-28/paginators-1.json22
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudhsmv2/2017-04-28/service-2.json.gzbin0 -> 8056 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudsearch/2011-02-01/endpoint-rule-set-1.json.gzbin0 -> 1149 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudsearch/2011-02-01/service-2.json.gzbin0 -> 9599 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudsearch/2013-01-01/endpoint-rule-set-1.json.gzbin0 -> 1150 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudsearch/2013-01-01/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudsearch/2013-01-01/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudsearch/2013-01-01/service-2.json.gzbin0 -> 12084 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudsearchdomain/2013-01-01/endpoint-rule-set-1.json.gzbin0 -> 1154 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudsearchdomain/2013-01-01/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudsearchdomain/2013-01-01/service-2.json.gzbin0 -> 9099 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudtrail-data/2021-08-11/endpoint-rule-set-1.json.gzbin0 -> 1295 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudtrail-data/2021-08-11/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudtrail-data/2021-08-11/service-2.json.gzbin0 -> 2165 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudtrail/2013-11-01/endpoint-rule-set-1.json.gzbin0 -> 1235 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudtrail/2013-11-01/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudtrail/2013-11-01/paginators-1.json37
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudtrail/2013-11-01/service-2.json.gzbin0 -> 42225 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudwatch/2010-08-01/endpoint-rule-set-1.json.gzbin0 -> 1237 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudwatch/2010-08-01/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudwatch/2010-08-01/paginators-1.json47
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudwatch/2010-08-01/service-2.json.gzbin0 -> 40155 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cloudwatch/2010-08-01/waiters-2.json31
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/codeartifact/2018-09-22/endpoint-rule-set-1.json.gzbin0 -> 1153 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/codeartifact/2018-09-22/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/codeartifact/2018-09-22/paginators-1.json64
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/codeartifact/2018-09-22/paginators-1.sdk-extras.json24
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/codeartifact/2018-09-22/service-2.json.gzbin0 -> 23319 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/codebuild/2016-10-06/endpoint-rule-set-1.json.gzbin0 -> 1151 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/codebuild/2016-10-06/examples-1.json281
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/codebuild/2016-10-06/paginators-1.json73
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/codebuild/2016-10-06/service-2.json.gzbin0 -> 44523 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/codecatalyst/2022-09-28/endpoint-rule-set-1.json.gzbin0 -> 851 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/codecatalyst/2022-09-28/paginators-1.json63
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/codecatalyst/2022-09-28/service-2.json.gzbin0 -> 13989 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/codecatalyst/2022-09-28/waiters-2.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/codecommit/2015-04-13/endpoint-rule-set-1.json.gzbin0 -> 1152 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/codecommit/2015-04-13/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/codecommit/2015-04-13/paginators-1.json44
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/codecommit/2015-04-13/service-2.json.gzbin0 -> 40956 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/codeconnections/2023-12-01/endpoint-rule-set-1.json.gzbin0 -> 1304 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/codeconnections/2023-12-01/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/codeconnections/2023-12-01/service-2.json.gzbin0 -> 10010 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/codedeploy/2014-10-06/endpoint-rule-set-1.json.gzbin0 -> 1152 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/codedeploy/2014-10-06/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/codedeploy/2014-10-06/paginators-1.json49
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/codedeploy/2014-10-06/service-2.json.gzbin0 -> 31904 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/codedeploy/2014-10-06/waiters-2.json30
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/codeguru-reviewer/2019-09-19/endpoint-rule-set-1.json.gzbin0 -> 1156 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/codeguru-reviewer/2019-09-19/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/codeguru-reviewer/2019-09-19/paginators-1.json10
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/codeguru-reviewer/2019-09-19/service-2.json.gzbin0 -> 11762 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/codeguru-reviewer/2019-09-19/waiters-2.json58
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/codeguru-security/2018-05-10/endpoint-rule-set-1.json.gzbin0 -> 1308 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/codeguru-security/2018-05-10/paginators-1.json22
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/codeguru-security/2018-05-10/service-2.json.gzbin0 -> 7914 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/codeguruprofiler/2019-07-18/endpoint-rule-set-1.json.gzbin0 -> 1157 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/codeguruprofiler/2019-07-18/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/codeguruprofiler/2019-07-18/paginators-1.json10
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/codeguruprofiler/2019-07-18/service-2.json.gzbin0 -> 14592 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/codepipeline/2015-07-09/endpoint-rule-set-1.json.gzbin0 -> 1153 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/codepipeline/2015-07-09/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/codepipeline/2015-07-09/paginators-1.json45
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/codepipeline/2015-07-09/service-2.json.gzbin0 -> 35979 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/codestar-connections/2019-12-01/endpoint-rule-set-1.json.gzbin0 -> 1156 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/codestar-connections/2019-12-01/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/codestar-connections/2019-12-01/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/codestar-connections/2019-12-01/service-2.json.gzbin0 -> 9877 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/codestar-notifications/2019-10-15/endpoint-rule-set-1.json.gzbin0 -> 1156 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/codestar-notifications/2019-10-15/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/codestar-notifications/2019-10-15/paginators-1.json22
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/codestar-notifications/2019-10-15/service-2.json.gzbin0 -> 5528 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cognito-identity/2014-06-30/endpoint-rule-set-1.json.gzbin0 -> 1351 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cognito-identity/2014-06-30/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cognito-identity/2014-06-30/paginators-1.json10
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cognito-identity/2014-06-30/service-2.json.gzbin0 -> 10267 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cognito-idp/2016-04-18/endpoint-rule-set-1.json.gzbin0 -> 1347 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cognito-idp/2016-04-18/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cognito-idp/2016-04-18/paginators-1.json58
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cognito-idp/2016-04-18/service-2.json.gzbin0 -> 110052 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cognito-sync/2014-06-30/endpoint-rule-set-1.json.gzbin0 -> 1151 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cognito-sync/2014-06-30/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cognito-sync/2014-06-30/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cognito-sync/2014-06-30/service-2.json.gzbin0 -> 7316 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/comprehend/2017-11-27/endpoint-rule-set-1.json.gzbin0 -> 1151 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/comprehend/2017-11-27/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/comprehend/2017-11-27/paginators-1.json64
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/comprehend/2017-11-27/service-2.json.gzbin0 -> 43031 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/comprehendmedical/2018-10-30/endpoint-rule-set-1.json.gzbin0 -> 1153 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/comprehendmedical/2018-10-30/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/comprehendmedical/2018-10-30/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/comprehendmedical/2018-10-30/service-2.json.gzbin0 -> 10270 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/compute-optimizer/2019-11-01/endpoint-rule-set-1.json.gzbin0 -> 1157 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/compute-optimizer/2019-11-01/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/compute-optimizer/2019-11-01/paginators-1.json34
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/compute-optimizer/2019-11-01/service-2.json.gzbin0 -> 40447 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/config/2014-11-12/endpoint-rule-set-1.json.gzbin0 -> 1233 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/config/2014-11-12/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/config/2014-11-12/paginators-1.json198
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/config/2014-11-12/service-2.json.gzbin0 -> 64403 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/connect-contact-lens/2020-08-21/endpoint-rule-set-1.json.gzbin0 -> 1153 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/connect-contact-lens/2020-08-21/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/connect-contact-lens/2020-08-21/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/connect-contact-lens/2020-08-21/service-2.json.gzbin0 -> 3170 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/connect/2017-08-08/endpoint-rule-set-1.json.gzbin0 -> 1233 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/connect/2017-08-08/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/connect/2017-08-08/paginators-1.json440
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/connect/2017-08-08/service-2.json.gzbin0 -> 137274 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/connectcampaigns/2021-01-30/endpoint-rule-set-1.json.gzbin0 -> 1158 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/connectcampaigns/2021-01-30/paginators-1.json10
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/connectcampaigns/2021-01-30/service-2.json.gzbin0 -> 5276 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/connectcampaignsv2/2024-04-23/endpoint-rule-set-1.json.gzbin0 -> 1307 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/connectcampaignsv2/2024-04-23/paginators-1.json16
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/connectcampaignsv2/2024-04-23/service-2.json.gzbin0 -> 8575 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/connectcases/2022-10-03/endpoint-rule-set-1.json.gzbin0 -> 1296 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/connectcases/2022-10-03/paginators-1.json22
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/connectcases/2022-10-03/service-2.json.gzbin0 -> 14961 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/connectparticipant/2018-09-07/endpoint-rule-set-1.json.gzbin0 -> 1240 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/connectparticipant/2018-09-07/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/connectparticipant/2018-09-07/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/connectparticipant/2018-09-07/service-2.json.gzbin0 -> 7495 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/controlcatalog/2018-05-10/endpoint-rule-set-1.json.gzbin0 -> 1304 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/controlcatalog/2018-05-10/paginators-1.json28
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/controlcatalog/2018-05-10/service-2.json.gzbin0 -> 5471 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/controlcatalog/2018-05-10/waiters-2.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/controltower/2018-05-10/endpoint-rule-set-1.json.gzbin0 -> 1153 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/controltower/2018-05-10/paginators-1.json40
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/controltower/2018-05-10/service-2.json.gzbin0 -> 12344 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cost-optimization-hub/2022-07-26/endpoint-rule-set-1.json.gzbin0 -> 1311 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cost-optimization-hub/2022-07-26/paginators-1.json22
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cost-optimization-hub/2022-07-26/paginators-1.sdk-extras.json20
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cost-optimization-hub/2022-07-26/service-2.json.gzbin0 -> 8154 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cost-optimization-hub/2022-07-26/waiters-2.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cur/2017-01-06/endpoint-rule-set-1.json.gzbin0 -> 1147 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cur/2017-01-06/examples-1.json102
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cur/2017-01-06/paginators-1.json10
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/cur/2017-01-06/service-2.json.gzbin0 -> 3835 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/customer-profiles/2020-08-15/endpoint-rule-set-1.json.gzbin0 -> 1150 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/customer-profiles/2020-08-15/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/customer-profiles/2020-08-15/paginators-1.json40
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/customer-profiles/2020-08-15/paginators-1.sdk-extras.json15
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/customer-profiles/2020-08-15/service-2.json.gzbin0 -> 39956 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/databrew/2017-07-25/endpoint-rule-set-1.json.gzbin0 -> 1210 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/databrew/2017-07-25/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/databrew/2017-07-25/paginators-1.json52
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/databrew/2017-07-25/service-2.json.gzbin0 -> 20270 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/dataexchange/2017-07-25/endpoint-rule-set-1.json.gzbin0 -> 1154 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/dataexchange/2017-07-25/paginators-1.json46
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/dataexchange/2017-07-25/service-2.json.gzbin0 -> 17221 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/dataexchange/2017-07-25/waiters-2.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/datapipeline/2012-10-29/endpoint-rule-set-1.json.gzbin0 -> 1150 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/datapipeline/2012-10-29/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/datapipeline/2012-10-29/paginators-1.json23
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/datapipeline/2012-10-29/service-2.json.gzbin0 -> 9587 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/datasync/2018-11-09/endpoint-rule-set-1.json.gzbin0 -> 1151 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/datasync/2018-11-09/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/datasync/2018-11-09/paginators-1.json52
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/datasync/2018-11-09/service-2.json.gzbin0 -> 45008 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/datazone/2018-05-10/endpoint-rule-set-1.json.gzbin0 -> 1127 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/datazone/2018-05-10/paginators-1.json214
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/datazone/2018-05-10/paginators-1.sdk-extras.json22
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/datazone/2018-05-10/service-2.json.gzbin0 -> 67638 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/dax/2017-04-19/endpoint-rule-set-1.json.gzbin0 -> 1144 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/dax/2017-04-19/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/dax/2017-04-19/paginators-1.json45
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/dax/2017-04-19/service-2.json.gzbin0 -> 9746 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/deadline/2023-10-12/endpoint-rule-set-1.json.gzbin0 -> 1298 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/deadline/2023-10-12/paginators-1.json178
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/deadline/2023-10-12/paginators-1.sdk-extras.json13
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/deadline/2023-10-12/service-2.json.gzbin0 -> 44086 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/deadline/2023-10-12/waiters-2.json143
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/detective/2018-10-26/endpoint-rule-set-1.json.gzbin0 -> 1153 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/detective/2018-10-26/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/detective/2018-10-26/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/detective/2018-10-26/service-2.json.gzbin0 -> 13190 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/devicefarm/2015-06-23/endpoint-rule-set-1.json.gzbin0 -> 1152 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/devicefarm/2015-06-23/examples-1.json1242
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/devicefarm/2015-06-23/paginators-1.json110
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/devicefarm/2015-06-23/service-2.json.gzbin0 -> 30990 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/devops-guru/2020-12-01/endpoint-rule-set-1.json.gzbin0 -> 1153 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/devops-guru/2020-12-01/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/devops-guru/2020-12-01/paginators-1.json125
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/devops-guru/2020-12-01/service-2.json.gzbin0 -> 25040 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/directconnect/2012-10-25/endpoint-rule-set-1.json.gzbin0 -> 1155 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/directconnect/2012-10-25/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/directconnect/2012-10-25/paginators-1.json22
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/directconnect/2012-10-25/service-2.json.gzbin0 -> 20370 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/discovery/2015-11-01/endpoint-rule-set-1.json.gzbin0 -> 1151 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/discovery/2015-11-01/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/discovery/2015-11-01/paginators-1.json46
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/discovery/2015-11-01/service-2.json.gzbin0 -> 19017 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/dlm/2018-01-12/endpoint-rule-set-1.json.gzbin0 -> 1232 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/dlm/2018-01-12/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/dlm/2018-01-12/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/dlm/2018-01-12/service-2.json.gzbin0 -> 12223 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/dms/2016-01-01/endpoint-rule-set-1.json.gzbin0 -> 1302 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/dms/2016-01-01/examples-1.json1074
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/dms/2016-01-01/paginators-1.json88
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/dms/2016-01-01/service-2.json.gzbin0 -> 82037 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/dms/2016-01-01/waiters-2.json330
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/docdb-elastic/2022-11-28/endpoint-rule-set-1.json.gzbin0 -> 1304 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/docdb-elastic/2022-11-28/paginators-1.json22
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/docdb-elastic/2022-11-28/service-2.json.gzbin0 -> 7623 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/docdb/2014-10-31/endpoint-rule-set-1.json.gzbin0 -> 1232 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/docdb/2014-10-31/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/docdb/2014-10-31/paginators-1.json82
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/docdb/2014-10-31/service-2.json.gzbin0 -> 33423 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/docdb/2014-10-31/service-2.sdk-extras.json23
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/docdb/2014-10-31/waiters-2.json90
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/drs/2020-02-26/endpoint-rule-set-1.json.gzbin0 -> 1146 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/drs/2020-02-26/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/drs/2020-02-26/paginators-1.json70
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/drs/2020-02-26/service-2.json.gzbin0 -> 21053 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ds-data/2023-05-31/endpoint-rule-set-1.json.gzbin0 -> 1298 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ds-data/2023-05-31/paginators-1.json40
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ds-data/2023-05-31/paginators-1.sdk-extras.json46
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ds-data/2023-05-31/service-2.json.gzbin0 -> 7825 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ds/2015-04-16/endpoint-rule-set-1.json.gzbin0 -> 1146 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ds/2015-04-16/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ds/2015-04-16/paginators-1.json86
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ds/2015-04-16/service-2.json.gzbin0 -> 25917 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/dsql/2018-05-10/endpoint-rule-set-1.json.gzbin0 -> 832 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/dsql/2018-05-10/paginators-1.json10
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/dsql/2018-05-10/service-2.json.gzbin0 -> 4240 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/dsql/2018-05-10/waiters-2.json28
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/dynamodb/2011-12-05/endpoint-rule-set-1.json.gzbin0 -> 1343 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/dynamodb/2011-12-05/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/dynamodb/2012-08-10/endpoint-rule-set-1.json.gzbin0 -> 2629 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/dynamodb/2012-08-10/examples-1.json631
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/dynamodb/2012-08-10/paginators-1.json47
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/dynamodb/2012-08-10/service-2.json.gzbin0 -> 80435 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/dynamodb/2012-08-10/waiters-2.json35
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/dynamodbstreams/2012-08-10/endpoint-rule-set-1.json.gzbin0 -> 1671 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/dynamodbstreams/2012-08-10/examples-1.json212
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/dynamodbstreams/2012-08-10/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/dynamodbstreams/2012-08-10/service-2.json.gzbin0 -> 6799 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ebs/2019-11-02/endpoint-rule-set-1.json.gzbin0 -> 1144 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ebs/2019-11-02/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ebs/2019-11-02/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ebs/2019-11-02/service-2.json.gzbin0 -> 6371 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ec2-instance-connect/2018-04-02/endpoint-rule-set-1.json.gzbin0 -> 1162 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ec2-instance-connect/2018-04-02/examples-1.json34
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ec2-instance-connect/2018-04-02/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ec2-instance-connect/2018-04-02/service-2.json.gzbin0 -> 2282 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ec2/2014-09-01/endpoint-rule-set-1.json.gzbin0 -> 1237 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ec2/2014-09-01/paginators-1.json45
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ec2/2014-09-01/service-2.json.gzbin0 -> 71841 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ec2/2014-09-01/waiters-2.json341
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ec2/2014-10-01/endpoint-rule-set-1.json.gzbin0 -> 1237 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ec2/2014-10-01/paginators-1.json51
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ec2/2014-10-01/service-2.json.gzbin0 -> 75362 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ec2/2014-10-01/waiters-2.json436
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-03-01/endpoint-rule-set-1.json.gzbin0 -> 1237 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-03-01/paginators-1.json51
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-03-01/service-2.json.gzbin0 -> 77885 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-03-01/waiters-2.json436
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-04-15/endpoint-rule-set-1.json.gzbin0 -> 1237 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-04-15/paginators-1.json51
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-04-15/service-2.json.gzbin0 -> 90171 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-04-15/waiters-2.json458
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-10-01/endpoint-rule-set-1.json.gzbin0 -> 1391 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-10-01/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-10-01/paginators-1.json63
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-10-01/service-2.json.gzbin0 -> 107913 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-10-01/waiters-2.json589
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-04-01/endpoint-rule-set-1.json.gzbin0 -> 1391 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-04-01/examples-1.json3729
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-04-01/paginators-1.json63
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-04-01/service-2.json.gzbin0 -> 112481 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-04-01/waiters-2.json607
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-09-15/endpoint-rule-set-1.json.gzbin0 -> 1391 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-09-15/examples-1.json3740
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-09-15/paginators-1.json63
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-09-15/service-2.json.gzbin0 -> 114400 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-09-15/waiters-2.json593
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-11-15/endpoint-rule-set-1.json.gzbin0 -> 1233 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-11-15/examples-1.json5048
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-11-15/paginators-1.json888
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-11-15/paginators-1.sdk-extras.json13
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-11-15/service-2.json.gzbin0 -> 413479 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-11-15/waiters-2.json726
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ecr-public/2020-10-30/endpoint-rule-set-1.json.gzbin0 -> 1155 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ecr-public/2020-10-30/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ecr-public/2020-10-30/paginators-1.json28
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ecr-public/2020-10-30/service-2.json.gzbin0 -> 10719 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ecr/2015-09-21/endpoint-rule-set-1.json.gzbin0 -> 1262 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ecr/2015-09-21/examples-1.json195
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ecr/2015-09-21/paginators-1.json66
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ecr/2015-09-21/service-2.json.gzbin0 -> 24401 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ecr/2015-09-21/waiters-2.json45
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ecs/2014-11-13/endpoint-rule-set-1.json.gzbin0 -> 1146 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ecs/2014-11-13/examples-1.json1137
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ecs/2014-11-13/paginators-1.json58
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ecs/2014-11-13/service-2.json.gzbin0 -> 103657 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ecs/2014-11-13/waiters-2.json93
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/efs/2015-02-01/endpoint-rule-set-1.json.gzbin0 -> 1157 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/efs/2015-02-01/examples-1.json294
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/efs/2015-02-01/paginators-1.json34
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/efs/2015-02-01/service-2.json.gzbin0 -> 23375 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/eks-auth/2023-11-26/endpoint-rule-set-1.json.gzbin0 -> 1127 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/eks-auth/2023-11-26/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/eks-auth/2023-11-26/service-2.json.gzbin0 -> 2343 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/eks-auth/2023-11-26/waiters-2.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/eks/2017-11-01/endpoint-rule-set-1.json.gzbin0 -> 1267 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/eks/2017-11-01/examples-1.json135
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/eks/2017-11-01/paginators-1.json92
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/eks/2017-11-01/service-2.json.gzbin0 -> 45479 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/eks/2017-11-01/service-2.sdk-extras.json8
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/eks/2017-11-01/waiters-2.json177
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/elasticache/2014-09-30/endpoint-rule-set-1.json.gzbin0 -> 1241 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/elasticache/2014-09-30/paginators-1.json76
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/elasticache/2014-09-30/service-2.json.gzbin0 -> 22920 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/elasticache/2014-09-30/waiters-2.json139
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/elasticache/2015-02-02/endpoint-rule-set-1.json.gzbin0 -> 1238 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/elasticache/2015-02-02/examples-1.json3149
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/elasticache/2015-02-02/paginators-1.json118
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/elasticache/2015-02-02/service-2.json.gzbin0 -> 56450 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/elasticache/2015-02-02/waiters-2.json143
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/elasticbeanstalk/2010-12-01/endpoint-rule-set-1.json.gzbin0 -> 1242 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/elasticbeanstalk/2010-12-01/examples-1.json1109
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/elasticbeanstalk/2010-12-01/paginators-1.json34
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/elasticbeanstalk/2010-12-01/service-2.json.gzbin0 -> 27770 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/elasticbeanstalk/2010-12-01/waiters-2.json63
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/elastictranscoder/2012-09-25/endpoint-rule-set-1.json.gzbin0 -> 1157 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/elastictranscoder/2012-09-25/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/elastictranscoder/2012-09-25/paginators-1.json24
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/elastictranscoder/2012-09-25/service-2.json.gzbin0 -> 35481 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/elastictranscoder/2012-09-25/waiters-2.json30
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/elb/2012-06-01/endpoint-rule-set-1.json.gzbin0 -> 1244 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/elb/2012-06-01/examples-1.json1036
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/elb/2012-06-01/paginators-1.json16
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/elb/2012-06-01/service-2.json.gzbin0 -> 13226 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/elb/2012-06-01/waiters-2.json54
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/elbv2/2015-12-01/endpoint-rule-set-1.json.gzbin0 -> 1244 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/elbv2/2015-12-01/examples-1.json1384
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/elbv2/2015-12-01/paginators-1.json46
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/elbv2/2015-12-01/service-2.json.gzbin0 -> 30897 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/elbv2/2015-12-01/waiters-2.json100
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/emr-containers/2020-10-01/endpoint-rule-set-1.json.gzbin0 -> 1239 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/emr-containers/2020-10-01/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/emr-containers/2020-10-01/paginators-1.json34
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/emr-containers/2020-10-01/service-2.json.gzbin0 -> 11185 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/emr-serverless/2021-07-13/endpoint-rule-set-1.json.gzbin0 -> 1154 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/emr-serverless/2021-07-13/paginators-1.json22
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/emr-serverless/2021-07-13/service-2.json.gzbin0 -> 11455 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/emr/2009-03-31/endpoint-rule-set-1.json.gzbin0 -> 1241 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/emr/2009-03-31/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/emr/2009-03-31/paginators-1.json54
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/emr/2009-03-31/service-2.json.gzbin0 -> 45567 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/emr/2009-03-31/waiters-2.json86
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/endpoints.json37672
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/entityresolution/2018-05-10/endpoint-rule-set-1.json.gzbin0 -> 1305 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/entityresolution/2018-05-10/paginators-1.json46
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/entityresolution/2018-05-10/service-2.json.gzbin0 -> 15108 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/es/2015-01-01/endpoint-rule-set-1.json.gzbin0 -> 1313 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/es/2015-01-01/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/es/2015-01-01/paginators-1.json34
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/es/2015-01-01/service-2.json.gzbin0 -> 29501 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/events/2014-02-03/endpoint-rule-set-1.json.gzbin0 -> 1856 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/events/2014-02-03/service-2.json.gzbin0 -> 5254 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/events/2015-10-07/endpoint-rule-set-1.json.gzbin0 -> 1741 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/events/2015-10-07/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/events/2015-10-07/paginators-1.json22
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/events/2015-10-07/service-2.json.gzbin0 -> 36012 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/evidently/2021-02-01/endpoint-rule-set-1.json.gzbin0 -> 1148 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/evidently/2021-02-01/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/evidently/2021-02-01/paginators-1.json40
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/evidently/2021-02-01/service-2.json.gzbin0 -> 20415 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/finspace-data/2020-07-13/endpoint-rule-set-1.json.gzbin0 -> 1153 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/finspace-data/2020-07-13/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/finspace-data/2020-07-13/paginators-1.json34
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/finspace-data/2020-07-13/service-2.json.gzbin0 -> 14476 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/finspace/2021-03-12/endpoint-rule-set-1.json.gzbin0 -> 1150 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/finspace/2021-03-12/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/finspace/2021-03-12/paginators-1.json10
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/finspace/2021-03-12/service-2.json.gzbin0 -> 30465 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/firehose/2015-08-04/endpoint-rule-set-1.json.gzbin0 -> 1150 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/firehose/2015-08-04/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/firehose/2015-08-04/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/firehose/2015-08-04/service-2.json.gzbin0 -> 36317 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/fis/2020-12-01/endpoint-rule-set-1.json.gzbin0 -> 1232 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/fis/2020-12-01/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/fis/2020-12-01/paginators-1.json40
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/fis/2020-12-01/service-2.json.gzbin0 -> 10129 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/fms/2018-01-01/endpoint-rule-set-1.json.gzbin0 -> 1147 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/fms/2018-01-01/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/fms/2018-01-01/paginators-1.json52
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/fms/2018-01-01/service-2.json.gzbin0 -> 34804 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/forecast/2018-06-26/endpoint-rule-set-1.json.gzbin0 -> 1147 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/forecast/2018-06-26/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/forecast/2018-06-26/paginators-1.json88
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/forecast/2018-06-26/service-2.json.gzbin0 -> 40055 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/forecastquery/2018-06-26/endpoint-rule-set-1.json.gzbin0 -> 1151 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/forecastquery/2018-06-26/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/forecastquery/2018-06-26/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/forecastquery/2018-06-26/service-2.json.gzbin0 -> 2160 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/frauddetector/2019-11-15/endpoint-rule-set-1.json.gzbin0 -> 1151 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/frauddetector/2019-11-15/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/frauddetector/2019-11-15/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/frauddetector/2019-11-15/service-2.json.gzbin0 -> 24330 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/freetier/2023-09-07/endpoint-rule-set-1.json.gzbin0 -> 1422 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/freetier/2023-09-07/paginators-1.json10
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/freetier/2023-09-07/service-2.json.gzbin0 -> 2803 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/fsx/2018-03-01/endpoint-rule-set-1.json.gzbin0 -> 1147 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/fsx/2018-03-01/examples-1.json438
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/fsx/2018-03-01/paginators-1.json34
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/fsx/2018-03-01/service-2.json.gzbin0 -> 74919 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/gamelift/2015-10-01/endpoint-rule-set-1.json.gzbin0 -> 1150 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/gamelift/2015-10-01/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/gamelift/2015-10-01/paginators-1.json160
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/gamelift/2015-10-01/service-2.json.gzbin0 -> 113393 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/gameliftstreams/2018-05-10/endpoint-rule-set-1.json.gzbin0 -> 840 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/gameliftstreams/2018-05-10/paginators-1.json28
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/gameliftstreams/2018-05-10/service-2.json.gzbin0 -> 19784 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/gameliftstreams/2018-05-10/waiters-2.json88
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/geo-maps/2020-11-19/endpoint-rule-set-1.json.gzbin0 -> 1642 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/geo-maps/2020-11-19/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/geo-maps/2020-11-19/service-2.json.gzbin0 -> 6586 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/geo-places/2020-11-19/endpoint-rule-set-1.json.gzbin0 -> 1648 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/geo-places/2020-11-19/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/geo-places/2020-11-19/service-2.json.gzbin0 -> 12379 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/geo-routes/2020-11-19/endpoint-rule-set-1.json.gzbin0 -> 1647 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/geo-routes/2020-11-19/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/geo-routes/2020-11-19/service-2.json.gzbin0 -> 33478 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/glacier/2012-06-01/endpoint-rule-set-1.json.gzbin0 -> 1393 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/glacier/2012-06-01/examples-1.json806
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/glacier/2012-06-01/paginators-1.json28
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/glacier/2012-06-01/service-2.json.gzbin0 -> 20913 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/glacier/2012-06-01/waiters-2.json39
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/globalaccelerator/2018-08-08/endpoint-rule-set-1.json.gzbin0 -> 1156 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/globalaccelerator/2018-08-08/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/globalaccelerator/2018-08-08/paginators-1.json70
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/globalaccelerator/2018-08-08/service-2.json.gzbin0 -> 21919 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/glue/2017-03-31/endpoint-rule-set-1.json.gzbin0 -> 1147 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/glue/2017-03-31/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/glue/2017-03-31/paginators-1.json175
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/glue/2017-03-31/paginators-1.sdk-extras.json14
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/glue/2017-03-31/service-2.json.gzbin0 -> 154990 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/grafana/2020-08-18/endpoint-rule-set-1.json.gzbin0 -> 1150 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/grafana/2020-08-18/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/grafana/2020-08-18/paginators-1.json34
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/grafana/2020-08-18/paginators-1.sdk-extras.json18
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/grafana/2020-08-18/service-2.json.gzbin0 -> 15023 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/greengrass/2017-06-07/endpoint-rule-set-1.json.gzbin0 -> 1356 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/greengrass/2017-06-07/paginators-1.json118
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/greengrass/2017-06-07/service-2.json.gzbin0 -> 17141 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/greengrassv2/2020-11-30/endpoint-rule-set-1.json.gzbin0 -> 1364 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/greengrassv2/2020-11-30/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/greengrassv2/2020-11-30/paginators-1.json46
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/greengrassv2/2020-11-30/service-2.json.gzbin0 -> 20273 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/groundstation/2019-05-23/endpoint-rule-set-1.json.gzbin0 -> 1153 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/groundstation/2019-05-23/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/groundstation/2019-05-23/paginators-1.json46
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/groundstation/2019-05-23/service-2.json.gzbin0 -> 13952 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/groundstation/2019-05-23/waiters-2.json22
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/guardduty/2017-11-28/endpoint-rule-set-1.json.gzbin0 -> 1237 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/guardduty/2017-11-28/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/guardduty/2017-11-28/paginators-1.json64
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/guardduty/2017-11-28/service-2.json.gzbin0 -> 52280 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/health/2016-08-04/endpoint-rule-set-1.json.gzbin0 -> 1306 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/health/2016-08-04/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/health/2016-08-04/paginators-1.json52
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/health/2016-08-04/service-2.json.gzbin0 -> 10240 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/healthlake/2017-07-01/endpoint-rule-set-1.json.gzbin0 -> 1153 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/healthlake/2017-07-01/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/healthlake/2017-07-01/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/healthlake/2017-07-01/service-2.json.gzbin0 -> 6454 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iam/2010-05-08/endpoint-rule-set-1.json.gzbin0 -> 1720 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iam/2010-05-08/examples-1.json1577
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iam/2010-05-08/paginators-1.json254
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iam/2010-05-08/service-2.json.gzbin0 -> 72301 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iam/2010-05-08/waiters-2.json73
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/identitystore/2020-06-15/endpoint-rule-set-1.json.gzbin0 -> 1242 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/identitystore/2020-06-15/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/identitystore/2020-06-15/paginators-1.json28
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/identitystore/2020-06-15/service-2.json.gzbin0 -> 7351 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/imagebuilder/2019-12-02/endpoint-rule-set-1.json.gzbin0 -> 1239 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/imagebuilder/2019-12-02/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/imagebuilder/2019-12-02/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/imagebuilder/2019-12-02/service-2.json.gzbin0 -> 41253 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/importexport/2010-06-01/endpoint-rule-set-1.json.gzbin0 -> 1599 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/importexport/2010-06-01/paginators-1.json11
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/importexport/2010-06-01/service-2.json.gzbin0 -> 4733 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/inspector-scan/2023-08-08/endpoint-rule-set-1.json.gzbin0 -> 1305 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/inspector-scan/2023-08-08/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/inspector-scan/2023-08-08/service-2.json.gzbin0 -> 1460 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/inspector/2015-08-18/endpoint-rule-set-1.json.gzbin0 -> 1147 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/inspector/2015-08-18/service-2.json.gzbin0 -> 8021 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/inspector/2016-02-16/endpoint-rule-set-1.json.gzbin0 -> 1148 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/inspector/2016-02-16/examples-1.json1148
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/inspector/2016-02-16/paginators-1.json58
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/inspector/2016-02-16/service-2.json.gzbin0 -> 14137 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/inspector2/2020-06-08/endpoint-rule-set-1.json.gzbin0 -> 1153 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/inspector2/2020-06-08/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/inspector2/2020-06-08/paginators-1.json92
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/inspector2/2020-06-08/paginators-1.sdk-extras.json17
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/inspector2/2020-06-08/service-2.json.gzbin0 -> 36798 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/internetmonitor/2021-06-03/endpoint-rule-set-1.json.gzbin0 -> 1157 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/internetmonitor/2021-06-03/paginators-1.json22
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/internetmonitor/2021-06-03/service-2.json.gzbin0 -> 13894 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/internetmonitor/2021-06-03/waiters-2.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/invoicing/2024-12-01/endpoint-rule-set-1.json.gzbin0 -> 901 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/invoicing/2024-12-01/paginators-1.json10
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/invoicing/2024-12-01/service-2.json.gzbin0 -> 4479 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/invoicing/2024-12-01/waiters-2.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iot-data/2015-05-28/endpoint-rule-set-1.json.gzbin0 -> 1484 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iot-data/2015-05-28/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iot-data/2015-05-28/paginators-1.json10
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iot-data/2015-05-28/service-2.json.gzbin0 -> 4293 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iot-jobs-data/2017-09-29/endpoint-rule-set-1.json.gzbin0 -> 1155 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iot-jobs-data/2017-09-29/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iot-jobs-data/2017-09-29/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iot-jobs-data/2017-09-29/service-2.json.gzbin0 -> 5041 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iot-managed-integrations/2025-03-03/endpoint-rule-set-1.json.gzbin0 -> 845 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iot-managed-integrations/2025-03-03/paginators-1.json70
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iot-managed-integrations/2025-03-03/service-2.json.gzbin0 -> 18046 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iot/2015-05-28/endpoint-rule-set-1.json.gzbin0 -> 1268 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iot/2015-05-28/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iot/2015-05-28/paginators-1.json390
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iot/2015-05-28/service-2.json.gzbin0 -> 122460 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iotanalytics/2017-11-27/endpoint-rule-set-1.json.gzbin0 -> 1151 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iotanalytics/2017-11-27/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iotanalytics/2017-11-27/paginators-1.json34
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iotanalytics/2017-11-27/service-2.json.gzbin0 -> 18162 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iotdeviceadvisor/2020-09-18/endpoint-rule-set-1.json.gzbin0 -> 1159 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iotdeviceadvisor/2020-09-18/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iotdeviceadvisor/2020-09-18/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iotdeviceadvisor/2020-09-18/service-2.json.gzbin0 -> 5325 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iotevents-data/2018-10-23/endpoint-rule-set-1.json.gzbin0 -> 1151 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iotevents-data/2018-10-23/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iotevents-data/2018-10-23/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iotevents-data/2018-10-23/service-2.json.gzbin0 -> 6392 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iotevents/2018-07-27/endpoint-rule-set-1.json.gzbin0 -> 1150 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iotevents/2018-07-27/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iotevents/2018-07-27/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iotevents/2018-07-27/service-2.json.gzbin0 -> 16090 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iotfleethub/2020-11-03/endpoint-rule-set-1.json.gzbin0 -> 1156 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iotfleethub/2020-11-03/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iotfleethub/2020-11-03/paginators-1.json9
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iotfleethub/2020-11-03/service-2.json.gzbin0 -> 2835 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iotfleetwise/2021-06-17/endpoint-rule-set-1.json.gzbin0 -> 1153 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iotfleetwise/2021-06-17/paginators-1.json88
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iotfleetwise/2021-06-17/service-2.json.gzbin0 -> 30093 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iotfleetwise/2021-06-17/waiters-2.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iotsecuretunneling/2018-10-05/endpoint-rule-set-1.json.gzbin0 -> 1403 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iotsecuretunneling/2018-10-05/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iotsecuretunneling/2018-10-05/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iotsecuretunneling/2018-10-05/service-2.json.gzbin0 -> 3431 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iotsitewise/2019-12-02/endpoint-rule-set-1.json.gzbin0 -> 1152 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iotsitewise/2019-12-02/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iotsitewise/2019-12-02/paginators-1.json136
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iotsitewise/2019-12-02/paginators-1.sdk-extras.json12
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iotsitewise/2019-12-02/service-2.json.gzbin0 -> 52387 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iotsitewise/2019-12-02/waiters-2.json92
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iotthingsgraph/2018-09-06/endpoint-rule-set-1.json.gzbin0 -> 1218 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iotthingsgraph/2018-09-06/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iotthingsgraph/2018-09-06/paginators-1.json64
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iotthingsgraph/2018-09-06/service-2.json.gzbin0 -> 10349 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iottwinmaker/2021-11-29/endpoint-rule-set-1.json.gzbin0 -> 1154 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iottwinmaker/2021-11-29/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iottwinmaker/2021-11-29/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iottwinmaker/2021-11-29/service-2.json.gzbin0 -> 16782 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iottwinmaker/2021-11-29/waiters-2.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iotwireless/2020-11-22/endpoint-rule-set-1.json.gzbin0 -> 1155 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iotwireless/2020-11-22/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iotwireless/2020-11-22/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/iotwireless/2020-11-22/service-2.json.gzbin0 -> 36654 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ivs-realtime/2020-07-14/endpoint-rule-set-1.json.gzbin0 -> 1302 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ivs-realtime/2020-07-14/paginators-1.json16
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ivs-realtime/2020-07-14/service-2.json.gzbin0 -> 17012 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ivs-realtime/2020-07-14/waiters-2.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ivs/2020-07-14/endpoint-rule-set-1.json.gzbin0 -> 1147 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ivs/2020-07-14/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ivs/2020-07-14/paginators-1.json34
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ivs/2020-07-14/service-2.json.gzbin0 -> 17154 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ivschat/2020-07-14/endpoint-rule-set-1.json.gzbin0 -> 1150 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ivschat/2020-07-14/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ivschat/2020-07-14/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ivschat/2020-07-14/service-2.json.gzbin0 -> 8309 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ivschat/2020-07-14/waiters-2.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kafka/2018-11-14/endpoint-rule-set-1.json.gzbin0 -> 1234 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kafka/2018-11-14/paginators-1.json76
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kafka/2018-11-14/service-2.json.gzbin0 -> 21054 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kafkaconnect/2021-09-14/endpoint-rule-set-1.json.gzbin0 -> 1154 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kafkaconnect/2021-09-14/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kafkaconnect/2021-09-14/paginators-1.json28
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kafkaconnect/2021-09-14/service-2.json.gzbin0 -> 7897 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kafkaconnect/2021-09-14/waiters-2.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kendra-ranking/2022-10-19/endpoint-rule-set-1.json.gzbin0 -> 1148 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kendra-ranking/2022-10-19/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kendra-ranking/2022-10-19/service-2.json.gzbin0 -> 4362 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kendra/2019-02-03/endpoint-rule-set-1.json.gzbin0 -> 1149 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kendra/2019-02-03/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kendra/2019-02-03/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kendra/2019-02-03/service-2.json.gzbin0 -> 71289 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/keyspaces/2022-02-10/endpoint-rule-set-1.json.gzbin0 -> 1237 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/keyspaces/2022-02-10/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/keyspaces/2022-02-10/paginators-1.json28
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/keyspaces/2022-02-10/service-2.json.gzbin0 -> 13954 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/keyspaces/2022-02-10/waiters-2.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-archived-media/2017-09-30/endpoint-rule-set-1.json.gzbin0 -> 1153 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-archived-media/2017-09-30/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-archived-media/2017-09-30/paginators-1.json16
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-archived-media/2017-09-30/service-2.json.gzbin0 -> 13517 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-media/2017-09-30/endpoint-rule-set-1.json.gzbin0 -> 1150 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-media/2017-09-30/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-media/2017-09-30/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-media/2017-09-30/service-2.json.gzbin0 -> 3434 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-signaling/2019-12-04/endpoint-rule-set-1.json.gzbin0 -> 1150 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-signaling/2019-12-04/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-signaling/2019-12-04/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-signaling/2019-12-04/service-2.json.gzbin0 -> 2439 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-webrtc-storage/2018-05-10/endpoint-rule-set-1.json.gzbin0 -> 1303 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-webrtc-storage/2018-05-10/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-webrtc-storage/2018-05-10/service-2.json.gzbin0 -> 2094 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kinesis/2013-12-02/endpoint-rule-set-1.json.gzbin0 -> 5445 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kinesis/2013-12-02/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kinesis/2013-12-02/paginators-1.json43
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kinesis/2013-12-02/service-2.json.gzbin0 -> 23972 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kinesis/2013-12-02/waiters-2.json30
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kinesisanalytics/2015-08-14/endpoint-rule-set-1.json.gzbin0 -> 1156 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kinesisanalytics/2015-08-14/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kinesisanalytics/2015-08-14/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kinesisanalytics/2015-08-14/service-2.json.gzbin0 -> 14039 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kinesisanalyticsv2/2018-05-23/endpoint-rule-set-1.json.gzbin0 -> 1159 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kinesisanalyticsv2/2018-05-23/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kinesisanalyticsv2/2018-05-23/paginators-1.json28
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kinesisanalyticsv2/2018-05-23/service-2.json.gzbin0 -> 25186 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kinesisvideo/2017-09-30/endpoint-rule-set-1.json.gzbin0 -> 1153 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kinesisvideo/2017-09-30/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kinesisvideo/2017-09-30/paginators-1.json28
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kinesisvideo/2017-09-30/service-2.json.gzbin0 -> 14715 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kms/2014-11-01/endpoint-rule-set-1.json.gzbin0 -> 1147 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kms/2014-11-01/examples-1.json1750
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kms/2014-11-01/paginators-1.json60
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/kms/2014-11-01/service-2.json.gzbin0 -> 69574 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/lakeformation/2017-03-31/endpoint-rule-set-1.json.gzbin0 -> 1153 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/lakeformation/2017-03-31/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/lakeformation/2017-03-31/paginators-1.json40
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/lakeformation/2017-03-31/paginators-1.sdk-extras.json12
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/lakeformation/2017-03-31/service-2.json.gzbin0 -> 23926 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/lambda/2014-11-11/endpoint-rule-set-1.json.gzbin0 -> 1288 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/lambda/2014-11-11/service-2.json.gzbin0 -> 5528 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/lambda/2015-03-31/endpoint-rule-set-1.json.gzbin0 -> 1149 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/lambda/2015-03-31/examples-1.json1513
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/lambda/2015-03-31/paginators-1.json70
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/lambda/2015-03-31/service-2.json.gzbin0 -> 48982 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/lambda/2015-03-31/waiters-2.json152
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/launch-wizard/2018-05-10/endpoint-rule-set-1.json.gzbin0 -> 1304 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/launch-wizard/2018-05-10/paginators-1.json28
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/launch-wizard/2018-05-10/service-2.json.gzbin0 -> 4452 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/lex-models/2017-04-19/endpoint-rule-set-1.json.gzbin0 -> 1337 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/lex-models/2017-04-19/examples-1.json758
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/lex-models/2017-04-19/paginators-1.json64
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/lex-models/2017-04-19/service-2.json.gzbin0 -> 29495 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/lex-runtime/2016-11-28/endpoint-rule-set-1.json.gzbin0 -> 1268 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/lex-runtime/2016-11-28/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/lex-runtime/2016-11-28/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/lex-runtime/2016-11-28/service-2.json.gzbin0 -> 11790 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/lexv2-models/2020-08-07/endpoint-rule-set-1.json.gzbin0 -> 1155 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/lexv2-models/2020-08-07/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/lexv2-models/2020-08-07/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/lexv2-models/2020-08-07/service-2.json.gzbin0 -> 75468 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/lexv2-models/2020-08-07/waiters-2.json255
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/lexv2-runtime/2020-08-07/endpoint-rule-set-1.json.gzbin0 -> 1156 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/lexv2-runtime/2020-08-07/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/lexv2-runtime/2020-08-07/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/lexv2-runtime/2020-08-07/service-2.json.gzbin0 -> 12882 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/license-manager-linux-subscriptions/2018-05-10/endpoint-rule-set-1.json.gzbin0 -> 1320 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/license-manager-linux-subscriptions/2018-05-10/paginators-1.json22
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/license-manager-linux-subscriptions/2018-05-10/service-2.json.gzbin0 -> 4790 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/license-manager-user-subscriptions/2018-05-10/endpoint-rule-set-1.json.gzbin0 -> 1173 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/license-manager-user-subscriptions/2018-05-10/paginators-1.json34
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/license-manager-user-subscriptions/2018-05-10/service-2.json.gzbin0 -> 6480 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/license-manager/2018-08-01/endpoint-rule-set-1.json.gzbin0 -> 1156 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/license-manager/2018-08-01/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/license-manager/2018-08-01/paginators-1.json34
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/license-manager/2018-08-01/service-2.json.gzbin0 -> 16546 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/lightsail/2016-11-28/endpoint-rule-set-1.json.gzbin0 -> 1152 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/lightsail/2016-11-28/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/lightsail/2016-11-28/paginators-1.json104
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/lightsail/2016-11-28/service-2.json.gzbin0 -> 86411 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/location/2020-11-19/endpoint-rule-set-1.json.gzbin0 -> 1146 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/location/2020-11-19/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/location/2020-11-19/paginators-1.json70
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/location/2020-11-19/paginators-1.sdk-extras.json13
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/location/2020-11-19/service-2.json.gzbin0 -> 40254 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/logs/2014-03-28/endpoint-rule-set-1.json.gzbin0 -> 1232 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/logs/2014-03-28/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/logs/2014-03-28/paginators-1.json103
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/logs/2014-03-28/service-2.json.gzbin0 -> 61478 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/lookoutequipment/2020-12-15/endpoint-rule-set-1.json.gzbin0 -> 1158 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/lookoutequipment/2020-12-15/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/lookoutequipment/2020-12-15/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/lookoutequipment/2020-12-15/service-2.json.gzbin0 -> 23211 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/lookoutmetrics/2017-07-25/endpoint-rule-set-1.json.gzbin0 -> 1152 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/lookoutmetrics/2017-07-25/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/lookoutmetrics/2017-07-25/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/lookoutmetrics/2017-07-25/service-2.json.gzbin0 -> 12970 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/lookoutvision/2020-11-20/endpoint-rule-set-1.json.gzbin0 -> 1152 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/lookoutvision/2020-11-20/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/lookoutvision/2020-11-20/paginators-1.json28
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/lookoutvision/2020-11-20/service-2.json.gzbin0 -> 13268 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/m2/2021-04-28/endpoint-rule-set-1.json.gzbin0 -> 1147 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/m2/2021-04-28/paginators-1.json58
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/m2/2021-04-28/service-2.json.gzbin0 -> 15948 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/machinelearning/2014-12-12/endpoint-rule-set-1.json.gzbin0 -> 1156 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/machinelearning/2014-12-12/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/machinelearning/2014-12-12/paginators-1.json28
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/machinelearning/2014-12-12/service-2.json.gzbin0 -> 21283 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/machinelearning/2014-12-12/waiters-2.json81
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/macie2/2020-01-01/endpoint-rule-set-1.json.gzbin0 -> 1149 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/macie2/2020-01-01/paginators-1.json106
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/macie2/2020-01-01/service-2.json.gzbin0 -> 59306 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/macie2/2020-01-01/waiters-2.json25
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mailmanager/2023-10-17/endpoint-rule-set-1.json.gzbin0 -> 1303 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mailmanager/2023-10-17/paginators-1.json76
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mailmanager/2023-10-17/service-2.json.gzbin0 -> 20935 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/managedblockchain-query/2023-05-04/endpoint-rule-set-1.json.gzbin0 -> 1313 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/managedblockchain-query/2023-05-04/paginators-1.json34
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/managedblockchain-query/2023-05-04/service-2.json.gzbin0 -> 7186 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/managedblockchain-query/2023-05-04/waiters-2.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/managedblockchain/2018-09-24/endpoint-rule-set-1.json.gzbin0 -> 1160 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/managedblockchain/2018-09-24/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/managedblockchain/2018-09-24/paginators-1.json10
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/managedblockchain/2018-09-24/service-2.json.gzbin0 -> 13864 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/marketplace-agreement/2020-03-01/endpoint-rule-set-1.json.gzbin0 -> 1311 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/marketplace-agreement/2020-03-01/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/marketplace-agreement/2020-03-01/service-2.json.gzbin0 -> 8181 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/marketplace-catalog/2018-09-17/endpoint-rule-set-1.json.gzbin0 -> 1159 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/marketplace-catalog/2018-09-17/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/marketplace-catalog/2018-09-17/paginators-1.json16
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/marketplace-catalog/2018-09-17/service-2.json.gzbin0 -> 12227 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/marketplace-deployment/2023-01-25/endpoint-rule-set-1.json.gzbin0 -> 1312 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/marketplace-deployment/2023-01-25/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/marketplace-deployment/2023-01-25/service-2.json.gzbin0 -> 2553 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/marketplace-entitlement/2017-01-11/endpoint-rule-set-1.json.gzbin0 -> 1274 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/marketplace-entitlement/2017-01-11/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/marketplace-entitlement/2017-01-11/paginators-1.json10
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/marketplace-entitlement/2017-01-11/service-2.json.gzbin0 -> 2104 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/marketplace-reporting/2018-05-10/endpoint-rule-set-1.json.gzbin0 -> 1310 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/marketplace-reporting/2018-05-10/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/marketplace-reporting/2018-05-10/service-2.json.gzbin0 -> 2451 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/marketplace-reporting/2018-05-10/waiters-2.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/marketplacecommerceanalytics/2015-07-01/endpoint-rule-set-1.json.gzbin0 -> 1167 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/marketplacecommerceanalytics/2015-07-01/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/marketplacecommerceanalytics/2015-07-01/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/marketplacecommerceanalytics/2015-07-01/service-2.json.gzbin0 -> 3248 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mediaconnect/2018-11-14/endpoint-rule-set-1.json.gzbin0 -> 1153 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mediaconnect/2018-11-14/paginators-1.json46
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mediaconnect/2018-11-14/service-2.json.gzbin0 -> 29712 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mediaconnect/2018-11-14/waiters-2.json104
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mediaconvert/2017-08-29/endpoint-rule-set-1.json.gzbin0 -> 1301 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mediaconvert/2017-08-29/paginators-1.json46
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mediaconvert/2017-08-29/paginators-1.sdk-extras.json13
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mediaconvert/2017-08-29/service-2.json.gzbin0 -> 157044 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/medialive/2017-10-14/endpoint-rule-set-1.json.gzbin0 -> 1151 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/medialive/2017-10-14/paginators-1.json118
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/medialive/2017-10-14/service-2.json.gzbin0 -> 120304 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/medialive/2017-10-14/waiters-2.json624
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mediapackage-vod/2018-11-07/endpoint-rule-set-1.json.gzbin0 -> 1156 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mediapackage-vod/2018-11-07/paginators-1.json22
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mediapackage-vod/2018-11-07/service-2.json.gzbin0 -> 7182 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mediapackage/2017-10-12/endpoint-rule-set-1.json.gzbin0 -> 1153 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mediapackage/2017-10-12/paginators-1.json22
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mediapackage/2017-10-12/service-2.json.gzbin0 -> 9854 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mediapackagev2/2022-12-25/endpoint-rule-set-1.json.gzbin0 -> 1306 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mediapackagev2/2022-12-25/paginators-1.json28
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mediapackagev2/2022-12-25/service-2.json.gzbin0 -> 20221 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mediapackagev2/2022-12-25/waiters-2.json36
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mediastore-data/2017-09-01/endpoint-rule-set-1.json.gzbin0 -> 1152 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mediastore-data/2017-09-01/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mediastore-data/2017-09-01/paginators-1.json10
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mediastore-data/2017-09-01/service-2.json.gzbin0 -> 3757 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mediastore/2017-09-01/endpoint-rule-set-1.json.gzbin0 -> 1148 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mediastore/2017-09-01/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mediastore/2017-09-01/paginators-1.json10
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mediastore/2017-09-01/service-2.json.gzbin0 -> 7045 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mediatailor/2018-04-23/endpoint-rule-set-1.json.gzbin0 -> 1155 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mediatailor/2018-04-23/paginators-1.json52
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mediatailor/2018-04-23/service-2.json.gzbin0 -> 21861 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/medical-imaging/2023-07-19/endpoint-rule-set-1.json.gzbin0 -> 1306 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/medical-imaging/2023-07-19/paginators-1.json28
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/medical-imaging/2023-07-19/paginators-1.sdk-extras.json12
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/medical-imaging/2023-07-19/service-2.json.gzbin0 -> 9518 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/medical-imaging/2023-07-19/waiters-2.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/memorydb/2021-01-01/endpoint-rule-set-1.json.gzbin0 -> 1266 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/memorydb/2021-01-01/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/memorydb/2021-01-01/paginators-1.json82
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/memorydb/2021-01-01/service-2.json.gzbin0 -> 17522 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/meteringmarketplace/2016-01-14/endpoint-rule-set-1.json.gzbin0 -> 1243 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/meteringmarketplace/2016-01-14/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/meteringmarketplace/2016-01-14/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/meteringmarketplace/2016-01-14/service-2.json.gzbin0 -> 6179 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mgh/2017-05-31/endpoint-rule-set-1.json.gzbin0 -> 1147 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mgh/2017-05-31/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mgh/2017-05-31/paginators-1.json46
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mgh/2017-05-31/service-2.json.gzbin0 -> 8366 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mgn/2020-02-26/endpoint-rule-set-1.json.gzbin0 -> 1147 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mgn/2020-02-26/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mgn/2020-02-26/paginators-1.json100
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mgn/2020-02-26/service-2.json.gzbin0 -> 19748 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/migration-hub-refactor-spaces/2021-10-26/endpoint-rule-set-1.json.gzbin0 -> 1153 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/migration-hub-refactor-spaces/2021-10-26/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/migration-hub-refactor-spaces/2021-10-26/paginators-1.json34
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/migration-hub-refactor-spaces/2021-10-26/service-2.json.gzbin0 -> 12478 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/migrationhub-config/2019-06-30/endpoint-rule-set-1.json.gzbin0 -> 1158 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/migrationhub-config/2019-06-30/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/migrationhub-config/2019-06-30/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/migrationhub-config/2019-06-30/service-2.json.gzbin0 -> 2714 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/migrationhuborchestrator/2021-08-28/endpoint-rule-set-1.json.gzbin0 -> 1310 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/migrationhuborchestrator/2021-08-28/paginators-1.json46
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/migrationhuborchestrator/2021-08-28/service-2.json.gzbin0 -> 8432 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/migrationhuborchestrator/2021-08-28/waiters-2.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/migrationhubstrategy/2020-02-19/endpoint-rule-set-1.json.gzbin0 -> 1158 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/migrationhubstrategy/2020-02-19/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/migrationhubstrategy/2020-02-19/paginators-1.json40
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/migrationhubstrategy/2020-02-19/paginators-1.sdk-extras.json12
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/migrationhubstrategy/2020-02-19/service-2.json.gzbin0 -> 13363 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mq/2017-11-27/endpoint-rule-set-1.json.gzbin0 -> 1146 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mq/2017-11-27/paginators-1.json10
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mq/2017-11-27/service-2.json.gzbin0 -> 14441 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mturk/2017-01-17/endpoint-rule-set-1.json.gzbin0 -> 1214 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mturk/2017-01-17/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mturk/2017-01-17/paginators-1.json58
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mturk/2017-01-17/service-2.json.gzbin0 -> 19736 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mwaa/2020-07-01/endpoint-rule-set-1.json.gzbin0 -> 1150 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mwaa/2020-07-01/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mwaa/2020-07-01/paginators-1.json10
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/mwaa/2020-07-01/service-2.json.gzbin0 -> 11624 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/neptune-graph/2023-11-29/endpoint-rule-set-1.json.gzbin0 -> 1410 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/neptune-graph/2023-11-29/paginators-1.json34
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/neptune-graph/2023-11-29/service-2.json.gzbin0 -> 14852 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/neptune-graph/2023-11-29/waiters-2.json212
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/neptune/2014-10-31/endpoint-rule-set-1.json.gzbin0 -> 1232 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/neptune/2014-10-31/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/neptune/2014-10-31/paginators-1.json100
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/neptune/2014-10-31/service-2.json.gzbin0 -> 43595 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/neptune/2014-10-31/service-2.sdk-extras.json23
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/neptune/2014-10-31/waiters-2.json90
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/neptunedata/2023-08-01/endpoint-rule-set-1.json.gzbin0 -> 1300 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/neptunedata/2023-08-01/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/neptunedata/2023-08-01/service-2.json.gzbin0 -> 23510 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/network-firewall/2020-11-12/endpoint-rule-set-1.json.gzbin0 -> 1156 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/network-firewall/2020-11-12/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/network-firewall/2020-11-12/paginators-1.json58
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/network-firewall/2020-11-12/paginators-1.sdk-extras.json26
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/network-firewall/2020-11-12/service-2.json.gzbin0 -> 38176 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/networkflowmonitor/2023-04-19/endpoint-rule-set-1.json.gzbin0 -> 842 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/networkflowmonitor/2023-04-19/paginators-1.json34
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/networkflowmonitor/2023-04-19/paginators-1.sdk-extras.json17
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/networkflowmonitor/2023-04-19/service-2.json.gzbin0 -> 8938 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/networkflowmonitor/2023-04-19/waiters-2.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/networkmanager/2019-07-05/endpoint-rule-set-1.json.gzbin0 -> 1371 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/networkmanager/2019-07-05/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/networkmanager/2019-07-05/paginators-1.json130
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/networkmanager/2019-07-05/service-2.json.gzbin0 -> 23986 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/networkmonitor/2023-08-01/endpoint-rule-set-1.json.gzbin0 -> 1305 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/networkmonitor/2023-08-01/paginators-1.json10
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/networkmonitor/2023-08-01/service-2.json.gzbin0 -> 5147 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/networkmonitor/2023-08-01/waiters-2.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/notifications/2018-05-10/endpoint-rule-set-1.json.gzbin0 -> 837 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/notifications/2018-05-10/paginators-1.json58
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/notifications/2018-05-10/service-2.json.gzbin0 -> 15017 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/notifications/2018-05-10/waiters-2.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/notificationscontacts/2018-05-10/endpoint-rule-set-1.json.gzbin0 -> 909 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/notificationscontacts/2018-05-10/paginators-1.json10
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/notificationscontacts/2018-05-10/service-2.json.gzbin0 -> 3777 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/notificationscontacts/2018-05-10/waiters-2.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/oam/2022-06-10/endpoint-rule-set-1.json.gzbin0 -> 1297 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/oam/2022-06-10/paginators-1.json22
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/oam/2022-06-10/service-2.json.gzbin0 -> 6699 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/observabilityadmin/2018-05-10/endpoint-rule-set-1.json.gzbin0 -> 1308 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/observabilityadmin/2018-05-10/paginators-1.json16
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/observabilityadmin/2018-05-10/service-2.json.gzbin0 -> 3058 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/observabilityadmin/2018-05-10/waiters-2.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/omics/2022-11-28/endpoint-rule-set-1.json.gzbin0 -> 1298 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/omics/2022-11-28/paginators-1.json130
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/omics/2022-11-28/service-2.json.gzbin0 -> 31202 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/omics/2022-11-28/waiters-2.json546
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/opensearch/2021-01-01/endpoint-rule-set-1.json.gzbin0 -> 1313 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/opensearch/2021-01-01/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/opensearch/2021-01-01/paginators-1.json10
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/opensearch/2021-01-01/service-2.json.gzbin0 -> 46562 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/opensearchserverless/2021-11-01/endpoint-rule-set-1.json.gzbin0 -> 1297 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/opensearchserverless/2021-11-01/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/opensearchserverless/2021-11-01/service-2.json.gzbin0 -> 10940 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/opensearchserverless/2021-11-01/waiters-2.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/opsworks/2013-02-18/endpoint-rule-set-1.json.gzbin0 -> 1151 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/opsworks/2013-02-18/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/opsworks/2013-02-18/paginators-1.json10
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/opsworks/2013-02-18/service-2.json.gzbin0 -> 37925 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/opsworks/2013-02-18/waiters-2.json289
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/opsworkscm/2016-11-01/endpoint-rule-set-1.json.gzbin0 -> 1151 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/opsworkscm/2016-11-01/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/opsworkscm/2016-11-01/paginators-1.json28
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/opsworkscm/2016-11-01/service-2.json.gzbin0 -> 13908 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/opsworkscm/2016-11-01/waiters-2.json25
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/organizations/2016-11-28/endpoint-rule-set-1.json.gzbin0 -> 1653 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/organizations/2016-11-28/examples-1.json1409
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/organizations/2016-11-28/paginators-1.json99
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/organizations/2016-11-28/service-2.json.gzbin0 -> 35784 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/osis/2022-01-01/endpoint-rule-set-1.json.gzbin0 -> 1297 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/osis/2022-01-01/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/osis/2022-01-01/service-2.json.gzbin0 -> 6216 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/outposts/2019-12-03/endpoint-rule-set-1.json.gzbin0 -> 1236 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/outposts/2019-12-03/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/outposts/2019-12-03/paginators-1.json64
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/outposts/2019-12-03/paginators-1.sdk-extras.json13
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/outposts/2019-12-03/service-2.json.gzbin0 -> 13719 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/panorama/2019-07-24/endpoint-rule-set-1.json.gzbin0 -> 1148 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/panorama/2019-07-24/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/panorama/2019-07-24/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/panorama/2019-07-24/service-2.json.gzbin0 -> 11986 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/partitions.json239
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/partnercentral-selling/2022-07-26/endpoint-rule-set-1.json.gzbin0 -> 845 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/partnercentral-selling/2022-07-26/paginators-1.json64
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/partnercentral-selling/2022-07-26/service-2.json.gzbin0 -> 47465 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/payment-cryptography-data/2022-02-03/endpoint-rule-set-1.json.gzbin0 -> 1319 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/payment-cryptography-data/2022-02-03/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/payment-cryptography-data/2022-02-03/service-2.json.gzbin0 -> 16505 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/payment-cryptography-data/2022-02-03/waiters-2.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/payment-cryptography/2021-09-14/endpoint-rule-set-1.json.gzbin0 -> 1319 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/payment-cryptography/2021-09-14/paginators-1.json22
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/payment-cryptography/2021-09-14/service-2.json.gzbin0 -> 15171 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/payment-cryptography/2021-09-14/waiters-2.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/pca-connector-ad/2018-05-10/endpoint-rule-set-1.json.gzbin0 -> 1306 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/pca-connector-ad/2018-05-10/paginators-1.json34
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/pca-connector-ad/2018-05-10/service-2.json.gzbin0 -> 13292 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/pca-connector-scep/2018-05-10/endpoint-rule-set-1.json.gzbin0 -> 1308 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/pca-connector-scep/2018-05-10/paginators-1.json16
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/pca-connector-scep/2018-05-10/service-2.json.gzbin0 -> 5804 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/pca-connector-scep/2018-05-10/waiters-2.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/pcs/2023-02-10/endpoint-rule-set-1.json.gzbin0 -> 1296 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/pcs/2023-02-10/paginators-1.json22
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/pcs/2023-02-10/service-2.json.gzbin0 -> 10366 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/pcs/2023-02-10/waiters-2.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/personalize-events/2018-03-22/endpoint-rule-set-1.json.gzbin0 -> 1159 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/personalize-events/2018-03-22/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/personalize-events/2018-03-22/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/personalize-events/2018-03-22/service-2.json.gzbin0 -> 3870 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/personalize-runtime/2018-05-22/endpoint-rule-set-1.json.gzbin0 -> 1160 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/personalize-runtime/2018-05-22/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/personalize-runtime/2018-05-22/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/personalize-runtime/2018-05-22/service-2.json.gzbin0 -> 3827 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/personalize/2018-05-22/endpoint-rule-set-1.json.gzbin0 -> 1154 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/personalize/2018-05-22/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/personalize/2018-05-22/paginators-1.json100
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/personalize/2018-05-22/service-2.json.gzbin0 -> 29857 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/pi/2018-02-27/endpoint-rule-set-1.json.gzbin0 -> 1146 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/pi/2018-02-27/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/pi/2018-02-27/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/pi/2018-02-27/service-2.json.gzbin0 -> 12024 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/pinpoint-email/2018-07-26/endpoint-rule-set-1.json.gzbin0 -> 1145 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/pinpoint-email/2018-07-26/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/pinpoint-email/2018-07-26/paginators-1.json34
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/pinpoint-email/2018-07-26/service-2.json.gzbin0 -> 23610 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/pinpoint-sms-voice-v2/2022-03-31/endpoint-rule-set-1.json.gzbin0 -> 1152 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/pinpoint-sms-voice-v2/2022-03-31/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/pinpoint-sms-voice-v2/2022-03-31/paginators-1.json136
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/pinpoint-sms-voice-v2/2022-03-31/paginators-1.sdk-extras.json61
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/pinpoint-sms-voice-v2/2022-03-31/service-2.json.gzbin0 -> 37334 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/pinpoint-sms-voice-v2/2022-03-31/waiters-2.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/pinpoint-sms-voice/2018-09-05/endpoint-rule-set-1.json.gzbin0 -> 1112 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/pinpoint-sms-voice/2018-09-05/service-2.json.gzbin0 -> 2998 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/pinpoint/2016-12-01/endpoint-rule-set-1.json.gzbin0 -> 1315 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/pinpoint/2016-12-01/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/pinpoint/2016-12-01/service-2.json.gzbin0 -> 70366 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/pipes/2015-10-07/endpoint-rule-set-1.json.gzbin0 -> 1296 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/pipes/2015-10-07/paginators-1.json10
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/pipes/2015-10-07/service-2.json.gzbin0 -> 23040 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/pipes/2015-10-07/waiters-2.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/polly/2016-06-10/endpoint-rule-set-1.json.gzbin0 -> 1149 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/polly/2016-06-10/examples-1.json171
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/polly/2016-06-10/paginators-1.json20
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/polly/2016-06-10/service-2.json.gzbin0 -> 8176 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/pricing/2017-10-15/endpoint-rule-set-1.json.gzbin0 -> 1219 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/pricing/2017-10-15/examples-1.json104
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/pricing/2017-10-15/paginators-1.json34
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/pricing/2017-10-15/service-2.json.gzbin0 -> 4326 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/pricing/2017-10-15/waiters-2.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/privatenetworks/2021-12-03/endpoint-rule-set-1.json.gzbin0 -> 1156 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/privatenetworks/2021-12-03/paginators-1.json34
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/privatenetworks/2021-12-03/service-2.json.gzbin0 -> 8927 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/proton/2020-07-20/endpoint-rule-set-1.json.gzbin0 -> 1146 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/proton/2020-07-20/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/proton/2020-07-20/paginators-1.json121
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/proton/2020-07-20/service-2.json.gzbin0 -> 28066 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/proton/2020-07-20/waiters-2.json208
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/qapps/2023-11-27/endpoint-rule-set-1.json.gzbin0 -> 1301 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/qapps/2023-11-27/paginators-1.json16
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/qapps/2023-11-27/service-2.json.gzbin0 -> 13866 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/qapps/2023-11-27/waiters-2.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/qbusiness/2023-11-27/endpoint-rule-set-1.json.gzbin0 -> 1128 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/qbusiness/2023-11-27/paginators-1.json118
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/qbusiness/2023-11-27/paginators-1.sdk-extras.json15
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/qbusiness/2023-11-27/service-2.json.gzbin0 -> 46008 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/qbusiness/2023-11-27/waiters-2.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/qconnect/2020-10-19/endpoint-rule-set-1.json.gzbin0 -> 1299 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/qconnect/2020-10-19/paginators-1.json130
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/qconnect/2020-10-19/service-2.json.gzbin0 -> 46558 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/qldb-session/2019-07-11/endpoint-rule-set-1.json.gzbin0 -> 1151 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/qldb-session/2019-07-11/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/qldb-session/2019-07-11/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/qldb-session/2019-07-11/service-2.json.gzbin0 -> 3035 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/qldb/2019-01-02/endpoint-rule-set-1.json.gzbin0 -> 1148 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/qldb/2019-01-02/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/qldb/2019-01-02/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/qldb/2019-01-02/service-2.json.gzbin0 -> 11016 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/quicksight/2018-04-01/endpoint-rule-set-1.json.gzbin0 -> 1153 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/quicksight/2018-04-01/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/quicksight/2018-04-01/paginators-1.json214
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/quicksight/2018-04-01/paginators-1.sdk-extras.json215
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/quicksight/2018-04-01/service-2.json.gzbin0 -> 179745 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ram/2018-01-04/endpoint-rule-set-1.json.gzbin0 -> 1234 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ram/2018-01-04/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ram/2018-01-04/paginators-1.json40
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ram/2018-01-04/service-2.json.gzbin0 -> 17997 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/rbin/2021-06-15/endpoint-rule-set-1.json.gzbin0 -> 1147 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/rbin/2021-06-15/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/rbin/2021-06-15/paginators-1.json10
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/rbin/2021-06-15/service-2.json.gzbin0 -> 4900 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/rds-data/2018-08-01/endpoint-rule-set-1.json.gzbin0 -> 1151 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/rds-data/2018-08-01/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/rds-data/2018-08-01/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/rds-data/2018-08-01/service-2.json.gzbin0 -> 6569 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/rds/2014-09-01/endpoint-rule-set-1.json.gzbin0 -> 1234 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/rds/2014-09-01/paginators-1.json107
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/rds/2014-09-01/service-2.json.gzbin0 -> 37839 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/rds/2014-09-01/waiters-2.json97
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/rds/2014-10-31/endpoint-rule-set-1.json.gzbin0 -> 1232 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/rds/2014-10-31/examples-1.json1951
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/rds/2014-10-31/paginators-1.json245
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/rds/2014-10-31/paginators-1.sdk-extras.json12
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/rds/2014-10-31/service-2.json.gzbin0 -> 158876 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/rds/2014-10-31/service-2.sdk-extras.json47
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/rds/2014-10-31/waiters-2.json412
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/redshift-data/2019-12-20/endpoint-rule-set-1.json.gzbin0 -> 1154 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/redshift-data/2019-12-20/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/redshift-data/2019-12-20/paginators-1.json44
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/redshift-data/2019-12-20/paginators-1.sdk-extras.json25
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/redshift-data/2019-12-20/service-2.json.gzbin0 -> 7988 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/redshift-serverless/2021-04-21/endpoint-rule-set-1.json.gzbin0 -> 1158 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/redshift-serverless/2021-04-21/paginators-1.json76
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/redshift-serverless/2021-04-21/service-2.json.gzbin0 -> 19330 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/redshift/2012-12-01/endpoint-rule-set-1.json.gzbin0 -> 1236 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/redshift/2012-12-01/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/redshift/2012-12-01/paginators-1.json226
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/redshift/2012-12-01/service-2.json.gzbin0 -> 75361 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/redshift/2012-12-01/waiters-2.json97
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/rekognition/2016-06-27/endpoint-rule-set-1.json.gzbin0 -> 1152 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/rekognition/2016-06-27/examples-1.json651
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/rekognition/2016-06-27/paginators-1.json64
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/rekognition/2016-06-27/service-2.json.gzbin0 -> 70528 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/rekognition/2016-06-27/waiters-2.json45
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/repostspace/2022-05-13/endpoint-rule-set-1.json.gzbin0 -> 1302 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/repostspace/2022-05-13/paginators-1.json10
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/repostspace/2022-05-13/service-2.json.gzbin0 -> 4923 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/resiliencehub/2020-04-30/endpoint-rule-set-1.json.gzbin0 -> 1154 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/resiliencehub/2020-04-30/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/resiliencehub/2020-04-30/paginators-1.json22
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/resiliencehub/2020-04-30/service-2.json.gzbin0 -> 29858 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/resource-explorer-2/2022-07-28/endpoint-rule-set-1.json.gzbin0 -> 1159 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/resource-explorer-2/2022-07-28/paginators-1.json46
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/resource-explorer-2/2022-07-28/paginators-1.sdk-extras.json18
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/resource-explorer-2/2022-07-28/service-2.json.gzbin0 -> 12841 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/resource-groups/2017-11-27/endpoint-rule-set-1.json.gzbin0 -> 1241 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/resource-groups/2017-11-27/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/resource-groups/2017-11-27/paginators-1.json40
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/resource-groups/2017-11-27/paginators-1.sdk-extras.json12
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/resource-groups/2017-11-27/service-2.json.gzbin0 -> 14043 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/resourcegroupstaggingapi/2017-01-26/endpoint-rule-set-1.json.gzbin0 -> 1147 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/resourcegroupstaggingapi/2017-01-26/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/resourcegroupstaggingapi/2017-01-26/paginators-1.json26
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/resourcegroupstaggingapi/2017-01-26/service-2.json.gzbin0 -> 7721 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/robomaker/2018-06-29/endpoint-rule-set-1.json.gzbin0 -> 1151 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/robomaker/2018-06-29/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/robomaker/2018-06-29/paginators-1.json70
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/robomaker/2018-06-29/service-2.json.gzbin0 -> 25122 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/rolesanywhere/2018-05-10/endpoint-rule-set-1.json.gzbin0 -> 1154 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/rolesanywhere/2018-05-10/paginators-1.json24
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/rolesanywhere/2018-05-10/service-2.json.gzbin0 -> 7193 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/route53-recovery-cluster/2019-12-02/endpoint-rule-set-1.json.gzbin0 -> 1169 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/route53-recovery-cluster/2019-12-02/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/route53-recovery-cluster/2019-12-02/paginators-1.json10
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/route53-recovery-cluster/2019-12-02/service-2.json.gzbin0 -> 4022 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/route53-recovery-control-config/2020-11-02/endpoint-rule-set-1.json.gzbin0 -> 1565 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/route53-recovery-control-config/2020-11-02/paginators-1.json34
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/route53-recovery-control-config/2020-11-02/service-2.json.gzbin0 -> 8486 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/route53-recovery-control-config/2020-11-02/waiters-2.json152
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/route53-recovery-readiness/2019-12-02/endpoint-rule-set-1.json.gzbin0 -> 1166 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/route53-recovery-readiness/2019-12-02/paginators-1.json77
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/route53-recovery-readiness/2019-12-02/service-2.json.gzbin0 -> 7313 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/route53/2013-04-01/endpoint-rule-set-1.json.gzbin0 -> 1705 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/route53/2013-04-01/examples-1.json762
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/route53/2013-04-01/paginators-1.json67
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/route53/2013-04-01/service-2.json.gzbin0 -> 63340 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/route53/2013-04-01/waiters-2.json18
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/route53domains/2014-05-15/endpoint-rule-set-1.json.gzbin0 -> 1157 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/route53domains/2014-05-15/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/route53domains/2014-05-15/paginators-1.json29
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/route53domains/2014-05-15/service-2.json.gzbin0 -> 21347 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/route53profiles/2018-05-10/endpoint-rule-set-1.json.gzbin0 -> 1308 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/route53profiles/2018-05-10/paginators-1.json22
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/route53profiles/2018-05-10/service-2.json.gzbin0 -> 4822 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/route53resolver/2018-04-01/endpoint-rule-set-1.json.gzbin0 -> 1242 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/route53resolver/2018-04-01/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/route53resolver/2018-04-01/paginators-1.json100
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/route53resolver/2018-04-01/paginators-1.sdk-extras.json39
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/route53resolver/2018-04-01/service-2.json.gzbin0 -> 32109 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/rum/2018-05-10/endpoint-rule-set-1.json.gzbin0 -> 1147 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/rum/2018-05-10/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/rum/2018-05-10/paginators-1.json28
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/rum/2018-05-10/service-2.json.gzbin0 -> 15044 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/s3/2006-03-01/endpoint-rule-set-1.json.gzbin0 -> 18305 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/s3/2006-03-01/examples-1.json1843
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/s3/2006-03-01/paginators-1.json76
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/s3/2006-03-01/paginators-1.sdk-extras.json46
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/s3/2006-03-01/service-2.json.gzbin0 -> 156873 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/s3/2006-03-01/service-2.sdk-extras.json8
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/s3/2006-03-01/waiters-2.json73
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/s3control/2018-08-20/endpoint-rule-set-1.json.gzbin0 -> 7594 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/s3control/2018-08-20/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/s3control/2018-08-20/paginators-1.json16
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/s3control/2018-08-20/service-2.json.gzbin0 -> 61299 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/s3outposts/2017-07-25/endpoint-rule-set-1.json.gzbin0 -> 1154 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/s3outposts/2017-07-25/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/s3outposts/2017-07-25/paginators-1.json22
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/s3outposts/2017-07-25/service-2.json.gzbin0 -> 3453 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/s3tables/2018-05-10/endpoint-rule-set-1.json.gzbin0 -> 1300 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/s3tables/2018-05-10/paginators-1.json22
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/s3tables/2018-05-10/service-2.json.gzbin0 -> 6354 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/s3tables/2018-05-10/waiters-2.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sagemaker-a2i-runtime/2019-11-07/endpoint-rule-set-1.json.gzbin0 -> 1160 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sagemaker-a2i-runtime/2019-11-07/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sagemaker-a2i-runtime/2019-11-07/paginators-1.json10
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sagemaker-a2i-runtime/2019-11-07/service-2.json.gzbin0 -> 3777 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sagemaker-edge/2020-09-23/endpoint-rule-set-1.json.gzbin0 -> 1152 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sagemaker-edge/2020-09-23/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sagemaker-edge/2020-09-23/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sagemaker-edge/2020-09-23/service-2.json.gzbin0 -> 2219 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sagemaker-featurestore-runtime/2020-07-01/endpoint-rule-set-1.json.gzbin0 -> 1170 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sagemaker-featurestore-runtime/2020-07-01/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sagemaker-featurestore-runtime/2020-07-01/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sagemaker-featurestore-runtime/2020-07-01/service-2.json.gzbin0 -> 4127 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sagemaker-geospatial/2020-05-27/endpoint-rule-set-1.json.gzbin0 -> 1299 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sagemaker-geospatial/2020-05-27/paginators-1.json22
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sagemaker-geospatial/2020-05-27/service-2.json.gzbin0 -> 11920 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sagemaker-metrics/2022-09-30/endpoint-rule-set-1.json.gzbin0 -> 1307 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sagemaker-metrics/2022-09-30/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sagemaker-metrics/2022-09-30/service-2.json.gzbin0 -> 2024 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sagemaker-runtime/2017-05-13/endpoint-rule-set-1.json.gzbin0 -> 1274 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sagemaker-runtime/2017-05-13/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sagemaker-runtime/2017-05-13/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sagemaker-runtime/2017-05-13/service-2.json.gzbin0 -> 5704 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sagemaker/2017-07-24/endpoint-rule-set-1.json.gzbin0 -> 1271 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sagemaker/2017-07-24/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sagemaker/2017-07-24/paginators-1.json472
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sagemaker/2017-07-24/service-2.json.gzbin0 -> 308643 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sagemaker/2017-07-24/waiters-2.json311
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/savingsplans/2019-06-28/endpoint-rule-set-1.json.gzbin0 -> 1308 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/savingsplans/2019-06-28/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/savingsplans/2019-06-28/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/savingsplans/2019-06-28/service-2.json.gzbin0 -> 4275 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/scheduler/2021-06-30/endpoint-rule-set-1.json.gzbin0 -> 1290 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/scheduler/2021-06-30/paginators-1.json16
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/scheduler/2021-06-30/service-2.json.gzbin0 -> 9349 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/schemas/2019-12-02/endpoint-rule-set-1.json.gzbin0 -> 1147 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/schemas/2019-12-02/paginators-1.json34
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/schemas/2019-12-02/service-2.json.gzbin0 -> 5698 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/schemas/2019-12-02/waiters-2.json36
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sdb/2009-04-15/endpoint-rule-set-1.json.gzbin0 -> 1198 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sdb/2009-04-15/paginators-1.json15
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sdb/2009-04-15/service-2.json.gzbin0 -> 6036 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sdk-default-configuration.json55
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/secretsmanager/2017-10-17/endpoint-rule-set-1.json.gzbin0 -> 1354 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/secretsmanager/2017-10-17/examples-1.json596
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/secretsmanager/2017-10-17/paginators-1.json10
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/secretsmanager/2017-10-17/service-2.json.gzbin0 -> 21257 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/secretsmanager/2017-10-17/service-2.sdk-extras.json8
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/security-ir/2018-05-10/endpoint-rule-set-1.json.gzbin0 -> 837 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/security-ir/2018-05-10/paginators-1.json28
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/security-ir/2018-05-10/paginators-1.sdk-extras.json22
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/security-ir/2018-05-10/service-2.json.gzbin0 -> 8067 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/security-ir/2018-05-10/waiters-2.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/securityhub/2018-10-26/endpoint-rule-set-1.json.gzbin0 -> 1152 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/securityhub/2018-10-26/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/securityhub/2018-10-26/paginators-1.json106
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/securityhub/2018-10-26/service-2.json.gzbin0 -> 152287 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/securitylake/2018-05-10/endpoint-rule-set-1.json.gzbin0 -> 1303 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/securitylake/2018-05-10/paginators-1.json28
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/securitylake/2018-05-10/paginators-1.sdk-extras.json12
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/securitylake/2018-05-10/service-2.json.gzbin0 -> 14449 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/serverlessrepo/2017-09-08/endpoint-rule-set-1.json.gzbin0 -> 1242 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/serverlessrepo/2017-09-08/paginators-1.json22
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/serverlessrepo/2017-09-08/service-2.json.gzbin0 -> 9555 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/service-quotas/2019-06-24/endpoint-rule-set-1.json.gzbin0 -> 1242 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/service-quotas/2019-06-24/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/service-quotas/2019-06-24/paginators-1.json40
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/service-quotas/2019-06-24/service-2.json.gzbin0 -> 6411 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/servicecatalog-appregistry/2020-06-24/endpoint-rule-set-1.json.gzbin0 -> 1248 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/servicecatalog-appregistry/2020-06-24/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/servicecatalog-appregistry/2020-06-24/paginators-1.json34
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/servicecatalog-appregistry/2020-06-24/service-2.json.gzbin0 -> 7841 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/servicecatalog/2015-12-10/endpoint-rule-set-1.json.gzbin0 -> 1154 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/servicecatalog/2015-12-10/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/servicecatalog/2015-12-10/paginators-1.json100
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/servicecatalog/2015-12-10/service-2.json.gzbin0 -> 37370 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/servicediscovery/2017-03-14/endpoint-rule-set-1.json.gzbin0 -> 1308 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/servicediscovery/2017-03-14/examples-1.json672
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/servicediscovery/2017-03-14/paginators-1.json28
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/servicediscovery/2017-03-14/service-2.json.gzbin0 -> 19578 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ses/2010-12-01/endpoint-rule-set-1.json.gzbin0 -> 1148 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ses/2010-12-01/examples-1.json1021
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ses/2010-12-01/paginators-1.json33
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ses/2010-12-01/service-2.json.gzbin0 -> 36446 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ses/2010-12-01/waiters-2.json18
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sesv2/2019-09-27/endpoint-rule-set-1.json.gzbin0 -> 1643 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sesv2/2019-09-27/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sesv2/2019-09-27/paginators-1.json10
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sesv2/2019-09-27/service-2.json.gzbin0 -> 57095 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/shield/2016-06-02/endpoint-rule-set-1.json.gzbin0 -> 1347 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/shield/2016-06-02/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/shield/2016-06-02/paginators-1.json16
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/shield/2016-06-02/service-2.json.gzbin0 -> 15250 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/signer/2017-08-25/endpoint-rule-set-1.json.gzbin0 -> 1148 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/signer/2017-08-25/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/signer/2017-08-25/paginators-1.json22
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/signer/2017-08-25/service-2.json.gzbin0 -> 10289 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/signer/2017-08-25/waiters-2.json29
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/simspaceweaver/2022-10-28/endpoint-rule-set-1.json.gzbin0 -> 1294 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/simspaceweaver/2022-10-28/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/simspaceweaver/2022-10-28/service-2.json.gzbin0 -> 6915 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sms-voice/2018-09-05/endpoint-rule-set-1.json.gzbin0 -> 1112 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sms-voice/2018-09-05/service-2.json.gzbin0 -> 3324 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sms/2016-10-24/endpoint-rule-set-1.json.gzbin0 -> 1286 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sms/2016-10-24/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sms/2016-10-24/paginators-1.json34
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sms/2016-10-24/service-2.json.gzbin0 -> 9676 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/snow-device-management/2021-08-04/endpoint-rule-set-1.json.gzbin0 -> 1161 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/snow-device-management/2021-08-04/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/snow-device-management/2021-08-04/paginators-1.json28
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/snow-device-management/2021-08-04/service-2.json.gzbin0 -> 5955 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/snowball/2016-06-30/endpoint-rule-set-1.json.gzbin0 -> 1151 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/snowball/2016-06-30/examples-1.json442
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/snowball/2016-06-30/paginators-1.json40
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/snowball/2016-06-30/service-2.json.gzbin0 -> 17017 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sns/2010-03-31/endpoint-rule-set-1.json.gzbin0 -> 1230 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sns/2010-03-31/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sns/2010-03-31/paginators-1.json46
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sns/2010-03-31/service-2.json.gzbin0 -> 25501 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/socialmessaging/2024-01-01/endpoint-rule-set-1.json.gzbin0 -> 1307 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/socialmessaging/2024-01-01/paginators-1.json10
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/socialmessaging/2024-01-01/service-2.json.gzbin0 -> 7072 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sqs/2012-11-05/endpoint-rule-set-1.json.gzbin0 -> 1232 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sqs/2012-11-05/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sqs/2012-11-05/paginators-1.json16
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sqs/2012-11-05/service-2.json.gzbin0 -> 24064 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ssm-contacts/2021-05-03/endpoint-rule-set-1.json.gzbin0 -> 1151 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ssm-contacts/2021-05-03/examples-1.json714
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ssm-contacts/2021-05-03/paginators-1.json69
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ssm-contacts/2021-05-03/service-2.json.gzbin0 -> 12756 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ssm-incidents/2018-05-10/endpoint-rule-set-1.json.gzbin0 -> 1156 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ssm-incidents/2018-05-10/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ssm-incidents/2018-05-10/paginators-1.json46
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ssm-incidents/2018-05-10/service-2.json.gzbin0 -> 14417 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ssm-incidents/2018-05-10/waiters-2.json53
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ssm-quicksetup/2018-05-10/endpoint-rule-set-1.json.gzbin0 -> 1305 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ssm-quicksetup/2018-05-10/paginators-1.json16
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ssm-quicksetup/2018-05-10/service-2.json.gzbin0 -> 7343 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ssm-sap/2018-05-10/endpoint-rule-set-1.json.gzbin0 -> 1300 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ssm-sap/2018-05-10/paginators-1.json34
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ssm-sap/2018-05-10/service-2.json.gzbin0 -> 7901 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ssm/2014-11-06/endpoint-rule-set-1.json.gzbin0 -> 1232 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ssm/2014-11-06/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ssm/2014-11-06/paginators-1.json304
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ssm/2014-11-06/service-2.json.gzbin0 -> 130439 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/ssm/2014-11-06/waiters-2.json65
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sso-admin/2020-07-20/endpoint-rule-set-1.json.gzbin0 -> 1232 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sso-admin/2020-07-20/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sso-admin/2020-07-20/paginators-1.json121
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sso-admin/2020-07-20/service-2.json.gzbin0 -> 19790 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sso-oidc/2019-06-10/endpoint-rule-set-1.json.gzbin0 -> 1233 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sso-oidc/2019-06-10/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sso-oidc/2019-06-10/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sso-oidc/2019-06-10/service-2.json.gzbin0 -> 5482 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sso/2019-06-10/endpoint-rule-set-1.json.gzbin0 -> 1239 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sso/2019-06-10/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sso/2019-06-10/paginators-1.json16
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sso/2019-06-10/service-2.json.gzbin0 -> 2913 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/stepfunctions/2016-11-23/endpoint-rule-set-1.json.gzbin0 -> 1210 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/stepfunctions/2016-11-23/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/stepfunctions/2016-11-23/paginators-1.json34
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/stepfunctions/2016-11-23/service-2.json.gzbin0 -> 30707 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/storagegateway/2013-06-30/endpoint-rule-set-1.json.gzbin0 -> 1155 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/storagegateway/2013-06-30/examples-1.json1381
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/storagegateway/2013-06-30/paginators-1.json79
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/storagegateway/2013-06-30/service-2.json.gzbin0 -> 56971 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sts/2011-06-15/endpoint-rule-set-1.json.gzbin0 -> 1778 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sts/2011-06-15/examples-1.json271
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sts/2011-06-15/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/sts/2011-06-15/service-2.json.gzbin0 -> 17892 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/supplychain/2024-01-01/endpoint-rule-set-1.json.gzbin0 -> 1296 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/supplychain/2024-01-01/paginators-1.json22
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/supplychain/2024-01-01/service-2.json.gzbin0 -> 8784 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/support-app/2021-08-20/endpoint-rule-set-1.json.gzbin0 -> 1147 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/support-app/2021-08-20/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/support-app/2021-08-20/service-2.json.gzbin0 -> 4271 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/support/2013-04-15/endpoint-rule-set-1.json.gzbin0 -> 1557 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/support/2013-04-15/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/support/2013-04-15/paginators-1.json16
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/support/2013-04-15/service-2.json.gzbin0 -> 11900 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/swf/2012-01-25/endpoint-rule-set-1.json.gzbin0 -> 1232 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/swf/2012-01-25/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/swf/2012-01-25/paginators-1.json53
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/swf/2012-01-25/service-2.json.gzbin0 -> 34463 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/synthetics/2017-10-11/endpoint-rule-set-1.json.gzbin0 -> 1152 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/synthetics/2017-10-11/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/synthetics/2017-10-11/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/synthetics/2017-10-11/service-2.json.gzbin0 -> 14359 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/taxsettings/2018-05-10/endpoint-rule-set-1.json.gzbin0 -> 1379 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/taxsettings/2018-05-10/paginators-1.json22
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/taxsettings/2018-05-10/service-2.json.gzbin0 -> 13117 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/textract/2018-06-27/endpoint-rule-set-1.json.gzbin0 -> 1147 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/textract/2018-06-27/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/textract/2018-06-27/paginators-1.json16
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/textract/2018-06-27/service-2.json.gzbin0 -> 21988 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/timestream-influxdb/2023-01-27/endpoint-rule-set-1.json.gzbin0 -> 1309 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/timestream-influxdb/2023-01-27/paginators-1.json28
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/timestream-influxdb/2023-01-27/service-2.json.gzbin0 -> 10092 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/timestream-query/2018-11-01/endpoint-rule-set-1.json.gzbin0 -> 1157 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/timestream-query/2018-11-01/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/timestream-query/2018-11-01/paginators-1.json28
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/timestream-query/2018-11-01/service-2.json.gzbin0 -> 14830 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/timestream-write/2018-11-01/endpoint-rule-set-1.json.gzbin0 -> 1246 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/timestream-write/2018-11-01/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/timestream-write/2018-11-01/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/timestream-write/2018-11-01/service-2.json.gzbin0 -> 12121 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/tnb/2008-10-21/endpoint-rule-set-1.json.gzbin0 -> 1296 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/tnb/2008-10-21/paginators-1.json34
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/tnb/2008-10-21/service-2.json.gzbin0 -> 10024 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/transcribe/2017-10-26/endpoint-rule-set-1.json.gzbin0 -> 1340 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/transcribe/2017-10-26/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/transcribe/2017-10-26/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/transcribe/2017-10-26/service-2.json.gzbin0 -> 34153 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/transfer/2018-11-05/endpoint-rule-set-1.json.gzbin0 -> 1150 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/transfer/2018-11-05/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/transfer/2018-11-05/paginators-1.json94
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/transfer/2018-11-05/service-2.json.gzbin0 -> 56662 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/transfer/2018-11-05/waiters-2.json37
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/translate/2017-07-01/endpoint-rule-set-1.json.gzbin0 -> 1151 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/translate/2017-07-01/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/translate/2017-07-01/paginators-1.json10
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/translate/2017-07-01/service-2.json.gzbin0 -> 13002 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/trustedadvisor/2022-09-15/endpoint-rule-set-1.json.gzbin0 -> 1304 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/trustedadvisor/2022-09-15/paginators-1.json40
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/trustedadvisor/2022-09-15/service-2.json.gzbin0 -> 5193 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/verifiedpermissions/2021-12-01/endpoint-rule-set-1.json.gzbin0 -> 1308 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/verifiedpermissions/2021-12-01/paginators-1.json28
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/verifiedpermissions/2021-12-01/service-2.json.gzbin0 -> 23658 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/verifiedpermissions/2021-12-01/waiters-2.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/voice-id/2021-09-27/endpoint-rule-set-1.json.gzbin0 -> 1147 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/voice-id/2021-09-27/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/voice-id/2021-09-27/paginators-1.json40
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/voice-id/2021-09-27/service-2.json.gzbin0 -> 11875 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/vpc-lattice/2022-11-30/endpoint-rule-set-1.json.gzbin0 -> 1303 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/vpc-lattice/2022-11-30/paginators-1.json88
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/vpc-lattice/2022-11-30/service-2.json.gzbin0 -> 22960 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/waf-regional/2016-11-28/endpoint-rule-set-1.json.gzbin0 -> 1151 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/waf-regional/2016-11-28/examples-1.json1017
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/waf-regional/2016-11-28/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/waf-regional/2016-11-28/service-2.json.gzbin0 -> 42886 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/waf/2015-08-24/endpoint-rule-set-1.json.gzbin0 -> 1342 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/waf/2015-08-24/examples-1.json1017
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/waf/2015-08-24/paginators-1.json99
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/waf/2015-08-24/service-2.json.gzbin0 -> 41724 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/wafv2/2019-07-29/endpoint-rule-set-1.json.gzbin0 -> 1150 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/wafv2/2019-07-29/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/wafv2/2019-07-29/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/wafv2/2019-07-29/service-2.json.gzbin0 -> 73721 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/wellarchitected/2020-03-31/endpoint-rule-set-1.json.gzbin0 -> 1156 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/wellarchitected/2020-03-31/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/wellarchitected/2020-03-31/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/wellarchitected/2020-03-31/service-2.json.gzbin0 -> 21125 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/wisdom/2020-10-19/endpoint-rule-set-1.json.gzbin0 -> 1149 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/wisdom/2020-10-19/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/wisdom/2020-10-19/paginators-1.json64
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/wisdom/2020-10-19/service-2.json.gzbin0 -> 17064 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/workdocs/2016-05-01/endpoint-rule-set-1.json.gzbin0 -> 1148 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/workdocs/2016-05-01/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/workdocs/2016-05-01/paginators-1.json67
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/workdocs/2016-05-01/service-2.json.gzbin0 -> 16223 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/workmail/2017-10-01/endpoint-rule-set-1.json.gzbin0 -> 1151 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/workmail/2017-10-01/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/workmail/2017-10-01/paginators-1.json64
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/workmail/2017-10-01/service-2.json.gzbin0 -> 27884 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/workmailmessageflow/2019-05-01/endpoint-rule-set-1.json.gzbin0 -> 1157 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/workmailmessageflow/2019-05-01/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/workmailmessageflow/2019-05-01/paginators-1.json3
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/workmailmessageflow/2019-05-01/service-2.json.gzbin0 -> 2272 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/workspaces-thin-client/2023-08-22/endpoint-rule-set-1.json.gzbin0 -> 1300 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/workspaces-thin-client/2023-08-22/paginators-1.json22
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/workspaces-thin-client/2023-08-22/service-2.json.gzbin0 -> 6445 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/workspaces-web/2020-07-08/endpoint-rule-set-1.json.gzbin0 -> 1156 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/workspaces-web/2020-07-08/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/workspaces-web/2020-07-08/paginators-1.json16
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/workspaces-web/2020-07-08/service-2.json.gzbin0 -> 16692 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/workspaces/2015-04-08/endpoint-rule-set-1.json.gzbin0 -> 1152 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/workspaces/2015-04-08/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/workspaces/2015-04-08/paginators-1.json54
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/workspaces/2015-04-08/service-2.json.gzbin0 -> 39177 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/xray/2016-04-12/endpoint-rule-set-1.json.gzbin0 -> 1148 bytes
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/xray/2016-04-12/examples-1.json5
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/xray/2016-04-12/paginators-1.json69
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/data/xray/2016-04-12/service-2.json.gzbin0 -> 20935 bytes
1766 files changed, 121953 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/_retry.json b/.venv/lib/python3.12/site-packages/botocore/data/_retry.json
new file mode 100644
index 00000000..bfdd2641
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/_retry.json
@@ -0,0 +1,292 @@
+{
+  "definitions": {
+    "throttling": {
+      "applies_when": {
+        "response": {
+          "service_error_code": "Throttling",
+          "http_status_code": 400
+        }
+      }
+    },
+    "throttling_exception": {
+      "applies_when": {
+        "response": {
+          "service_error_code": "ThrottlingException",
+          "http_status_code": 400
+        }
+      }
+    },
+    "throttled_exception": {
+      "applies_when": {
+        "response": {
+          "service_error_code": "ThrottledException",
+          "http_status_code": 400
+        }
+      }
+    },
+    "request_throttled_exception": {
+      "applies_when": {
+        "response": {
+          "service_error_code": "RequestThrottledException",
+          "http_status_code": 400
+        }
+      }
+    },
+    "too_many_requests": {
+      "applies_when": {
+        "response": {
+          "http_status_code": 429
+        }
+      }
+    },
+    "general_socket_errors": {
+      "applies_when": {
+        "socket_errors": ["GENERAL_CONNECTION_ERROR"]
+      }
+    },
+    "general_server_error": {
+      "applies_when": {
+        "response": {
+          "http_status_code": 500
+        }
+      }
+    },
+    "bad_gateway": {
+      "applies_when": {
+        "response": {
+          "http_status_code": 502
+        }
+      }
+    },
+    "service_unavailable": {
+      "applies_when": {
+        "response": {
+          "http_status_code": 503
+        }
+      }
+    },
+    "gateway_timeout": {
+      "applies_when": {
+        "response": {
+          "http_status_code": 504
+        }
+      }
+    },
+    "limit_exceeded": {
+      "applies_when": {
+        "response": {
+          "http_status_code": 509
+        }
+      }
+    },
+    "throughput_exceeded": {
+      "applies_when": {
+        "response": {
+          "service_error_code": "ProvisionedThroughputExceededException",
+          "http_status_code": 400
+        }
+      }
+    }
+  },
+  "retry": {
+    "__default__": {
+      "max_attempts": 5,
+      "delay": {
+        "type": "exponential",
+        "base": "rand",
+        "growth_factor": 2
+      },
+      "policies": {
+          "general_socket_errors": {"$ref": "general_socket_errors"},
+          "general_server_error": {"$ref": "general_server_error"},
+          "bad_gateway": {"$ref": "bad_gateway"},
+          "service_unavailable": {"$ref": "service_unavailable"},
+          "gateway_timeout": {"$ref": "gateway_timeout"},
+          "limit_exceeded": {"$ref": "limit_exceeded"},
+          "throttling_exception": {"$ref": "throttling_exception"},
+          "throttled_exception": {"$ref": "throttled_exception"},
+          "request_throttled_exception": {"$ref": "request_throttled_exception"},
+          "throttling": {"$ref": "throttling"},
+          "too_many_requests": {"$ref": "too_many_requests"},
+          "throughput_exceeded": {"$ref": "throughput_exceeded"}
+      }
+    },
+    "organizations": {
+      "__default__": {
+        "policies": {
+          "too_many_requests": {
+            "applies_when": {
+              "response": {
+                "service_error_code": "TooManyRequestsException",
+                "http_status_code": 400
+              }
+            }
+          }
+        }
+      }
+    },
+    "dynamodb": {
+      "__default__": {
+        "max_attempts": 10,
+        "delay": {
+          "type": "exponential",
+          "base": 0.05,
+          "growth_factor": 2
+        },
+        "policies": {
+	  "still_processing": {
+	    "applies_when": {
+	      "response": {
+		"service_error_code": "TransactionInProgressException",
+		"http_status_code": 400
+	      }
+	    }
+	  },
+          "crc32": {
+            "applies_when": {
+              "response": {
+                "crc32body": "x-amz-crc32"
+              }
+            }
+          }
+        }
+      }
+    },
+    "ec2": {
+      "__default__": {
+        "policies": {
+          "request_limit_exceeded": {
+            "applies_when": {
+              "response": {
+                "service_error_code": "RequestLimitExceeded",
+                "http_status_code": 503
+              }
+            }
+          },
+          "ec2_throttled_exception": {
+            "applies_when": {
+              "response": {
+                "service_error_code": "EC2ThrottledException",
+                "http_status_code": 503
+              }
+            }
+          }
+        }
+      }
+    },
+    "cloudsearch": {
+      "__default__": {
+        "policies": {
+          "request_limit_exceeded": {
+            "applies_when": {
+              "response": {
+                "service_error_code": "BandwidthLimitExceeded",
+                "http_status_code": 509
+              }
+            }
+          }
+        }
+      }
+    },
+    "kinesis": {
+      "__default__": {
+        "policies": {
+          "request_limit_exceeded": {
+            "applies_when": {
+              "response": {
+                "service_error_code": "LimitExceededException",
+                "http_status_code": 400
+              }
+            }
+          }
+        }
+      }
+    },
+    "sqs": {
+      "__default__": {
+        "policies": {
+          "request_limit_exceeded": {
+            "applies_when": {
+              "response": {
+                "service_error_code": "RequestThrottled",
+                "http_status_code": 403
+              }
+            }
+          }
+        }
+      }
+    },
+    "s3": {
+      "__default__": {
+        "policies": {
+          "timeouts": {
+            "applies_when": {
+              "response": {
+                "http_status_code": 400,
+                "service_error_code": "RequestTimeout"
+              }
+            }
+          },
+          "contentmd5": {
+            "applies_when": {
+              "response": {
+                "http_status_code": 400,
+                "service_error_code": "BadDigest"
+              }
+            }
+          }
+        }
+      }
+    },
+    "glacier": {
+      "__default__": {
+        "policies": {
+          "timeouts": {
+            "applies_when": {
+              "response": {
+                "http_status_code": 408,
+                "service_error_code": "RequestTimeoutException"
+              }
+            }
+          }
+        }
+      }
+    },
+    "route53": {
+      "__default__": {
+        "policies": {
+          "request_limit_exceeded": {
+            "applies_when": {
+              "response": {
+                "service_error_code": "Throttling",
+                "http_status_code": 400
+              }
+            }
+          },
+          "still_processing": {
+            "applies_when": {
+              "response": {
+                "service_error_code": "PriorRequestNotComplete",
+                "http_status_code": 400
+              }
+            }
+          }
+        }
+      }
+    },
+    "sts": {
+      "__default__": {
+        "policies": {
+          "idp_unreachable_error": {
+            "applies_when": {
+              "response": {
+                "service_error_code": "IDPCommunicationError",
+                "http_status_code": 400
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/accessanalyzer/2019-11-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/accessanalyzer/2019-11-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..40b0d452
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/accessanalyzer/2019-11-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/accessanalyzer/2019-11-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/accessanalyzer/2019-11-01/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/accessanalyzer/2019-11-01/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/accessanalyzer/2019-11-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/accessanalyzer/2019-11-01/paginators-1.json
new file mode 100644
index 00000000..de88b6d4
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/accessanalyzer/2019-11-01/paginators-1.json
@@ -0,0 +1,70 @@
+{
+  "pagination": {
+    "ListAnalyzedResources": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "analyzedResources"
+    },
+    "ListAnalyzers": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "analyzers"
+    },
+    "ListArchiveRules": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "archiveRules"
+    },
+    "ListFindings": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "findings"
+    },
+    "ListAccessPreviewFindings": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "findings"
+    },
+    "ListAccessPreviews": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "accessPreviews"
+    },
+    "ValidatePolicy": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "findings"
+    },
+    "ListPolicyGenerations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "policyGenerations"
+    },
+    "GetFindingV2": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "findingDetails"
+    },
+    "ListFindingsV2": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "findings"
+    },
+    "GetFindingRecommendation": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "recommendedSteps"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/accessanalyzer/2019-11-01/paginators-1.sdk-extras.json b/.venv/lib/python3.12/site-packages/botocore/data/accessanalyzer/2019-11-01/paginators-1.sdk-extras.json
new file mode 100644
index 00000000..2fe19c01
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/accessanalyzer/2019-11-01/paginators-1.sdk-extras.json
@@ -0,0 +1,31 @@
+{
+  "version": 1.0,
+  "merge": {
+    "pagination": {
+      "GetFindingV2": {
+        "non_aggregate_keys": [
+          "resource",
+          "status",
+          "error",
+          "createdAt",
+          "resourceType",
+          "findingType",
+          "resourceOwnerAccount",
+          "analyzedAt",
+          "id",
+          "updatedAt"
+        ]
+      },
+      "GetFindingRecommendation": {
+        "non_aggregate_keys": [
+          "status",
+          "error",
+          "completedAt",
+          "recommendationType",
+          "resourceArn",
+          "startedAt"
+        ]
+      }
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/accessanalyzer/2019-11-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/accessanalyzer/2019-11-01/service-2.json.gz
new file mode 100644
index 00000000..f24d373c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/accessanalyzer/2019-11-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/account/2021-02-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/account/2021-02-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..31f07930
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/account/2021-02-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/account/2021-02-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/account/2021-02-01/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/account/2021-02-01/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/account/2021-02-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/account/2021-02-01/paginators-1.json
new file mode 100644
index 00000000..5e75ec80
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/account/2021-02-01/paginators-1.json
@@ -0,0 +1,10 @@
+{
+  "pagination": {
+    "ListRegions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Regions"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/account/2021-02-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/account/2021-02-01/service-2.json.gz
new file mode 100644
index 00000000..5d70de5d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/account/2021-02-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/acm-pca/2017-08-22/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/acm-pca/2017-08-22/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..09cf6aa5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/acm-pca/2017-08-22/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/acm-pca/2017-08-22/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/acm-pca/2017-08-22/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/acm-pca/2017-08-22/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/acm-pca/2017-08-22/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/acm-pca/2017-08-22/paginators-1.json
new file mode 100644
index 00000000..c1f4e234
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/acm-pca/2017-08-22/paginators-1.json
@@ -0,0 +1,22 @@
+{
+  "pagination": {
+    "ListCertificateAuthorities": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "CertificateAuthorities"
+    },
+    "ListTags": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Tags"
+    },
+    "ListPermissions": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Permissions"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/acm-pca/2017-08-22/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/acm-pca/2017-08-22/service-2.json.gz
new file mode 100644
index 00000000..d00ceeb5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/acm-pca/2017-08-22/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/acm-pca/2017-08-22/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/acm-pca/2017-08-22/waiters-2.json
new file mode 100644
index 00000000..1d48140d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/acm-pca/2017-08-22/waiters-2.json
@@ -0,0 +1,64 @@
+{
+  "version" : 2,
+  "waiters" : {
+    "AuditReportCreated" : {
+      "description" : "Wait until a Audit Report is created",
+      "delay" : 3,
+      "maxAttempts" : 60,
+      "operation" : "DescribeCertificateAuthorityAuditReport",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "AuditReportStatus",
+        "state" : "success",
+        "expected" : "SUCCESS"
+      }, {
+        "matcher" : "path",
+        "argument" : "AuditReportStatus",
+        "state" : "failure",
+        "expected" : "FAILED"
+      }, {
+        "matcher" : "error",
+        "state" : "failure",
+        "expected" : "AccessDeniedException"
+      } ]
+    },
+    "CertificateAuthorityCSRCreated" : {
+      "description" : "Wait until a Certificate Authority CSR is created",
+      "delay" : 3,
+      "maxAttempts" : 60,
+      "operation" : "GetCertificateAuthorityCsr",
+      "acceptors" : [ {
+        "matcher" : "error",
+        "state" : "success",
+        "expected" : false
+      }, {
+        "matcher" : "error",
+        "state" : "retry",
+        "expected" : "RequestInProgressException"
+      }, {
+        "matcher" : "error",
+        "state" : "failure",
+        "expected" : "AccessDeniedException"
+      } ]
+    },
+    "CertificateIssued" : {
+      "description" : "Wait until a certificate is issued",
+      "delay" : 1,
+      "maxAttempts" : 60,
+      "operation" : "GetCertificate",
+      "acceptors" : [ {
+        "matcher" : "error",
+        "state" : "success",
+        "expected" : false
+      }, {
+        "matcher" : "error",
+        "state" : "retry",
+        "expected" : "RequestInProgressException"
+      }, {
+        "matcher" : "error",
+        "state" : "failure",
+        "expected" : "AccessDeniedException"
+      } ]
+    }
+  }
+}
\ No newline at end of file
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/acm/2015-12-08/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/acm/2015-12-08/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..50cd0dfa
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/acm/2015-12-08/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/acm/2015-12-08/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/acm/2015-12-08/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/acm/2015-12-08/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/acm/2015-12-08/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/acm/2015-12-08/paginators-1.json
new file mode 100644
index 00000000..2e2e4f9a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/acm/2015-12-08/paginators-1.json
@@ -0,0 +1,10 @@
+{
+  "pagination": {
+    "ListCertificates": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxItems",
+      "result_key": "CertificateSummaryList"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/acm/2015-12-08/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/acm/2015-12-08/service-2.json.gz
new file mode 100644
index 00000000..ecebb23e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/acm/2015-12-08/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/acm/2015-12-08/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/acm/2015-12-08/waiters-2.json
new file mode 100644
index 00000000..1fba453d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/acm/2015-12-08/waiters-2.json
@@ -0,0 +1,35 @@
+{
+  "version": 2,
+  "waiters": {
+    "CertificateValidated": {
+      "delay": 60,
+      "maxAttempts": 40,
+      "operation": "DescribeCertificate",
+      "acceptors": [
+        {
+          "matcher": "pathAll",
+          "expected": "SUCCESS",
+          "argument": "Certificate.DomainValidationOptions[].ValidationStatus",
+          "state": "success"
+        },
+        {
+          "matcher": "pathAny",
+          "expected": "PENDING_VALIDATION",
+          "argument": "Certificate.DomainValidationOptions[].ValidationStatus",
+          "state": "retry"
+        },
+        {
+          "matcher": "path",
+          "expected": "FAILED",
+          "argument": "Certificate.Status",
+          "state": "failure"
+        },
+        {
+          "matcher": "error",
+          "expected": "ResourceNotFoundException",
+          "state": "failure"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/amp/2020-08-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/amp/2020-08-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..69ab620f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/amp/2020-08-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/amp/2020-08-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/amp/2020-08-01/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/amp/2020-08-01/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/amp/2020-08-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/amp/2020-08-01/paginators-1.json
new file mode 100644
index 00000000..c1bf32ab
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/amp/2020-08-01/paginators-1.json
@@ -0,0 +1,22 @@
+{
+  "pagination": {
+    "ListWorkspaces": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "workspaces"
+    },
+    "ListRuleGroupsNamespaces": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "ruleGroupsNamespaces"
+    },
+    "ListScrapers": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "scrapers"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/amp/2020-08-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/amp/2020-08-01/service-2.json.gz
new file mode 100644
index 00000000..6de57aed
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/amp/2020-08-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/amp/2020-08-01/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/amp/2020-08-01/waiters-2.json
new file mode 100644
index 00000000..93d8cd64
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/amp/2020-08-01/waiters-2.json
@@ -0,0 +1,76 @@
+{
+  "version" : 2,
+  "waiters" : {
+    "ScraperActive" : {
+      "description" : "Wait until a scraper reaches ACTIVE status",
+      "delay" : 2,
+      "maxAttempts" : 60,
+      "operation" : "DescribeScraper",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "scraper.status.statusCode",
+        "state" : "success",
+        "expected" : "ACTIVE"
+      }, {
+        "matcher" : "path",
+        "argument" : "scraper.status.statusCode",
+        "state" : "failure",
+        "expected" : "CREATION_FAILED"
+      } ]
+    },
+    "ScraperDeleted" : {
+      "description" : "Wait until a scraper reaches DELETED status",
+      "delay" : 2,
+      "maxAttempts" : 60,
+      "operation" : "DescribeScraper",
+      "acceptors" : [ {
+        "matcher" : "error",
+        "state" : "success",
+        "expected" : "ResourceNotFoundException"
+      }, {
+        "matcher" : "path",
+        "argument" : "scraper.status.statusCode",
+        "state" : "failure",
+        "expected" : "DELETION_FAILED"
+      } ]
+    },
+    "WorkspaceActive" : {
+      "description" : "Wait until a workspace reaches ACTIVE status",
+      "delay" : 2,
+      "maxAttempts" : 60,
+      "operation" : "DescribeWorkspace",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "workspace.status.statusCode",
+        "state" : "success",
+        "expected" : "ACTIVE"
+      }, {
+        "matcher" : "path",
+        "argument" : "workspace.status.statusCode",
+        "state" : "retry",
+        "expected" : "UPDATING"
+      }, {
+        "matcher" : "path",
+        "argument" : "workspace.status.statusCode",
+        "state" : "retry",
+        "expected" : "CREATING"
+      } ]
+    },
+    "WorkspaceDeleted" : {
+      "description" : "Wait until a workspace reaches DELETED status",
+      "delay" : 2,
+      "maxAttempts" : 60,
+      "operation" : "DescribeWorkspace",
+      "acceptors" : [ {
+        "matcher" : "error",
+        "state" : "success",
+        "expected" : "ResourceNotFoundException"
+      }, {
+        "matcher" : "path",
+        "argument" : "workspace.status.statusCode",
+        "state" : "retry",
+        "expected" : "DELETING"
+      } ]
+    }
+  }
+}
\ No newline at end of file
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/amplify/2017-07-25/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/amplify/2017-07-25/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..6d6b2970
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/amplify/2017-07-25/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/amplify/2017-07-25/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/amplify/2017-07-25/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/amplify/2017-07-25/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/amplify/2017-07-25/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/amplify/2017-07-25/paginators-1.json
new file mode 100644
index 00000000..f84208e9
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/amplify/2017-07-25/paginators-1.json
@@ -0,0 +1,28 @@
+{
+  "pagination": {
+    "ListApps": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "apps"
+    },
+    "ListBranches": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "branches"
+    },
+    "ListDomainAssociations": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "domainAssociations"
+    },
+    "ListJobs": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "jobSummaries"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/amplify/2017-07-25/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/amplify/2017-07-25/service-2.json.gz
new file mode 100644
index 00000000..5009b2ab
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/amplify/2017-07-25/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/amplifybackend/2020-08-11/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/amplifybackend/2020-08-11/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..c39dfc54
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/amplifybackend/2020-08-11/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/amplifybackend/2020-08-11/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/amplifybackend/2020-08-11/paginators-1.json
new file mode 100644
index 00000000..40304c7d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/amplifybackend/2020-08-11/paginators-1.json
@@ -0,0 +1,10 @@
+{
+  "pagination": {
+    "ListBackendJobs": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Jobs"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/amplifybackend/2020-08-11/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/amplifybackend/2020-08-11/service-2.json.gz
new file mode 100644
index 00000000..2a920bd5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/amplifybackend/2020-08-11/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/amplifyuibuilder/2021-08-11/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/amplifyuibuilder/2021-08-11/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..247b89a8
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/amplifyuibuilder/2021-08-11/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/amplifyuibuilder/2021-08-11/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/amplifyuibuilder/2021-08-11/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/amplifyuibuilder/2021-08-11/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/amplifyuibuilder/2021-08-11/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/amplifyuibuilder/2021-08-11/paginators-1.json
new file mode 100644
index 00000000..d0a02427
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/amplifyuibuilder/2021-08-11/paginators-1.json
@@ -0,0 +1,43 @@
+{
+  "pagination": {
+    "ListComponents": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "entities"
+    },
+    "ListThemes": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "entities"
+    },
+    "ExportComponents": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "entities"
+    },
+    "ExportThemes": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "entities"
+    },
+    "ExportForms": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "entities"
+    },
+    "ListForms": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "entities"
+    },
+    "ListCodegenJobs": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "entities"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/amplifyuibuilder/2021-08-11/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/amplifyuibuilder/2021-08-11/service-2.json.gz
new file mode 100644
index 00000000..69a34f1d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/amplifyuibuilder/2021-08-11/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/amplifyuibuilder/2021-08-11/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/amplifyuibuilder/2021-08-11/waiters-2.json
new file mode 100644
index 00000000..13f60ee6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/amplifyuibuilder/2021-08-11/waiters-2.json
@@ -0,0 +1,5 @@
+{
+  "version": 2,
+  "waiters": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/apigateway/2015-07-09/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/apigateway/2015-07-09/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..4fd4cf44
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/apigateway/2015-07-09/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/apigateway/2015-07-09/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/apigateway/2015-07-09/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/apigateway/2015-07-09/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/apigateway/2015-07-09/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/apigateway/2015-07-09/paginators-1.json
new file mode 100644
index 00000000..2a875c55
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/apigateway/2015-07-09/paginators-1.json
@@ -0,0 +1,117 @@
+{
+  "pagination": {
+    "GetApiKeys": {
+      "input_token": "position",
+      "output_token": "position",
+      "limit_key": "limit",
+      "result_key": "items"
+    },
+    "GetBasePathMappings": {
+      "input_token": "position",
+      "output_token": "position",
+      "limit_key": "limit",
+      "result_key": "items"
+    },
+    "GetClientCertificates": {
+      "input_token": "position",
+      "output_token": "position",
+      "limit_key": "limit",
+      "result_key": "items"
+    },
+    "GetDeployments": {
+      "input_token": "position",
+      "output_token": "position",
+      "limit_key": "limit",
+      "result_key": "items"
+    },
+    "GetDomainNames": {
+      "input_token": "position",
+      "output_token": "position",
+      "limit_key": "limit",
+      "result_key": "items"
+    },
+    "GetModels": {
+      "input_token": "position",
+      "output_token": "position",
+      "limit_key": "limit",
+      "result_key": "items"
+    },
+    "GetResources": {
+      "input_token": "position",
+      "output_token": "position",
+      "limit_key": "limit",
+      "result_key": "items"
+    },
+    "GetRestApis": {
+      "input_token": "position",
+      "output_token": "position",
+      "limit_key": "limit",
+      "result_key": "items"
+    },
+    "GetUsage": {
+      "input_token": "position",
+      "output_token": "position",
+      "limit_key": "limit",
+      "result_key": "items",
+      "non_aggregate_keys": [
+        "usagePlanId",
+        "startDate",
+        "endDate"
+      ]
+    },
+    "GetUsagePlans": {
+      "input_token": "position",
+      "output_token": "position",
+      "limit_key": "limit",
+      "result_key": "items"
+    },
+    "GetUsagePlanKeys": {
+      "input_token": "position",
+      "output_token": "position",
+      "limit_key": "limit",
+      "result_key": "items"
+    },
+    "GetVpcLinks": {
+      "input_token": "position",
+      "limit_key": "limit",
+      "output_token": "position",
+      "result_key": "items"
+    },
+    "GetAuthorizers": {
+      "input_token": "position",
+      "limit_key": "limit",
+      "output_token": "position",
+      "result_key": "items"
+    },
+    "GetDocumentationParts": {
+      "input_token": "position",
+      "limit_key": "limit",
+      "output_token": "position",
+      "result_key": "items"
+    },
+    "GetDocumentationVersions": {
+      "input_token": "position",
+      "limit_key": "limit",
+      "output_token": "position",
+      "result_key": "items"
+    },
+    "GetGatewayResponses": {
+      "input_token": "position",
+      "limit_key": "limit",
+      "output_token": "position",
+      "result_key": "items"
+    },
+    "GetRequestValidators": {
+      "input_token": "position",
+      "limit_key": "limit",
+      "output_token": "position",
+      "result_key": "items"
+    },
+    "GetSdkTypes": {
+      "input_token": "position",
+      "limit_key": "limit",
+      "output_token": "position",
+      "result_key": "items"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/apigateway/2015-07-09/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/apigateway/2015-07-09/service-2.json.gz
new file mode 100644
index 00000000..9e9a85a1
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/apigateway/2015-07-09/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/apigatewaymanagementapi/2018-11-29/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/apigatewaymanagementapi/2018-11-29/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..3565d112
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/apigatewaymanagementapi/2018-11-29/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/apigatewaymanagementapi/2018-11-29/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/apigatewaymanagementapi/2018-11-29/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/apigatewaymanagementapi/2018-11-29/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/apigatewaymanagementapi/2018-11-29/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/apigatewaymanagementapi/2018-11-29/service-2.json.gz
new file mode 100644
index 00000000..54e2a975
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/apigatewaymanagementapi/2018-11-29/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/apigatewayv2/2018-11-29/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/apigatewayv2/2018-11-29/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..4fd4cf44
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/apigatewayv2/2018-11-29/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/apigatewayv2/2018-11-29/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/apigatewayv2/2018-11-29/paginators-1.json
new file mode 100644
index 00000000..2f57dd2c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/apigatewayv2/2018-11-29/paginators-1.json
@@ -0,0 +1,64 @@
+{
+  "pagination": {
+    "GetApis": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Items"
+    },
+    "GetAuthorizers": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Items"
+    },
+    "GetDeployments": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Items"
+    },
+    "GetDomainNames": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Items"
+    },
+    "GetIntegrationResponses": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Items"
+    },
+    "GetIntegrations": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Items"
+    },
+    "GetModels": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Items"
+    },
+    "GetRouteResponses": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Items"
+    },
+    "GetRoutes": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Items"
+    },
+    "GetStages": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Items"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/apigatewayv2/2018-11-29/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/apigatewayv2/2018-11-29/service-2.json.gz
new file mode 100644
index 00000000..ffe60c6e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/apigatewayv2/2018-11-29/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/appconfig/2019-10-09/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/appconfig/2019-10-09/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..3305a7a3
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/appconfig/2019-10-09/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/appconfig/2019-10-09/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/appconfig/2019-10-09/examples-1.json
new file mode 100644
index 00000000..664e05ef
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/appconfig/2019-10-09/examples-1.json
@@ -0,0 +1,720 @@
+{
+  "version": "1.0",
+  "examples": {
+    "CreateApplication": [
+      {
+        "input": {
+          "Description": "An application used for creating an example.",
+          "Name": "example-application"
+        },
+        "output": {
+          "Description": "An application used for creating an example.",
+          "Id": "339ohji",
+          "Name": "example-application"
+        },
+        "comments": {
+        },
+        "description": "The following create-application example creates an application in AWS AppConfig.",
+        "id": "to-create-an-application-1632264511615",
+        "title": "To create an application"
+      }
+    ],
+    "CreateConfigurationProfile": [
+      {
+        "input": {
+          "ApplicationId": "339ohji",
+          "LocationUri": "ssm-parameter://Example-Parameter",
+          "Name": "Example-Configuration-Profile",
+          "RetrievalRoleArn": "arn:aws:iam::111122223333:role/Example-App-Config-Role"
+        },
+        "output": {
+          "ApplicationId": "339ohji",
+          "Id": "ur8hx2f",
+          "LocationUri": "ssm-parameter://Example-Parameter",
+          "Name": "Example-Configuration-Profile",
+          "RetrievalRoleArn": "arn:aws:iam::111122223333:role/Example-App-Config-Role"
+        },
+        "comments": {
+        },
+        "description": "The following create-configuration-profile example creates a configuration profile using a configuration stored in Parameter Store, a capability of Systems Manager.",
+        "id": "to-create-a-configuration-profile-1632264580336",
+        "title": "To create a configuration profile"
+      }
+    ],
+    "CreateDeploymentStrategy": [
+      {
+        "input": {
+          "DeploymentDurationInMinutes": 15,
+          "GrowthFactor": 25,
+          "Name": "Example-Deployment",
+          "ReplicateTo": "SSM_DOCUMENT"
+        },
+        "output": {
+          "DeploymentDurationInMinutes": 15,
+          "FinalBakeTimeInMinutes": 0,
+          "GrowthFactor": 25,
+          "GrowthType": "LINEAR",
+          "Id": "1225qzk",
+          "Name": "Example-Deployment",
+          "ReplicateTo": "SSM_DOCUMENT"
+        },
+        "comments": {
+        },
+        "description": "The following create-deployment-strategy example creates a deployment strategy called Example-Deployment that takes 15 minutes and deploys the configuration to 25% of the application at a time. The strategy is also copied to an SSM Document.",
+        "id": "to-create-a-deployment-strategy-1632264783812",
+        "title": "To create a deployment strategy"
+      }
+    ],
+    "CreateEnvironment": [
+      {
+        "input": {
+          "ApplicationId": "339ohji",
+          "Name": "Example-Environment"
+        },
+        "output": {
+          "ApplicationId": "339ohji",
+          "Id": "54j1r29",
+          "Name": "Example-Environment",
+          "State": "READY_FOR_DEPLOYMENT"
+        },
+        "comments": {
+        },
+        "description": "The following create-environment example creates an AWS AppConfig environment named Example-Environment using the application you created using create-application",
+        "id": "to-create-an-environment-1632265124975",
+        "title": "To create an environment"
+      }
+    ],
+    "CreateHostedConfigurationVersion": [
+      {
+        "input": {
+          "ApplicationId": "339ohji",
+          "ConfigurationProfileId": "ur8hx2f",
+          "Content": "eyAiTmFtZSI6ICJFeGFtcGxlQXBwbGljYXRpb24iLCAiSWQiOiBFeGFtcGxlSUQsICJSYW5rIjogNyB9",
+          "ContentType": "text",
+          "LatestVersionNumber": 1
+        },
+        "output": {
+          "ApplicationId": "339ohji",
+          "ConfigurationProfileId": "ur8hx2f",
+          "ContentType": "text",
+          "VersionNumber": 1
+        },
+        "comments": {
+        },
+        "description": "The following create-hosted-configuration-version example creates a new configuration in the AWS AppConfig configuration store.",
+        "id": "to-create-a-hosted-configuration-version-1632265196980",
+        "title": "To create a hosted configuration version"
+      }
+    ],
+    "DeleteApplication": [
+      {
+        "input": {
+          "ApplicationId": "339ohji"
+        },
+        "comments": {
+        },
+        "description": "The following delete-application example deletes the specified application. \n",
+        "id": "to-delete-an-application-1632265343951",
+        "title": "To delete an application"
+      }
+    ],
+    "DeleteConfigurationProfile": [
+      {
+        "input": {
+          "ApplicationId": "339ohji",
+          "ConfigurationProfileId": "ur8hx2f"
+        },
+        "comments": {
+        },
+        "description": "The following delete-configuration-profile example deletes the specified configuration profile.",
+        "id": "to-delete-a-configuration-profile-1632265401308",
+        "title": "To delete a configuration profile"
+      }
+    ],
+    "DeleteDeploymentStrategy": [
+      {
+        "input": {
+          "DeploymentStrategyId": "1225qzk"
+        },
+        "comments": {
+        },
+        "description": "The following delete-deployment-strategy example deletes the specified deployment strategy.",
+        "id": "to-delete-a-deployment-strategy-1632265473708",
+        "title": "To delete a deployment strategy"
+      }
+    ],
+    "DeleteEnvironment": [
+      {
+        "input": {
+          "ApplicationId": "339ohji",
+          "EnvironmentId": "54j1r29"
+        },
+        "comments": {
+        },
+        "description": "The following delete-environment example deletes the specified application environment.",
+        "id": "to-delete-an-environment-1632265641044",
+        "title": "To delete an environment"
+      }
+    ],
+    "DeleteHostedConfigurationVersion": [
+      {
+        "input": {
+          "ApplicationId": "339ohji",
+          "ConfigurationProfileId": "ur8hx2f",
+          "VersionNumber": 1
+        },
+        "comments": {
+        },
+        "description": "The following delete-hosted-configuration-version example deletes a configuration version hosted in the AWS AppConfig configuration store.",
+        "id": "to-delete-a-hosted-configuration-version-1632265720740",
+        "title": "To delete a hosted configuration version"
+      }
+    ],
+    "GetApplication": [
+      {
+        "input": {
+          "ApplicationId": "339ohji"
+        },
+        "output": {
+          "Id": "339ohji",
+          "Name": "example-application"
+        },
+        "comments": {
+        },
+        "description": "The following get-application example lists the details of the specified application.",
+        "id": "to-list-details-of-an-application-1632265864702",
+        "title": "To list details of an application"
+      }
+    ],
+    "GetConfiguration": [
+      {
+        "input": {
+          "Application": "example-application",
+          "ClientId": "example-id",
+          "Configuration": "Example-Configuration-Profile",
+          "Environment": "Example-Environment"
+        },
+        "output": {
+          "ConfigurationVersion": "1",
+          "ContentType": "application/octet-stream"
+        },
+        "comments": {
+        },
+        "description": "The following get-configuration example returns the configuration details of the example application. On subsequent calls to get-configuration, use the client-configuration-version parameter to only update the configuration of your application if the version has changed. Only updating the configuration when the version has changed avoids excess charges incurred by calling get-configuration.",
+        "id": "to-retrieve-configuration-details-1632265954314",
+        "title": "To retrieve configuration details"
+      }
+    ],
+    "GetConfigurationProfile": [
+      {
+        "input": {
+          "ApplicationId": "339ohji",
+          "ConfigurationProfileId": "ur8hx2f"
+        },
+        "output": {
+          "ApplicationId": "339ohji",
+          "Id": "ur8hx2f",
+          "LocationUri": "ssm-parameter://Example-Parameter",
+          "Name": "Example-Configuration-Profile",
+          "RetrievalRoleArn": "arn:aws:iam::111122223333:role/Example-App-Config-Role"
+        },
+        "comments": {
+        },
+        "description": "The following get-configuration-profile example returns the details of the specified configuration profile.",
+        "id": "to-retrieve-configuration-profile-details-1632266081013",
+        "title": "To retrieve configuration profile details"
+      }
+    ],
+    "GetDeployment": [
+      {
+        "input": {
+          "ApplicationId": "339ohji",
+          "DeploymentNumber": 1,
+          "EnvironmentId": "54j1r29"
+        },
+        "output": {
+          "ApplicationId": "339ohji",
+          "CompletedAt": "2021-09-17T21:59:03.888000+00:00",
+          "ConfigurationLocationUri": "ssm-parameter://Example-Parameter",
+          "ConfigurationName": "Example-Configuration-Profile",
+          "ConfigurationProfileId": "ur8hx2f",
+          "ConfigurationVersion": "1",
+          "DeploymentDurationInMinutes": 15,
+          "DeploymentNumber": 1,
+          "DeploymentStrategyId": "1225qzk",
+          "EnvironmentId": "54j1r29",
+          "EventLog": [
+            {
+              "Description": "Deployment completed",
+              "EventType": "DEPLOYMENT_COMPLETED",
+              "OccurredAt": "2021-09-17T21:59:03.888000+00:00",
+              "TriggeredBy": "APPCONFIG"
+            },
+            {
+              "Description": "Deployment bake time started",
+              "EventType": "BAKE_TIME_STARTED",
+              "OccurredAt": "2021-09-17T21:58:57.722000+00:00",
+              "TriggeredBy": "APPCONFIG"
+            },
+            {
+              "Description": "Configuration available to 100.00% of clients",
+              "EventType": "PERCENTAGE_UPDATED",
+              "OccurredAt": "2021-09-17T21:55:56.816000+00:00",
+              "TriggeredBy": "APPCONFIG"
+            },
+            {
+              "Description": "Configuration available to 75.00% of clients",
+              "EventType": "PERCENTAGE_UPDATED",
+              "OccurredAt": "2021-09-17T21:52:56.567000+00:00",
+              "TriggeredBy": "APPCONFIG"
+            },
+            {
+              "Description": "Configuration available to 50.00% of clients",
+              "EventType": "PERCENTAGE_UPDATED",
+              "OccurredAt": "2021-09-17T21:49:55.737000+00:00",
+              "TriggeredBy": "APPCONFIG"
+            },
+            {
+              "Description": "Configuration available to 25.00% of clients",
+              "EventType": "PERCENTAGE_UPDATED",
+              "OccurredAt": "2021-09-17T21:46:55.187000+00:00",
+              "TriggeredBy": "APPCONFIG"
+            },
+            {
+              "Description": "Deployment started",
+              "EventType": "DEPLOYMENT_STARTED",
+              "OccurredAt": "2021-09-17T21:43:54.205000+00:00",
+              "TriggeredBy": "USER"
+            }
+          ],
+          "FinalBakeTimeInMinutes": 0,
+          "GrowthFactor": 25,
+          "GrowthType": "LINEAR",
+          "PercentageComplete": 100,
+          "StartedAt": "2021-09-17T21:43:54.205000+00:00",
+          "State": "COMPLETE"
+        },
+        "comments": {
+        },
+        "description": "The following get-deployment example lists details of the deployment to the application in the specified environment and deployment.",
+        "id": "to-retrieve-deployment-details-1633976766883",
+        "title": "To retrieve deployment details"
+      }
+    ],
+    "GetDeploymentStrategy": [
+      {
+        "input": {
+          "DeploymentStrategyId": "1225qzk"
+        },
+        "output": {
+          "DeploymentDurationInMinutes": 15,
+          "FinalBakeTimeInMinutes": 0,
+          "GrowthFactor": 25,
+          "GrowthType": "LINEAR",
+          "Id": "1225qzk",
+          "Name": "Example-Deployment",
+          "ReplicateTo": "SSM_DOCUMENT"
+        },
+        "comments": {
+        },
+        "description": "The following get-deployment-strategy example lists the details of the specified deployment strategy.",
+        "id": "to-retrieve-details-of-a-deployment-strategy-1632266385805",
+        "title": "To retrieve details of a deployment strategy"
+      }
+    ],
+    "GetEnvironment": [
+      {
+        "input": {
+          "ApplicationId": "339ohji",
+          "EnvironmentId": "54j1r29"
+        },
+        "output": {
+          "ApplicationId": "339ohji",
+          "Id": "54j1r29",
+          "Name": "Example-Environment",
+          "State": "READY_FOR_DEPLOYMENT"
+        },
+        "comments": {
+        },
+        "description": "The following get-environment example returns the details and state of the specified environment.",
+        "id": "to-retrieve-environment-details-1632266924806",
+        "title": "To retrieve environment details"
+      }
+    ],
+    "GetHostedConfigurationVersion": [
+      {
+        "input": {
+          "ApplicationId": "339ohji",
+          "ConfigurationProfileId": "ur8hx2f",
+          "VersionNumber": 1
+        },
+        "output": {
+          "ApplicationId": "339ohji",
+          "ConfigurationProfileId": "ur8hx2f",
+          "ContentType": "application/json",
+          "VersionNumber": 1
+        },
+        "comments": {
+        },
+        "description": "The following get-hosted-configuration-version example retrieves the configuration details of the AWS AppConfig hosted configuration.",
+        "id": "to-retrieve-hosted-configuration-details-1632267003527",
+        "title": "To retrieve hosted configuration details"
+      }
+    ],
+    "ListApplications": [
+      {
+        "input": {
+        },
+        "output": {
+          "Items": [
+            {
+              "Description": "An application used for creating an example.",
+              "Id": "339ohji",
+              "Name": "test-application"
+            },
+            {
+              "Id": "rwalwu7",
+              "Name": "Test-Application"
+            }
+          ]
+        },
+        "comments": {
+        },
+        "description": "The following list-applications example lists the available applications in your AWS account.",
+        "id": "to-list-the-available-applications-1632267111131",
+        "title": "To list the available applications"
+      }
+    ],
+    "ListConfigurationProfiles": [
+      {
+        "input": {
+          "ApplicationId": "339ohji"
+        },
+        "output": {
+          "Items": [
+            {
+              "ApplicationId": "339ohji",
+              "Id": "ur8hx2f",
+              "LocationUri": "ssm-parameter://Example-Parameter",
+              "Name": "Example-Configuration-Profile"
+            }
+          ]
+        },
+        "comments": {
+        },
+        "description": "The following list-configuration-profiles example lists the available configuration profiles for the specified application.",
+        "id": "to-list-the-available-configuration-profiles-1632267193265",
+        "title": "To list the available configuration profiles"
+      }
+    ],
+    "ListDeploymentStrategies": [
+      {
+        "input": {
+        },
+        "output": {
+          "Items": [
+            {
+              "DeploymentDurationInMinutes": 15,
+              "FinalBakeTimeInMinutes": 0,
+              "GrowthFactor": 25,
+              "GrowthType": "LINEAR",
+              "Id": "1225qzk",
+              "Name": "Example-Deployment",
+              "ReplicateTo": "SSM_DOCUMENT"
+            }
+          ]
+        },
+        "comments": {
+        },
+        "description": "The following list-deployment-strategies example lists the available deployment strategies in your AWS account.",
+        "id": "to-list-the-available-deployment-strategies-1632267364180",
+        "title": "To list the available deployment strategies"
+      }
+    ],
+    "ListDeployments": [
+      {
+        "input": {
+          "ApplicationId": "339ohji",
+          "EnvironmentId": "54j1r29"
+        },
+        "output": {
+          "Items": [
+            {
+              "CompletedAt": "2021-09-17T21:59:03.888000+00:00",
+              "ConfigurationName": "Example-Configuration-Profile",
+              "ConfigurationVersion": "1",
+              "DeploymentDurationInMinutes": 15,
+              "DeploymentNumber": 1,
+              "FinalBakeTimeInMinutes": 0,
+              "GrowthFactor": 25,
+              "GrowthType": "LINEAR",
+              "PercentageComplete": 100,
+              "StartedAt": "2021-09-17T21:43:54.205000+00:00",
+              "State": "COMPLETE"
+            }
+          ]
+        },
+        "comments": {
+        },
+        "description": "The following list-deployments example lists the available deployments in your AWS account for the specified application and environment.",
+        "id": "to-list-the-available-deployments-1632267282025",
+        "title": "To list the available deployments"
+      }
+    ],
+    "ListEnvironments": [
+      {
+        "input": {
+          "ApplicationId": "339ohji"
+        },
+        "output": {
+          "Items": [
+            {
+              "ApplicationId": "339ohji",
+              "Id": "54j1r29",
+              "Name": "Example-Environment",
+              "State": "READY_FOR_DEPLOYMENT"
+            }
+          ]
+        },
+        "comments": {
+        },
+        "description": "The following list-environments example lists the available environments in your AWS account for the specified application.",
+        "id": "to-list-the-available-environments-1632267474389",
+        "title": "To list the available environments"
+      }
+    ],
+    "ListHostedConfigurationVersions": [
+      {
+        "input": {
+          "ApplicationId": "339ohji",
+          "ConfigurationProfileId": "ur8hx2f"
+        },
+        "output": {
+          "Items": [
+            {
+              "ApplicationId": "339ohji",
+              "ConfigurationProfileId": "ur8hx2f",
+              "ContentType": "application/json",
+              "VersionNumber": 1
+            }
+          ]
+        },
+        "comments": {
+        },
+        "description": "The following list-hosted-configuration-versions example lists the configurations versions hosted in the AWS AppConfig hosted configuration store for the specified application and configuration profile.",
+        "id": "to-list-the-available-hosted-configuration-versions-1632267647667",
+        "title": "To list the available hosted configuration versions"
+      }
+    ],
+    "ListTagsForResource": [
+      {
+        "input": {
+          "ResourceArn": "arn:aws:appconfig:us-east-1:111122223333:application/339ohji"
+        },
+        "output": {
+          "Tags": {
+            "group1": "1"
+          }
+        },
+        "comments": {
+        },
+        "description": "The following list-tags-for-resource example lists the tags of a specified application.",
+        "id": "to-list-the-tags-of-an-application-1632328796560",
+        "title": "To list the tags of an application"
+      }
+    ],
+    "StartDeployment": [
+      {
+        "input": {
+          "ApplicationId": "339ohji",
+          "ConfigurationProfileId": "ur8hx2f",
+          "ConfigurationVersion": "1",
+          "DeploymentStrategyId": "1225qzk",
+          "Description": "",
+          "EnvironmentId": "54j1r29",
+          "Tags": {
+          }
+        },
+        "output": {
+          "ApplicationId": "339ohji",
+          "ConfigurationLocationUri": "ssm-parameter://Example-Parameter",
+          "ConfigurationName": "Example-Configuration-Profile",
+          "ConfigurationProfileId": "ur8hx2f",
+          "ConfigurationVersion": "1",
+          "DeploymentDurationInMinutes": 15,
+          "DeploymentNumber": 1,
+          "DeploymentStrategyId": "1225qzk",
+          "EnvironmentId": "54j1r29",
+          "EventLog": [
+            {
+              "Description": "Deployment started",
+              "EventType": "DEPLOYMENT_STARTED",
+              "OccurredAt": "2021-09-17T21:43:54.205000+00:00",
+              "TriggeredBy": "USER"
+            }
+          ],
+          "FinalBakeTimeInMinutes": 0,
+          "GrowthFactor": 25,
+          "GrowthType": "LINEAR",
+          "PercentageComplete": 1.0,
+          "StartedAt": "2021-09-17T21:43:54.205000+00:00",
+          "State": "DEPLOYING"
+        },
+        "comments": {
+        },
+        "description": "The following start-deployment example starts a deployment to the application using the specified environment, deployment strategy, and configuration profile.",
+        "id": "to-start-a-configuration-deployment-1632328956790",
+        "title": "To start a configuration deployment"
+      }
+    ],
+    "StopDeployment": [
+      {
+        "input": {
+          "ApplicationId": "339ohji",
+          "DeploymentNumber": 2,
+          "EnvironmentId": "54j1r29"
+        },
+        "output": {
+          "DeploymentDurationInMinutes": 15,
+          "DeploymentNumber": 2,
+          "FinalBakeTimeInMinutes": 0,
+          "GrowthFactor": 25.0,
+          "PercentageComplete": 1.0
+        },
+        "comments": {
+        },
+        "description": "The following stop-deployment example stops the deployment of an application configuration to the specified environment.",
+        "id": "to-stop-configuration-deployment-1632329139126",
+        "title": "To stop configuration deployment"
+      }
+    ],
+    "TagResource": [
+      {
+        "input": {
+          "ResourceArn": "arn:aws:appconfig:us-east-1:111122223333:application/339ohji",
+          "Tags": {
+            "group1": "1"
+          }
+        },
+        "comments": {
+        },
+        "description": "The following tag-resource example tags an application resource.",
+        "id": "to-tag-an-application-1632330350645",
+        "title": "To tag an application"
+      }
+    ],
+    "UntagResource": [
+      {
+        "input": {
+          "ResourceArn": "arn:aws:appconfig:us-east-1:111122223333:application/339ohji",
+          "TagKeys": [
+            "group1"
+          ]
+        },
+        "comments": {
+        },
+        "description": "The following untag-resource example removes the group1 tag from the specified application.",
+        "id": "to-remove-a-tag-from-an-application-1632330429881",
+        "title": "To remove a tag from an application"
+      }
+    ],
+    "UpdateApplication": [
+      {
+        "input": {
+          "ApplicationId": "339ohji",
+          "Description": "",
+          "Name": "Example-Application"
+        },
+        "output": {
+          "Description": "An application used for creating an example.",
+          "Id": "339ohji",
+          "Name": "Example-Application"
+        },
+        "comments": {
+        },
+        "description": "The following update-application example updates the name of the specified application.",
+        "id": "to-update-an-application-1632330585893",
+        "title": "To update an application"
+      }
+    ],
+    "UpdateConfigurationProfile": [
+      {
+        "input": {
+          "ApplicationId": "339ohji",
+          "ConfigurationProfileId": "ur8hx2f",
+          "Description": "Configuration profile used for examples."
+        },
+        "output": {
+          "ApplicationId": "339ohji",
+          "Description": "Configuration profile used for examples.",
+          "Id": "ur8hx2f",
+          "LocationUri": "ssm-parameter://Example-Parameter",
+          "Name": "Example-Configuration-Profile",
+          "RetrievalRoleArn": "arn:aws:iam::111122223333:role/Example-App-Config-Role"
+        },
+        "comments": {
+        },
+        "description": "The following update-configuration-profile example updates the description of the specified configuration profile.",
+        "id": "to-update-a-configuration-profile-1632330721974",
+        "title": "To update a configuration profile"
+      }
+    ],
+    "UpdateDeploymentStrategy": [
+      {
+        "input": {
+          "DeploymentStrategyId": "1225qzk",
+          "FinalBakeTimeInMinutes": 20
+        },
+        "output": {
+          "DeploymentDurationInMinutes": 15,
+          "FinalBakeTimeInMinutes": 20,
+          "GrowthFactor": 25,
+          "GrowthType": "LINEAR",
+          "Id": "1225qzk",
+          "Name": "Example-Deployment",
+          "ReplicateTo": "SSM_DOCUMENT"
+        },
+        "comments": {
+        },
+        "description": "The following update-deployment-strategy example updates final bake time to 20 minutes in the specified deployment strategy. ::\n",
+        "id": "to-update-a-deployment-strategy-1632330896602",
+        "title": "To update a deployment strategy"
+      }
+    ],
+    "UpdateEnvironment": [
+      {
+        "input": {
+          "ApplicationId": "339ohji",
+          "Description": "An environment for examples.",
+          "EnvironmentId": "54j1r29"
+        },
+        "output": {
+          "ApplicationId": "339ohji",
+          "Description": "An environment for examples.",
+          "Id": "54j1r29",
+          "Name": "Example-Environment",
+          "State": "ROLLED_BACK"
+        },
+        "comments": {
+        },
+        "description": "The following update-environment example updates an environment's description.",
+        "id": "to-update-an-environment-1632331382428",
+        "title": "To update an environment"
+      }
+    ],
+    "ValidateConfiguration": [
+      {
+        "input": {
+          "ApplicationId": "abc1234",
+          "ConfigurationProfileId": "ur8hx2f",
+          "ConfigurationVersion": "1"
+        },
+        "comments": {
+        },
+        "description": "The following validate-configuration example uses the validators in a configuration profile to validate a configuration.",
+        "id": "to-validate-a-configuration-1632331491365",
+        "title": "To validate a configuration"
+      }
+    ]
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/appconfig/2019-10-09/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/appconfig/2019-10-09/paginators-1.json
new file mode 100644
index 00000000..f176baba
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/appconfig/2019-10-09/paginators-1.json
@@ -0,0 +1,52 @@
+{
+  "pagination": {
+    "ListApplications": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Items"
+    },
+    "ListConfigurationProfiles": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Items"
+    },
+    "ListDeploymentStrategies": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Items"
+    },
+    "ListDeployments": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Items"
+    },
+    "ListEnvironments": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Items"
+    },
+    "ListExtensionAssociations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Items"
+    },
+    "ListExtensions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Items"
+    },
+    "ListHostedConfigurationVersions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Items"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/appconfig/2019-10-09/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/appconfig/2019-10-09/service-2.json.gz
new file mode 100644
index 00000000..9bedcad6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/appconfig/2019-10-09/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/appconfigdata/2021-11-11/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/appconfigdata/2021-11-11/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..0c38be5b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/appconfigdata/2021-11-11/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/appconfigdata/2021-11-11/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/appconfigdata/2021-11-11/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/appconfigdata/2021-11-11/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/appconfigdata/2021-11-11/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/appconfigdata/2021-11-11/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/appconfigdata/2021-11-11/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/appconfigdata/2021-11-11/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/appconfigdata/2021-11-11/service-2.json.gz
new file mode 100644
index 00000000..95058a37
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/appconfigdata/2021-11-11/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/appfabric/2023-05-19/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/appfabric/2023-05-19/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..5f80c868
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/appfabric/2023-05-19/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/appfabric/2023-05-19/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/appfabric/2023-05-19/paginators-1.json
new file mode 100644
index 00000000..8138e8a2
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/appfabric/2023-05-19/paginators-1.json
@@ -0,0 +1,28 @@
+{
+  "pagination": {
+    "ListAppAuthorizations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "appAuthorizationSummaryList"
+    },
+    "ListAppBundles": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "appBundleSummaryList"
+    },
+    "ListIngestionDestinations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "ingestionDestinations"
+    },
+    "ListIngestions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "ingestions"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/appfabric/2023-05-19/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/appfabric/2023-05-19/service-2.json.gz
new file mode 100644
index 00000000..d9c9334b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/appfabric/2023-05-19/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/appfabric/2023-05-19/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/appfabric/2023-05-19/waiters-2.json
new file mode 100644
index 00000000..13f60ee6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/appfabric/2023-05-19/waiters-2.json
@@ -0,0 +1,5 @@
+{
+  "version": 2,
+  "waiters": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/appflow/2020-08-23/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/appflow/2020-08-23/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..ff595884
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/appflow/2020-08-23/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/appflow/2020-08-23/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/appflow/2020-08-23/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/appflow/2020-08-23/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/appflow/2020-08-23/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/appflow/2020-08-23/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/appflow/2020-08-23/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/appflow/2020-08-23/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/appflow/2020-08-23/service-2.json.gz
new file mode 100644
index 00000000..96366da9
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/appflow/2020-08-23/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/appintegrations/2020-07-29/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/appintegrations/2020-07-29/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..74ff20dd
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/appintegrations/2020-07-29/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/appintegrations/2020-07-29/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/appintegrations/2020-07-29/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/appintegrations/2020-07-29/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/appintegrations/2020-07-29/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/appintegrations/2020-07-29/paginators-1.json
new file mode 100644
index 00000000..64b4b5cb
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/appintegrations/2020-07-29/paginators-1.json
@@ -0,0 +1,40 @@
+{
+  "pagination": {
+    "ListApplications": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Applications"
+    },
+    "ListDataIntegrationAssociations": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "DataIntegrationAssociations"
+    },
+    "ListDataIntegrations": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "DataIntegrations"
+    },
+    "ListEventIntegrationAssociations": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "EventIntegrationAssociations"
+    },
+    "ListEventIntegrations": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "EventIntegrations"
+    },
+    "ListApplicationAssociations": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ApplicationAssociations"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/appintegrations/2020-07-29/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/appintegrations/2020-07-29/service-2.json.gz
new file mode 100644
index 00000000..e8e8d57a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/appintegrations/2020-07-29/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/application-autoscaling/2016-02-06/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/application-autoscaling/2016-02-06/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..1c338c14
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/application-autoscaling/2016-02-06/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/application-autoscaling/2016-02-06/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/application-autoscaling/2016-02-06/examples-1.json
new file mode 100644
index 00000000..5abcd554
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/application-autoscaling/2016-02-06/examples-1.json
@@ -0,0 +1,221 @@
+{
+  "version": "1.0",
+  "examples": {
+    "DeleteScalingPolicy": [
+      {
+        "input": {
+          "PolicyName": "web-app-cpu-lt-25",
+          "ResourceId": "service/default/web-app",
+          "ScalableDimension": "ecs:service:DesiredCount",
+          "ServiceNamespace": "ecs"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes a scaling policy for the Amazon ECS service called web-app, which is running in the default cluster.",
+        "id": "to-delete-a-scaling-policy-1470863892689",
+        "title": "To delete a scaling policy"
+      }
+    ],
+    "DeregisterScalableTarget": [
+      {
+        "input": {
+          "ResourceId": "service/default/web-app",
+          "ScalableDimension": "ecs:service:DesiredCount",
+          "ServiceNamespace": "ecs"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deregisters a scalable target for an Amazon ECS service called web-app that is running in the default cluster.",
+        "id": "to-deregister-a-scalable-target-1470864164895",
+        "title": "To deregister a scalable target"
+      }
+    ],
+    "DescribeScalableTargets": [
+      {
+        "input": {
+          "ServiceNamespace": "ecs"
+        },
+        "output": {
+          "ScalableTargets": [
+            {
+              "CreationTime": "2019-05-06T11:21:46.199Z",
+              "MaxCapacity": 10,
+              "MinCapacity": 1,
+              "ResourceId": "service/default/web-app",
+              "RoleARN": "arn:aws:iam::012345678910:role/aws-service-role/ecs.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_ECSService",
+              "ScalableDimension": "ecs:service:DesiredCount",
+              "ServiceNamespace": "ecs",
+              "SuspendedState": {
+                "DynamicScalingInSuspended": false,
+                "DynamicScalingOutSuspended": false,
+                "ScheduledScalingSuspended": false
+              }
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the scalable targets for the ECS service namespace.",
+        "id": "to-describe-scalable-targets-1470864286961",
+        "title": "To describe scalable targets"
+      }
+    ],
+    "DescribeScalingActivities": [
+      {
+        "input": {
+          "ResourceId": "service/default/web-app",
+          "ScalableDimension": "ecs:service:DesiredCount",
+          "ServiceNamespace": "ecs"
+        },
+        "output": {
+          "ScalingActivities": [
+            {
+              "ActivityId": "e6c5f7d1-dbbb-4a3f-89b2-51f33e766399",
+              "Cause": "monitor alarm web-app-cpu-lt-25 in state ALARM triggered policy web-app-cpu-lt-25",
+              "Description": "Setting desired count to 1.",
+              "EndTime": "2019-05-06T16:04:32.111Z",
+              "ResourceId": "service/default/web-app",
+              "ScalableDimension": "ecs:service:DesiredCount",
+              "ServiceNamespace": "ecs",
+              "StartTime": "2019-05-06T16:03:58.171Z",
+              "StatusCode": "Successful",
+              "StatusMessage": "Successfully set desired count to 1. Change successfully fulfilled by ecs."
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the scaling activities for an Amazon ECS service called web-app that is running in the default cluster.",
+        "id": "to-describe-scaling-activities-for-a-scalable-target-1470864398629",
+        "title": "To describe scaling activities for a scalable target"
+      }
+    ],
+    "DescribeScalingPolicies": [
+      {
+        "input": {
+          "ServiceNamespace": "ecs"
+        },
+        "output": {
+          "NextToken": "",
+          "ScalingPolicies": [
+            {
+              "Alarms": [
+                {
+                  "AlarmARN": "arn:aws:cloudwatch:us-west-2:012345678910:alarm:web-app-cpu-gt-75",
+                  "AlarmName": "web-app-cpu-gt-75"
+                }
+              ],
+              "CreationTime": "2019-05-06T12:11:39.230Z",
+              "PolicyARN": "arn:aws:autoscaling:us-west-2:012345678910:scalingPolicy:6d8972f3-efc8-437c-92d1-6270f29a66e7:resource/ecs/service/default/web-app:policyName/web-app-cpu-gt-75",
+              "PolicyName": "web-app-cpu-gt-75",
+              "PolicyType": "StepScaling",
+              "ResourceId": "service/default/web-app",
+              "ScalableDimension": "ecs:service:DesiredCount",
+              "ServiceNamespace": "ecs",
+              "StepScalingPolicyConfiguration": {
+                "AdjustmentType": "PercentChangeInCapacity",
+                "Cooldown": 60,
+                "StepAdjustments": [
+                  {
+                    "MetricIntervalLowerBound": 0,
+                    "ScalingAdjustment": 200
+                  }
+                ]
+              }
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the scaling policies for the ECS service namespace.",
+        "id": "to-describe-scaling-policies-1470864609734",
+        "title": "To describe scaling policies"
+      }
+    ],
+    "PutScalingPolicy": [
+      {
+        "input": {
+          "PolicyName": "cpu75-target-tracking-scaling-policy",
+          "PolicyType": "TargetTrackingScaling",
+          "ResourceId": "service/default/web-app",
+          "ScalableDimension": "ecs:service:DesiredCount",
+          "ServiceNamespace": "ecs",
+          "TargetTrackingScalingPolicyConfiguration": {
+            "PredefinedMetricSpecification": {
+              "PredefinedMetricType": "ECSServiceAverageCPUUtilization"
+            },
+            "ScaleInCooldown": 60,
+            "ScaleOutCooldown": 60,
+            "TargetValue": 75
+          }
+        },
+        "output": {
+          "Alarms": [
+            {
+              "AlarmARN": "arn:aws:cloudwatch:us-west-2:012345678910:alarm:TargetTracking-service/default/web-app-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca",
+              "AlarmName": "TargetTracking-service/default/web-app-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca"
+            },
+            {
+              "AlarmARN": "arn:aws:cloudwatch:us-west-2:012345678910:alarm:TargetTracking-service/default/web-app-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d",
+              "AlarmName": "TargetTracking-service/default/web-app-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d"
+            }
+          ],
+          "PolicyARN": "arn:aws:autoscaling:us-west-2:012345678910:scalingPolicy:6d8972f3-efc8-437c-92d1-6270f29a66e7:resource/ecs/service/default/web-app:policyName/cpu75-target-tracking-scaling-policy"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example applies a target tracking scaling policy with a predefined metric specification to an Amazon ECS service called web-app in the default cluster. The policy keeps the average CPU utilization of the service at 75 percent, with scale-out and scale-in cooldown periods of 60 seconds.",
+        "id": "to-apply-a-target-tracking-scaling-policy-with-a-predefined-metric-specification-1569364247984",
+        "title": "To apply a target tracking scaling policy with a predefined metric specification"
+      }
+    ],
+    "RegisterScalableTarget": [
+      {
+        "input": {
+          "MaxCapacity": 10,
+          "MinCapacity": 1,
+          "ResourceId": "service/default/web-app",
+          "ScalableDimension": "ecs:service:DesiredCount",
+          "ServiceNamespace": "ecs"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example registers a scalable target from an Amazon ECS service called web-app that is running on the default cluster, with a minimum desired count of 1 task and a maximum desired count of 10 tasks.",
+        "id": "to-register-a-new-scalable-target-1470864910380",
+        "title": "To register an ECS service as a scalable target"
+      }
+    ]
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/application-autoscaling/2016-02-06/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/application-autoscaling/2016-02-06/paginators-1.json
new file mode 100644
index 00000000..7ec8f3af
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/application-autoscaling/2016-02-06/paginators-1.json
@@ -0,0 +1,28 @@
+{
+  "pagination": {
+    "DescribeScalableTargets": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ScalableTargets"
+    },
+    "DescribeScalingActivities": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ScalingActivities"
+    },
+    "DescribeScalingPolicies": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ScalingPolicies"
+    },
+    "DescribeScheduledActions": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ScheduledActions"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/application-autoscaling/2016-02-06/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/application-autoscaling/2016-02-06/service-2.json.gz
new file mode 100644
index 00000000..813b1dc7
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/application-autoscaling/2016-02-06/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/application-insights/2018-11-25/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/application-insights/2018-11-25/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..2bd1007c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/application-insights/2018-11-25/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/application-insights/2018-11-25/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/application-insights/2018-11-25/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/application-insights/2018-11-25/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/application-insights/2018-11-25/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/application-insights/2018-11-25/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/application-insights/2018-11-25/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/application-insights/2018-11-25/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/application-insights/2018-11-25/service-2.json.gz
new file mode 100644
index 00000000..36f7b365
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/application-insights/2018-11-25/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/application-signals/2024-04-15/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/application-signals/2024-04-15/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..0ad74006
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/application-signals/2024-04-15/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/application-signals/2024-04-15/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/application-signals/2024-04-15/paginators-1.json
new file mode 100644
index 00000000..187c23fd
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/application-signals/2024-04-15/paginators-1.json
@@ -0,0 +1,40 @@
+{
+  "pagination": {
+    "ListServiceDependencies": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ServiceDependencies"
+    },
+    "ListServiceDependents": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ServiceDependents"
+    },
+    "ListServiceLevelObjectives": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "SloSummaries"
+    },
+    "ListServiceOperations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ServiceOperations"
+    },
+    "ListServices": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ServiceSummaries"
+    },
+    "ListServiceLevelObjectiveExclusionWindows": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ExclusionWindows"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/application-signals/2024-04-15/paginators-1.sdk-extras.json b/.venv/lib/python3.12/site-packages/botocore/data/application-signals/2024-04-15/paginators-1.sdk-extras.json
new file mode 100644
index 00000000..d6fcd514
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/application-signals/2024-04-15/paginators-1.sdk-extras.json
@@ -0,0 +1,31 @@
+{
+    "version": 1.0,
+    "merge": {
+      "pagination": {
+        "ListServiceDependencies": {
+          "non_aggregate_keys": [
+            "StartTime",
+            "EndTime"
+          ]
+        },
+        "ListServiceDependents": {
+            "non_aggregate_keys": [
+              "StartTime",
+              "EndTime"
+            ]
+          },
+          "ListServiceOperations": {
+            "non_aggregate_keys": [
+              "StartTime",
+              "EndTime"
+            ]
+          },
+          "ListServices": {
+            "non_aggregate_keys": [
+              "StartTime",
+              "EndTime"
+            ]
+          }
+      }
+    }
+  }
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/application-signals/2024-04-15/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/application-signals/2024-04-15/service-2.json.gz
new file mode 100644
index 00000000..e8eb1d3a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/application-signals/2024-04-15/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/applicationcostprofiler/2020-09-10/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/applicationcostprofiler/2020-09-10/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..66bb7f0c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/applicationcostprofiler/2020-09-10/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/applicationcostprofiler/2020-09-10/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/applicationcostprofiler/2020-09-10/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/applicationcostprofiler/2020-09-10/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/applicationcostprofiler/2020-09-10/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/applicationcostprofiler/2020-09-10/paginators-1.json
new file mode 100644
index 00000000..adffd06f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/applicationcostprofiler/2020-09-10/paginators-1.json
@@ -0,0 +1,10 @@
+{
+  "pagination": {
+    "ListReportDefinitions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "reportDefinitions"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/applicationcostprofiler/2020-09-10/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/applicationcostprofiler/2020-09-10/service-2.json.gz
new file mode 100644
index 00000000..48827ea5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/applicationcostprofiler/2020-09-10/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/appmesh/2018-10-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/appmesh/2018-10-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..dfd68a63
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/appmesh/2018-10-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/appmesh/2018-10-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/appmesh/2018-10-01/examples-1.json
new file mode 100644
index 00000000..752e89e0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/appmesh/2018-10-01/examples-1.json
@@ -0,0 +1,4 @@
+{
+  "version": "1.0",
+  "examples": { }
+}
\ No newline at end of file
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/appmesh/2018-10-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/appmesh/2018-10-01/paginators-1.json
new file mode 100644
index 00000000..162b8b96
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/appmesh/2018-10-01/paginators-1.json
@@ -0,0 +1,28 @@
+{
+  "pagination": {
+    "ListMeshes": {
+      "input_token": "nextToken",
+      "limit_key": "limit",
+      "output_token": "nextToken",
+      "result_key": "meshes"
+    },
+    "ListRoutes": {
+      "input_token": "nextToken",
+      "limit_key": "limit",
+      "output_token": "nextToken",
+      "result_key": "routes"
+    },
+    "ListVirtualNodes": {
+      "input_token": "nextToken",
+      "limit_key": "limit",
+      "output_token": "nextToken",
+      "result_key": "virtualNodes"
+    },
+    "ListVirtualRouters": {
+      "input_token": "nextToken",
+      "limit_key": "limit",
+      "output_token": "nextToken",
+      "result_key": "virtualRouters"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/appmesh/2018-10-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/appmesh/2018-10-01/service-2.json.gz
new file mode 100644
index 00000000..0ed0dcf9
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/appmesh/2018-10-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/appmesh/2019-01-25/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/appmesh/2019-01-25/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..a0826501
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/appmesh/2019-01-25/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/appmesh/2019-01-25/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/appmesh/2019-01-25/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/appmesh/2019-01-25/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/appmesh/2019-01-25/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/appmesh/2019-01-25/paginators-1.json
new file mode 100644
index 00000000..5a79b5b5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/appmesh/2019-01-25/paginators-1.json
@@ -0,0 +1,52 @@
+{
+  "pagination": {
+    "ListMeshes": {
+      "input_token": "nextToken",
+      "limit_key": "limit",
+      "output_token": "nextToken",
+      "result_key": "meshes"
+    },
+    "ListRoutes": {
+      "input_token": "nextToken",
+      "limit_key": "limit",
+      "output_token": "nextToken",
+      "result_key": "routes"
+    },
+    "ListVirtualNodes": {
+      "input_token": "nextToken",
+      "limit_key": "limit",
+      "output_token": "nextToken",
+      "result_key": "virtualNodes"
+    },
+    "ListVirtualRouters": {
+      "input_token": "nextToken",
+      "limit_key": "limit",
+      "output_token": "nextToken",
+      "result_key": "virtualRouters"
+    },
+    "ListVirtualServices": {
+      "input_token": "nextToken",
+      "limit_key": "limit",
+      "output_token": "nextToken",
+      "result_key": "virtualServices"
+    },
+    "ListTagsForResource": {
+      "input_token": "nextToken",
+      "limit_key": "limit",
+      "output_token": "nextToken",
+      "result_key": "tags"
+    },
+    "ListGatewayRoutes": {
+      "input_token": "nextToken",
+      "limit_key": "limit",
+      "output_token": "nextToken",
+      "result_key": "gatewayRoutes"
+    },
+    "ListVirtualGateways": {
+      "input_token": "nextToken",
+      "limit_key": "limit",
+      "output_token": "nextToken",
+      "result_key": "virtualGateways"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/appmesh/2019-01-25/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/appmesh/2019-01-25/service-2.json.gz
new file mode 100644
index 00000000..bcd30676
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/appmesh/2019-01-25/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/apprunner/2020-05-15/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/apprunner/2020-05-15/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..d94b812f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/apprunner/2020-05-15/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/apprunner/2020-05-15/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/apprunner/2020-05-15/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/apprunner/2020-05-15/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/apprunner/2020-05-15/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/apprunner/2020-05-15/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/apprunner/2020-05-15/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/apprunner/2020-05-15/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/apprunner/2020-05-15/service-2.json.gz
new file mode 100644
index 00000000..41175f38
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/apprunner/2020-05-15/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/appstream/2016-12-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/appstream/2016-12-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..4cca0621
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/appstream/2016-12-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/appstream/2016-12-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/appstream/2016-12-01/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/appstream/2016-12-01/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/appstream/2016-12-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/appstream/2016-12-01/paginators-1.json
new file mode 100644
index 00000000..40cbf4ba
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/appstream/2016-12-01/paginators-1.json
@@ -0,0 +1,60 @@
+{
+  "pagination": {
+    "DescribeDirectoryConfigs": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "DirectoryConfigs"
+    },
+    "DescribeFleets": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "Fleets"
+    },
+    "DescribeImageBuilders": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ImageBuilders"
+    },
+    "DescribeImages": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Images"
+    },
+    "DescribeSessions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "Limit",
+      "result_key": "Sessions"
+    },
+    "DescribeStacks": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "Stacks"
+    },
+    "DescribeUserStackAssociations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "UserStackAssociations"
+    },
+    "DescribeUsers": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Users"
+    },
+    "ListAssociatedFleets": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "Names"
+    },
+    "ListAssociatedStacks": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "Names"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/appstream/2016-12-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/appstream/2016-12-01/service-2.json.gz
new file mode 100644
index 00000000..23a367b5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/appstream/2016-12-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/appstream/2016-12-01/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/appstream/2016-12-01/waiters-2.json
new file mode 100644
index 00000000..1c8dea0d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/appstream/2016-12-01/waiters-2.json
@@ -0,0 +1,55 @@
+{
+  "version": 2,
+  "waiters": {
+    "FleetStarted": {
+      "delay": 30,
+      "maxAttempts": 40,
+      "operation": "DescribeFleets",
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "pathAll",
+          "argument": "Fleets[].State",
+          "expected": "RUNNING"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "Fleets[].State",
+          "expected": "STOPPING"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "Fleets[].State",
+          "expected": "STOPPED"
+        }
+      ]
+    },
+    "FleetStopped": {
+      "delay": 30,
+      "maxAttempts": 40,
+      "operation": "DescribeFleets",
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "pathAll",
+          "argument": "Fleets[].State",
+          "expected": "STOPPED"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "Fleets[].State",
+          "expected": "STARTING"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "Fleets[].State",
+          "expected": "RUNNING"
+        }
+      ]
+    }
+  }
+}
\ No newline at end of file
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/appsync/2017-07-25/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/appsync/2017-07-25/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..b7fcd469
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/appsync/2017-07-25/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/appsync/2017-07-25/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/appsync/2017-07-25/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/appsync/2017-07-25/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/appsync/2017-07-25/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/appsync/2017-07-25/paginators-1.json
new file mode 100644
index 00000000..fbb7de0b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/appsync/2017-07-25/paginators-1.json
@@ -0,0 +1,76 @@
+{
+  "pagination": {
+    "ListApiKeys": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "apiKeys"
+    },
+    "ListDataSources": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "dataSources"
+    },
+    "ListFunctions": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "functions"
+    },
+    "ListGraphqlApis": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "graphqlApis"
+    },
+    "ListResolvers": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "resolvers"
+    },
+    "ListResolversByFunction": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "resolvers"
+    },
+    "ListTypes": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "types"
+    },
+    "ListDomainNames": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "domainNameConfigs"
+    },
+    "ListSourceApiAssociations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "sourceApiAssociationSummaries"
+    },
+    "ListTypesByAssociation": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "types"
+    },
+    "ListApis": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "apis"
+    },
+    "ListChannelNamespaces": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "channelNamespaces"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/appsync/2017-07-25/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/appsync/2017-07-25/service-2.json.gz
new file mode 100644
index 00000000..aa4d73f5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/appsync/2017-07-25/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/apptest/2022-12-06/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/apptest/2022-12-06/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..6d7050f6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/apptest/2022-12-06/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/apptest/2022-12-06/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/apptest/2022-12-06/paginators-1.json
new file mode 100644
index 00000000..56c715f6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/apptest/2022-12-06/paginators-1.json
@@ -0,0 +1,40 @@
+{
+  "pagination": {
+    "ListTestCases": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "testCases"
+    },
+    "ListTestConfigurations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "testConfigurations"
+    },
+    "ListTestRunSteps": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "testRunSteps"
+    },
+    "ListTestRunTestCases": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "testRunTestCases"
+    },
+    "ListTestRuns": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "testRuns"
+    },
+    "ListTestSuites": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "testSuites"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/apptest/2022-12-06/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/apptest/2022-12-06/service-2.json.gz
new file mode 100644
index 00000000..b773a1dc
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/apptest/2022-12-06/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/apptest/2022-12-06/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/apptest/2022-12-06/waiters-2.json
new file mode 100644
index 00000000..13f60ee6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/apptest/2022-12-06/waiters-2.json
@@ -0,0 +1,5 @@
+{
+  "version": 2,
+  "waiters": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/arc-zonal-shift/2022-10-30/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/arc-zonal-shift/2022-10-30/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..e89aba08
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/arc-zonal-shift/2022-10-30/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/arc-zonal-shift/2022-10-30/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/arc-zonal-shift/2022-10-30/paginators-1.json
new file mode 100644
index 00000000..9fcfc565
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/arc-zonal-shift/2022-10-30/paginators-1.json
@@ -0,0 +1,22 @@
+{
+  "pagination": {
+    "ListManagedResources": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListZonalShifts": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListAutoshifts": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/arc-zonal-shift/2022-10-30/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/arc-zonal-shift/2022-10-30/service-2.json.gz
new file mode 100644
index 00000000..117b5e54
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/arc-zonal-shift/2022-10-30/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/artifact/2018-05-10/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/artifact/2018-05-10/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..9168ce9e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/artifact/2018-05-10/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/artifact/2018-05-10/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/artifact/2018-05-10/paginators-1.json
new file mode 100644
index 00000000..ba4271a9
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/artifact/2018-05-10/paginators-1.json
@@ -0,0 +1,16 @@
+{
+  "pagination": {
+    "ListReports": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "reports"
+    },
+    "ListCustomerAgreements": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "customerAgreements"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/artifact/2018-05-10/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/artifact/2018-05-10/service-2.json.gz
new file mode 100644
index 00000000..f2f10ae8
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/artifact/2018-05-10/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/artifact/2018-05-10/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/artifact/2018-05-10/waiters-2.json
new file mode 100644
index 00000000..13f60ee6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/artifact/2018-05-10/waiters-2.json
@@ -0,0 +1,5 @@
+{
+  "version": 2,
+  "waiters": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/athena/2017-05-18/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/athena/2017-05-18/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..2b04de18
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/athena/2017-05-18/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/athena/2017-05-18/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/athena/2017-05-18/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/athena/2017-05-18/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/athena/2017-05-18/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/athena/2017-05-18/paginators-1.json
new file mode 100644
index 00000000..3b126bab
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/athena/2017-05-18/paginators-1.json
@@ -0,0 +1,50 @@
+{
+  "pagination": {
+    "ListNamedQueries": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "NamedQueryIds"
+    },
+    "ListQueryExecutions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "QueryExecutionIds"
+    },
+    "GetQueryResults": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ResultSet.Rows",
+      "non_aggregate_keys": [
+        "ResultSet.ResultSetMetadata",
+        "UpdateCount"
+      ]
+    },
+    "ListDataCatalogs": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "DataCatalogsSummary"
+    },
+    "ListDatabases": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "DatabaseList"
+    },
+    "ListTableMetadata": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "TableMetadataList"
+    },
+    "ListTagsForResource": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Tags"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/athena/2017-05-18/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/athena/2017-05-18/service-2.json.gz
new file mode 100644
index 00000000..66d5aae2
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/athena/2017-05-18/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/auditmanager/2017-07-25/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/auditmanager/2017-07-25/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..cb935917
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/auditmanager/2017-07-25/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/auditmanager/2017-07-25/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/auditmanager/2017-07-25/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/auditmanager/2017-07-25/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/auditmanager/2017-07-25/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/auditmanager/2017-07-25/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/auditmanager/2017-07-25/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/auditmanager/2017-07-25/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/auditmanager/2017-07-25/service-2.json.gz
new file mode 100644
index 00000000..59e90cf0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/auditmanager/2017-07-25/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/autoscaling-plans/2018-01-06/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/autoscaling-plans/2018-01-06/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..a2e52919
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/autoscaling-plans/2018-01-06/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/autoscaling-plans/2018-01-06/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/autoscaling-plans/2018-01-06/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/autoscaling-plans/2018-01-06/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/autoscaling-plans/2018-01-06/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/autoscaling-plans/2018-01-06/paginators-1.json
new file mode 100644
index 00000000..e3f812a1
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/autoscaling-plans/2018-01-06/paginators-1.json
@@ -0,0 +1,16 @@
+{
+  "pagination": {
+    "DescribeScalingPlanResources": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ScalingPlanResources"
+    },
+    "DescribeScalingPlans": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ScalingPlans"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/autoscaling-plans/2018-01-06/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/autoscaling-plans/2018-01-06/service-2.json.gz
new file mode 100644
index 00000000..6a835ded
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/autoscaling-plans/2018-01-06/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/autoscaling/2011-01-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/autoscaling/2011-01-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..ac422e11
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/autoscaling/2011-01-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/autoscaling/2011-01-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/autoscaling/2011-01-01/examples-1.json
new file mode 100644
index 00000000..af6929b4
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/autoscaling/2011-01-01/examples-1.json
@@ -0,0 +1,1696 @@
+{
+  "version": "1.0",
+  "examples": {
+    "AttachInstances": [
+      {
+        "input": {
+          "AutoScalingGroupName": "my-auto-scaling-group",
+          "InstanceIds": [
+            "i-93633f9b"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example attaches the specified instance to the specified Auto Scaling group.",
+        "id": "autoscaling-attach-instances-1",
+        "title": "To attach an instance to an Auto Scaling group"
+      }
+    ],
+    "AttachLoadBalancerTargetGroups": [
+      {
+        "input": {
+          "AutoScalingGroupName": "my-auto-scaling-group",
+          "TargetGroupARNs": [
+            "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example attaches the specified target group to the specified Auto Scaling group.",
+        "id": "autoscaling-attach-load-balancer-target-groups-1",
+        "title": "To attach a target group to an Auto Scaling group"
+      }
+    ],
+    "AttachLoadBalancers": [
+      {
+        "input": {
+          "AutoScalingGroupName": "my-auto-scaling-group",
+          "LoadBalancerNames": [
+            "my-load-balancer"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example attaches the specified load balancer to the specified Auto Scaling group.",
+        "id": "autoscaling-attach-load-balancers-1",
+        "title": "To attach a load balancer to an Auto Scaling group"
+      }
+    ],
+    "AttachTrafficSources": [
+      {
+        "input": {
+          "AutoScalingGroupName": "my-auto-scaling-group",
+          "TrafficSources": [
+            {
+              "Identifier": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067"
+            }
+          ]
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example attaches the specified target group to the specified Auto Scaling group.",
+        "id": "to-attach-a-target-group-to-an-auto-scaling-group-1680036570089",
+        "title": "To attach a target group to an Auto Scaling group"
+      }
+    ],
+    "CancelInstanceRefresh": [
+      {
+        "input": {
+          "AutoScalingGroupName": "my-auto-scaling-group"
+        },
+        "output": {
+          "InstanceRefreshId": "08b91cf7-8fa6-48af-b6a6-d227f40f1b9b"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example cancels an instance refresh operation in progress.",
+        "id": "to-cancel-an-instance-refresh-1592960979817",
+        "title": "To cancel an instance refresh"
+      }
+    ],
+    "CompleteLifecycleAction": [
+      {
+        "input": {
+          "AutoScalingGroupName": "my-auto-scaling-group",
+          "LifecycleActionResult": "CONTINUE",
+          "LifecycleActionToken": "bcd2f1b8-9a78-44d3-8a7a-4dd07d7cf635",
+          "LifecycleHookName": "my-lifecycle-hook"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example notifies Auto Scaling that the specified lifecycle action is complete so that it can finish launching or terminating the instance.",
+        "id": "autoscaling-complete-lifecycle-action-1",
+        "title": "To complete the lifecycle action"
+      }
+    ],
+    "CreateAutoScalingGroup": [
+      {
+        "input": {
+          "AutoScalingGroupName": "my-auto-scaling-group",
+          "DefaultInstanceWarmup": 120,
+          "LaunchTemplate": {
+            "LaunchTemplateName": "my-template-for-auto-scaling",
+            "Version": "$Default"
+          },
+          "MaxInstanceLifetime": 2592000,
+          "MaxSize": 3,
+          "MinSize": 1,
+          "VPCZoneIdentifier": "subnet-057fa0918fEXAMPLE"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates an Auto Scaling group.",
+        "id": "autoscaling-create-auto-scaling-group-1",
+        "title": "To create an Auto Scaling group"
+      },
+      {
+        "input": {
+          "AutoScalingGroupName": "my-auto-scaling-group",
+          "HealthCheckGracePeriod": 300,
+          "HealthCheckType": "ELB",
+          "LaunchTemplate": {
+            "LaunchTemplateName": "my-template-for-auto-scaling",
+            "Version": "$Default"
+          },
+          "MaxSize": 3,
+          "MinSize": 1,
+          "TargetGroupARNs": [
+            "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067"
+          ],
+          "VPCZoneIdentifier": "subnet-057fa0918fEXAMPLE, subnet-610acd08EXAMPLE"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates an Auto Scaling group and attaches the specified target group.",
+        "id": "autoscaling-create-auto-scaling-group-2",
+        "title": "To create an Auto Scaling group with an attached target group"
+      },
+      {
+        "input": {
+          "AutoScalingGroupName": "my-asg",
+          "DesiredCapacity": 3,
+          "MaxSize": 5,
+          "MinSize": 1,
+          "MixedInstancesPolicy": {
+            "InstancesDistribution": {
+              "OnDemandBaseCapacity": 1,
+              "OnDemandPercentageAboveBaseCapacity": 50,
+              "SpotAllocationStrategy": "price-capacity-optimized"
+            },
+            "LaunchTemplate": {
+              "LaunchTemplateSpecification": {
+                "LaunchTemplateName": "my-launch-template-for-x86",
+                "Version": "$Default"
+              },
+              "Overrides": [
+                {
+                  "InstanceType": "c6g.large",
+                  "LaunchTemplateSpecification": {
+                    "LaunchTemplateName": "my-launch-template-for-arm",
+                    "Version": "$Default"
+                  }
+                },
+                {
+                  "InstanceType": "c5.large"
+                },
+                {
+                  "InstanceType": "c5a.large"
+                }
+              ]
+            }
+          },
+          "VPCZoneIdentifier": "subnet-057fa0918fEXAMPLE, subnet-610acd08EXAMPLE"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates an Auto Scaling group with a mixed instances policy. It specifies the c5.large, c5a.large, and c6g.large instance types and defines a different launch template for the c6g.large instance type.",
+        "id": "autoscaling-create-auto-scaling-group-3",
+        "title": "To create an Auto Scaling group with a mixed instances policy"
+      },
+      {
+        "input": {
+          "AutoScalingGroupName": "my-asg",
+          "DesiredCapacity": 4,
+          "DesiredCapacityType": "units",
+          "MaxSize": 100,
+          "MinSize": 0,
+          "MixedInstancesPolicy": {
+            "InstancesDistribution": {
+              "OnDemandPercentageAboveBaseCapacity": 50,
+              "SpotAllocationStrategy": "price-capacity-optimized"
+            },
+            "LaunchTemplate": {
+              "LaunchTemplateSpecification": {
+                "LaunchTemplateName": "my-template-for-auto-scaling",
+                "Version": "$Default"
+              },
+              "Overrides": [
+                {
+                  "InstanceRequirements": {
+                    "CpuManufacturers": [
+                      "intel"
+                    ],
+                    "MemoryMiB": {
+                      "Min": 16384
+                    },
+                    "VCpuCount": {
+                      "Max": 8,
+                      "Min": 4
+                    }
+                  }
+                }
+              ]
+            }
+          },
+          "VPCZoneIdentifier": "subnet-057fa0918fEXAMPLE, subnet-610acd08EXAMPLE"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates an Auto Scaling group using attribute-based instance type selection. It requires the instance types to have a minimum of four vCPUs and a maximum of eight vCPUs, a minimum of 16,384 MiB of memory, and an Intel manufactured CPU.",
+        "id": "autoscaling-create-auto-scaling-group-4",
+        "title": "To create an Auto Scaling group using attribute-based instance type selection"
+      }
+    ],
+    "CreateLaunchConfiguration": [
+      {
+        "input": {
+          "IamInstanceProfile": "my-iam-role",
+          "ImageId": "ami-12345678",
+          "InstanceType": "m3.medium",
+          "LaunchConfigurationName": "my-launch-config",
+          "SecurityGroups": [
+            "sg-eb2af88e"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a launch configuration.",
+        "id": "autoscaling-create-launch-configuration-1",
+        "title": "To create a launch configuration"
+      }
+    ],
+    "CreateOrUpdateTags": [
+      {
+        "input": {
+          "Tags": [
+            {
+              "Key": "Role",
+              "PropagateAtLaunch": true,
+              "ResourceId": "my-auto-scaling-group",
+              "ResourceType": "auto-scaling-group",
+              "Value": "WebServer"
+            },
+            {
+              "Key": "Dept",
+              "PropagateAtLaunch": true,
+              "ResourceId": "my-auto-scaling-group",
+              "ResourceType": "auto-scaling-group",
+              "Value": "Research"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example adds two tags to the specified Auto Scaling group.",
+        "id": "autoscaling-create-or-update-tags-1",
+        "title": "To create or update tags for an Auto Scaling group"
+      }
+    ],
+    "DeleteAutoScalingGroup": [
+      {
+        "input": {
+          "AutoScalingGroupName": "my-auto-scaling-group"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified Auto Scaling group.",
+        "id": "autoscaling-delete-auto-scaling-group-1",
+        "title": "To delete an Auto Scaling group"
+      },
+      {
+        "input": {
+          "AutoScalingGroupName": "my-auto-scaling-group",
+          "ForceDelete": true
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified Auto Scaling group and all its instances.",
+        "id": "autoscaling-delete-auto-scaling-group-2",
+        "title": "To delete an Auto Scaling group and all its instances"
+      }
+    ],
+    "DeleteLaunchConfiguration": [
+      {
+        "input": {
+          "LaunchConfigurationName": "my-launch-config"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified launch configuration.",
+        "id": "autoscaling-delete-launch-configuration-1",
+        "title": "To delete a launch configuration"
+      }
+    ],
+    "DeleteLifecycleHook": [
+      {
+        "input": {
+          "AutoScalingGroupName": "my-auto-scaling-group",
+          "LifecycleHookName": "my-lifecycle-hook"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified lifecycle hook.",
+        "id": "autoscaling-delete-lifecycle-hook-1",
+        "title": "To delete a lifecycle hook"
+      }
+    ],
+    "DeleteNotificationConfiguration": [
+      {
+        "input": {
+          "AutoScalingGroupName": "my-auto-scaling-group",
+          "TopicARN": "arn:aws:sns:us-west-2:123456789012:my-sns-topic"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified notification from the specified Auto Scaling group.",
+        "id": "autoscaling-delete-notification-configuration-1",
+        "title": "To delete an Auto Scaling notification"
+      }
+    ],
+    "DeletePolicy": [
+      {
+        "input": {
+          "AutoScalingGroupName": "my-auto-scaling-group",
+          "PolicyName": "my-step-scale-out-policy"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified Auto Scaling policy.",
+        "id": "autoscaling-delete-policy-1",
+        "title": "To delete an Auto Scaling policy"
+      }
+    ],
+    "DeleteScheduledAction": [
+      {
+        "input": {
+          "AutoScalingGroupName": "my-auto-scaling-group",
+          "ScheduledActionName": "my-scheduled-action"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified scheduled action from the specified Auto Scaling group.",
+        "id": "autoscaling-delete-scheduled-action-1",
+        "title": "To delete a scheduled action from an Auto Scaling group"
+      }
+    ],
+    "DeleteTags": [
+      {
+        "input": {
+          "Tags": [
+            {
+              "Key": "Dept",
+              "ResourceId": "my-auto-scaling-group",
+              "ResourceType": "auto-scaling-group",
+              "Value": "Research"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified tag from the specified Auto Scaling group.",
+        "id": "autoscaling-delete-tags-1",
+        "title": "To delete a tag from an Auto Scaling group"
+      }
+    ],
+    "DescribeAccountLimits": [
+      {
+        "output": {
+          "MaxNumberOfAutoScalingGroups": 20,
+          "MaxNumberOfLaunchConfigurations": 100,
+          "NumberOfAutoScalingGroups": 3,
+          "NumberOfLaunchConfigurations": 5
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the Amazon EC2 Auto Scaling service quotas for your account.",
+        "id": "autoscaling-describe-account-limits-1",
+        "title": "To describe your Auto Scaling account limits"
+      }
+    ],
+    "DescribeAdjustmentTypes": [
+      {
+        "output": {
+          "AdjustmentTypes": [
+            {
+              "AdjustmentType": "ChangeInCapacity"
+            },
+            {
+              "AdjustmentType": "ExactCapcity"
+            },
+            {
+              "AdjustmentType": "PercentChangeInCapacity"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the available adjustment types.",
+        "id": "autoscaling-describe-adjustment-types-1",
+        "title": "To describe the Amazon EC2 Auto Scaling adjustment types"
+      }
+    ],
+    "DescribeAutoScalingGroups": [
+      {
+        "input": {
+          "AutoScalingGroupNames": [
+            "my-auto-scaling-group"
+          ]
+        },
+        "output": {
+          "AutoScalingGroups": [
+            {
+              "AutoScalingGroupARN": "arn:aws:autoscaling:us-west-1:123456789012:autoScalingGroup:12345678-1234-1234-1234-123456789012:autoScalingGroupName/my-auto-scaling-group",
+              "AutoScalingGroupName": "my-auto-scaling-group",
+              "AvailabilityZones": [
+                "us-west-2a",
+                "us-west-2b",
+                "us-west-2c"
+              ],
+              "CreatedTime": "2023-03-09T22:15:11.611Z",
+              "DefaultCooldown": 300,
+              "DesiredCapacity": 2,
+              "EnabledMetrics": [
+
+              ],
+              "HealthCheckGracePeriod": 300,
+              "HealthCheckType": "EC2",
+              "Instances": [
+                {
+                  "AvailabilityZone": "us-west-2c",
+                  "HealthStatus": "Healthy",
+                  "InstanceId": "i-05b4f7d5be44822a6",
+                  "InstanceType": "t3.micro",
+                  "LaunchConfigurationName": "my-launch-config",
+                  "LifecycleState": "InService",
+                  "ProtectedFromScaleIn": false
+                },
+                {
+                  "AvailabilityZone": "us-west-2b",
+                  "HealthStatus": "Healthy",
+                  "InstanceId": "i-0c20ac468fa3049e8",
+                  "InstanceType": "t3.micro",
+                  "LaunchConfigurationName": "my-launch-config",
+                  "LifecycleState": "InService",
+                  "ProtectedFromScaleIn": false
+                }
+              ],
+              "LaunchConfigurationName": "my-launch-config",
+              "LoadBalancerNames": [
+
+              ],
+              "MaxSize": 5,
+              "MinSize": 1,
+              "NewInstancesProtectedFromScaleIn": false,
+              "ServiceLinkedRoleARN": "arn:aws:iam::123456789012:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling",
+              "SuspendedProcesses": [
+
+              ],
+              "Tags": [
+
+              ],
+              "TargetGroupARNs": [
+
+              ],
+              "TerminationPolicies": [
+                "Default"
+              ],
+              "TrafficSources": [
+
+              ],
+              "VPCZoneIdentifier": "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the specified Auto Scaling group.",
+        "id": "autoscaling-describe-auto-scaling-groups-1",
+        "title": "To describe an Auto Scaling group"
+      }
+    ],
+    "DescribeAutoScalingInstances": [
+      {
+        "input": {
+          "InstanceIds": [
+            "i-05b4f7d5be44822a6"
+          ]
+        },
+        "output": {
+          "AutoScalingInstances": [
+            {
+              "AutoScalingGroupName": "my-auto-scaling-group",
+              "AvailabilityZone": "us-west-2c",
+              "HealthStatus": "HEALTHY",
+              "InstanceId": "i-05b4f7d5be44822a6",
+              "InstanceType": "t3.micro",
+              "LaunchConfigurationName": "my-launch-config",
+              "LifecycleState": "InService",
+              "ProtectedFromScaleIn": false
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the specified Auto Scaling instance.",
+        "id": "autoscaling-describe-auto-scaling-instances-1",
+        "title": "To describe one or more Auto Scaling instances"
+      }
+    ],
+    "DescribeAutoScalingNotificationTypes": [
+      {
+        "output": {
+          "AutoScalingNotificationTypes": [
+            "autoscaling:EC2_INSTANCE_LAUNCH",
+            "autoscaling:EC2_INSTANCE_LAUNCH_ERROR",
+            "autoscaling:EC2_INSTANCE_TERMINATE",
+            "autoscaling:EC2_INSTANCE_TERMINATE_ERROR",
+            "autoscaling:TEST_NOTIFICATION"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the available notification types.",
+        "id": "autoscaling-describe-auto-scaling-notification-types-1",
+        "title": "To describe the Auto Scaling notification types"
+      }
+    ],
+    "DescribeInstanceRefreshes": [
+      {
+        "input": {
+          "AutoScalingGroupName": "my-auto-scaling-group"
+        },
+        "output": {
+          "InstanceRefreshes": [
+            {
+              "AutoScalingGroupName": "my-auto-scaling-group",
+              "InstanceRefreshId": "08b91cf7-8fa6-48af-b6a6-d227f40f1b9b",
+              "InstancesToUpdate": 0,
+              "PercentageComplete": 50,
+              "Preferences": {
+                "AlarmSpecification": {
+                  "Alarms": [
+                    "my-alarm"
+                  ]
+                },
+                "AutoRollback": true,
+                "InstanceWarmup": 200,
+                "MinHealthyPercentage": 90,
+                "ScaleInProtectedInstances": "Ignore",
+                "SkipMatching": false,
+                "StandbyInstances": "Ignore"
+              },
+              "StartTime": "2023-06-13T16:46:52+00:00",
+              "Status": "InProgress",
+              "StatusReason": "Waiting for instances to warm up before continuing. For example: i-0645704820a8e83ff is warming up."
+            },
+            {
+              "AutoScalingGroupName": "my-auto-scaling-group",
+              "EndTime": "2023-06-02T13:59:45+00:00",
+              "InstanceRefreshId": "0e151305-1e57-4a32-a256-1fd14157c5ec",
+              "InstancesToUpdate": 0,
+              "PercentageComplete": 100,
+              "Preferences": {
+                "AlarmSpecification": {
+                  "Alarms": [
+                    "my-alarm"
+                  ]
+                },
+                "AutoRollback": true,
+                "InstanceWarmup": 200,
+                "MinHealthyPercentage": 90,
+                "ScaleInProtectedInstances": "Ignore",
+                "SkipMatching": false,
+                "StandbyInstances": "Ignore"
+              },
+              "StartTime": "2023-06-02T13:53:37+00:00",
+              "Status": "Successful"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the instance refreshes for the specified Auto Scaling group.",
+        "id": "to-list-instance-refreshes-1592959593746",
+        "title": "To list instance refreshes"
+      }
+    ],
+    "DescribeLaunchConfigurations": [
+      {
+        "input": {
+          "LaunchConfigurationNames": [
+            "my-launch-config"
+          ]
+        },
+        "output": {
+          "LaunchConfigurations": [
+            {
+              "AssociatePublicIpAddress": true,
+              "BlockDeviceMappings": [
+
+              ],
+              "CreatedTime": "2014-05-07T17:39:28.599Z",
+              "EbsOptimized": false,
+              "ImageId": "ami-043a5034",
+              "InstanceMonitoring": {
+                "Enabled": true
+              },
+              "InstanceType": "t1.micro",
+              "LaunchConfigurationARN": "arn:aws:autoscaling:us-west-2:123456789012:launchConfiguration:98d3b196-4cf9-4e88-8ca1-8547c24ced8b:launchConfigurationName/my-launch-config",
+              "LaunchConfigurationName": "my-launch-config",
+              "SecurityGroups": [
+                "sg-67ef0308"
+              ]
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the specified launch configuration.",
+        "id": "autoscaling-describe-launch-configurations-1",
+        "title": "To describe Auto Scaling launch configurations"
+      }
+    ],
+    "DescribeLifecycleHookTypes": [
+      {
+        "output": {
+          "LifecycleHookTypes": [
+            "autoscaling:EC2_INSTANCE_LAUNCHING",
+            "autoscaling:EC2_INSTANCE_TERMINATING"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the available lifecycle hook types.",
+        "id": "autoscaling-describe-lifecycle-hook-types-1",
+        "title": "To describe the available types of lifecycle hooks"
+      }
+    ],
+    "DescribeLifecycleHooks": [
+      {
+        "input": {
+          "AutoScalingGroupName": "my-auto-scaling-group"
+        },
+        "output": {
+          "LifecycleHooks": [
+            {
+              "AutoScalingGroupName": "my-auto-scaling-group",
+              "DefaultResult": "ABANDON",
+              "GlobalTimeout": 172800,
+              "HeartbeatTimeout": 3600,
+              "LifecycleHookName": "my-lifecycle-hook",
+              "LifecycleTransition": "autoscaling:EC2_INSTANCE_LAUNCHING",
+              "NotificationTargetARN": "arn:aws:sns:us-west-2:123456789012:my-sns-topic",
+              "RoleARN": "arn:aws:iam::123456789012:role/my-auto-scaling-role"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the lifecycle hooks for the specified Auto Scaling group.",
+        "id": "autoscaling-describe-lifecycle-hooks-1",
+        "title": "To describe your lifecycle hooks"
+      }
+    ],
+    "DescribeLoadBalancerTargetGroups": [
+      {
+        "input": {
+          "AutoScalingGroupName": "my-auto-scaling-group"
+        },
+        "output": {
+          "LoadBalancerTargetGroups": [
+            {
+              "LoadBalancerTargetGroupARN": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067",
+              "State": "Added"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the target groups attached to the specified Auto Scaling group.",
+        "id": "autoscaling-describe-load-balancer-target-groups-1",
+        "title": "To describe the target groups for an Auto Scaling group"
+      }
+    ],
+    "DescribeLoadBalancers": [
+      {
+        "input": {
+          "AutoScalingGroupName": "my-auto-scaling-group"
+        },
+        "output": {
+          "LoadBalancers": [
+            {
+              "LoadBalancerName": "my-load-balancer",
+              "State": "Added"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the load balancers attached to the specified Auto Scaling group.",
+        "id": "autoscaling-describe-load-balancers-1",
+        "title": "To describe the load balancers for an Auto Scaling group"
+      }
+    ],
+    "DescribeMetricCollectionTypes": [
+      {
+        "output": {
+          "Granularities": [
+            {
+              "Granularity": "1Minute"
+            }
+          ],
+          "Metrics": [
+            {
+              "Metric": "GroupMinSize"
+            },
+            {
+              "Metric": "GroupMaxSize"
+            },
+            {
+              "Metric": "GroupDesiredCapacity"
+            },
+            {
+              "Metric": "GroupInServiceInstances"
+            },
+            {
+              "Metric": "GroupPendingInstances"
+            },
+            {
+              "Metric": "GroupTerminatingInstances"
+            },
+            {
+              "Metric": "GroupStandbyInstances"
+            },
+            {
+              "Metric": "GroupTotalInstances"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the available metric collection types.",
+        "id": "autoscaling-describe-metric-collection-types-1",
+        "title": "To describe the Auto Scaling metric collection types"
+      }
+    ],
+    "DescribeNotificationConfigurations": [
+      {
+        "input": {
+          "AutoScalingGroupNames": [
+            "my-auto-scaling-group"
+          ]
+        },
+        "output": {
+          "NotificationConfigurations": [
+            {
+              "AutoScalingGroupName": "my-auto-scaling-group",
+              "NotificationType": "autoscaling:TEST_NOTIFICATION",
+              "TopicARN": "arn:aws:sns:us-west-2:123456789012:my-sns-topic-2"
+            },
+            {
+              "AutoScalingGroupName": "my-auto-scaling-group",
+              "NotificationType": "autoscaling:TEST_NOTIFICATION",
+              "TopicARN": "arn:aws:sns:us-west-2:123456789012:my-sns-topic"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the notification configurations for the specified Auto Scaling group.",
+        "id": "autoscaling-describe-notification-configurations-1",
+        "title": "To describe Auto Scaling notification configurations"
+      }
+    ],
+    "DescribePolicies": [
+      {
+        "input": {
+          "AutoScalingGroupName": "my-auto-scaling-group"
+        },
+        "output": {
+          "ScalingPolicies": [
+            {
+              "AdjustmentType": "ChangeInCapacity",
+              "Alarms": [
+
+              ],
+              "AutoScalingGroupName": "my-auto-scaling-group",
+              "PolicyARN": "arn:aws:autoscaling:us-west-2:123456789012:scalingPolicy:2233f3d7-6290-403b-b632-93c553560106:autoScalingGroupName/my-auto-scaling-group:policyName/ScaleIn",
+              "PolicyName": "ScaleIn",
+              "ScalingAdjustment": -1
+            },
+            {
+              "AdjustmentType": "PercentChangeInCapacity",
+              "Alarms": [
+
+              ],
+              "AutoScalingGroupName": "my-auto-scaling-group",
+              "Cooldown": 60,
+              "MinAdjustmentStep": 2,
+              "PolicyARN": "arn:aws:autoscaling:us-west-2:123456789012:scalingPolicy:2b435159-cf77-4e89-8c0e-d63b497baad7:autoScalingGroupName/my-auto-scaling-group:policyName/ScalePercentChange",
+              "PolicyName": "ScalePercentChange",
+              "ScalingAdjustment": 25
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the policies for the specified Auto Scaling group.",
+        "id": "autoscaling-describe-policies-1",
+        "title": "To describe scaling policies"
+      }
+    ],
+    "DescribeScalingActivities": [
+      {
+        "input": {
+          "AutoScalingGroupName": "my-auto-scaling-group"
+        },
+        "output": {
+          "Activities": [
+            {
+              "ActivityId": "f9f2d65b-f1f2-43e7-b46d-d86756459699",
+              "AutoScalingGroupARN": "arn:aws:autoscaling:us-east-1:123456789012:autoScalingGroup:12345678-1234-1234-1234-123456789012:autoScalingGroupName/my-auto-scaling-group",
+              "AutoScalingGroupName": "my-auto-scaling-group",
+              "Cause": "At 2013-08-19T20:53:25Z a user request created an AutoScalingGroup changing the desired capacity from 0 to 1.  At 2013-08-19T20:53:29Z an instance was started in response to a difference between desired and actual capacity, increasing the capacity from 0 to 1.",
+              "Description": "Launching a new EC2 instance: i-4ba0837f",
+              "Details": "details",
+              "EndTime": "2013-08-19T20:54:02Z",
+              "Progress": 100,
+              "StartTime": "2013-08-19T20:53:29.930Z",
+              "StatusCode": "Successful"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the scaling activities for the specified Auto Scaling group.",
+        "id": "autoscaling-describe-scaling-activities-1",
+        "title": "To describe the scaling activities for an Auto Scaling group"
+      }
+    ],
+    "DescribeScalingProcessTypes": [
+      {
+        "output": {
+          "Processes": [
+            {
+              "ProcessName": "AZRebalance"
+            },
+            {
+              "ProcessName": "AddToLoadBalancer"
+            },
+            {
+              "ProcessName": "AlarmNotification"
+            },
+            {
+              "ProcessName": "HealthCheck"
+            },
+            {
+              "ProcessName": "Launch"
+            },
+            {
+              "ProcessName": "ReplaceUnhealthy"
+            },
+            {
+              "ProcessName": "ScheduledActions"
+            },
+            {
+              "ProcessName": "Terminate"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the Auto Scaling process types.",
+        "id": "autoscaling-describe-scaling-process-types-1",
+        "title": "To describe the Auto Scaling process types"
+      }
+    ],
+    "DescribeScheduledActions": [
+      {
+        "input": {
+          "AutoScalingGroupName": "my-auto-scaling-group"
+        },
+        "output": {
+          "ScheduledUpdateGroupActions": [
+            {
+              "AutoScalingGroupName": "my-auto-scaling-group",
+              "DesiredCapacity": 4,
+              "MaxSize": 6,
+              "MinSize": 2,
+              "Recurrence": "30 0 1 12 0",
+              "ScheduledActionARN": "arn:aws:autoscaling:us-west-2:123456789012:scheduledUpdateGroupAction:8e86b655-b2e6-4410-8f29-b4f094d6871c:autoScalingGroupName/my-auto-scaling-group:scheduledActionName/my-scheduled-action",
+              "ScheduledActionName": "my-scheduled-action",
+              "StartTime": "2016-12-01T00:30:00Z",
+              "Time": "2016-12-01T00:30:00Z"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the scheduled actions for the specified Auto Scaling group.",
+        "id": "autoscaling-describe-scheduled-actions-1",
+        "title": "To describe scheduled actions"
+      }
+    ],
+    "DescribeTags": [
+      {
+        "input": {
+          "Filters": [
+            {
+              "Name": "auto-scaling-group",
+              "Values": [
+                "my-auto-scaling-group"
+              ]
+            }
+          ]
+        },
+        "output": {
+          "Tags": [
+            {
+              "Key": "Dept",
+              "PropagateAtLaunch": true,
+              "ResourceId": "my-auto-scaling-group",
+              "ResourceType": "auto-scaling-group",
+              "Value": "Research"
+            },
+            {
+              "Key": "Role",
+              "PropagateAtLaunch": true,
+              "ResourceId": "my-auto-scaling-group",
+              "ResourceType": "auto-scaling-group",
+              "Value": "WebServer"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the tags for the specified Auto Scaling group.",
+        "id": "autoscaling-describe-tags-1",
+        "title": "To describe tags"
+      }
+    ],
+    "DescribeTerminationPolicyTypes": [
+      {
+        "output": {
+          "TerminationPolicyTypes": [
+            "ClosestToNextInstanceHour",
+            "Default",
+            "NewestInstance",
+            "OldestInstance",
+            "OldestLaunchConfiguration"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the available termination policy types.",
+        "id": "autoscaling-describe-termination-policy-types-1",
+        "title": "To describe termination policy types"
+      }
+    ],
+    "DescribeTrafficSources": [
+      {
+        "input": {
+          "AutoScalingGroupName": "my-auto-scaling-group"
+        },
+        "output": {
+          "NextToken": "",
+          "TrafficSources": [
+            {
+              "Identifier": "arn:aws:vpc-lattice:us-west-2:123456789012:targetgroup/tg-0e2f2665eEXAMPLE",
+              "State": "InService",
+              "Type": "vpc-lattice"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the target groups attached to the specified Auto Scaling group.",
+        "id": "to-describe-the-target-groups-for-an-auto-scaling-group-1680040714521",
+        "title": "To describe the target groups for an Auto Scaling group"
+      }
+    ],
+    "DetachInstances": [
+      {
+        "input": {
+          "AutoScalingGroupName": "my-auto-scaling-group",
+          "InstanceIds": [
+            "i-93633f9b"
+          ],
+          "ShouldDecrementDesiredCapacity": true
+        },
+        "output": {
+          "Activities": [
+            {
+              "ActivityId": "5091cb52-547a-47ce-a236-c9ccbc2cb2c9",
+              "AutoScalingGroupName": "my-auto-scaling-group",
+              "Cause": "At 2015-04-12T15:02:16Z instance i-93633f9b was detached in response to a user request, shrinking the capacity from 2 to 1.",
+              "Description": "Detaching EC2 instance: i-93633f9b",
+              "Details": "details",
+              "Progress": 50,
+              "StartTime": "2015-04-12T15:02:16.179Z",
+              "StatusCode": "InProgress"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example detaches the specified instance from the specified Auto Scaling group.",
+        "id": "autoscaling-detach-instances-1",
+        "title": "To detach an instance from an Auto Scaling group"
+      }
+    ],
+    "DetachLoadBalancerTargetGroups": [
+      {
+        "input": {
+          "AutoScalingGroupName": "my-auto-scaling-group",
+          "TargetGroupARNs": [
+            "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example detaches the specified target group from the specified Auto Scaling group",
+        "id": "autoscaling-detach-load-balancer-target-groups-1",
+        "title": "To detach a target group from an Auto Scaling group"
+      }
+    ],
+    "DetachLoadBalancers": [
+      {
+        "input": {
+          "AutoScalingGroupName": "my-auto-scaling-group",
+          "LoadBalancerNames": [
+            "my-load-balancer"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example detaches the specified load balancer from the specified Auto Scaling group.",
+        "id": "autoscaling-detach-load-balancers-1",
+        "title": "To detach a load balancer from an Auto Scaling group"
+      }
+    ],
+    "DetachTrafficSources": [
+      {
+        "input": {
+          "AutoScalingGroupName": "my-auto-scaling-group",
+          "TrafficSources": [
+            {
+              "Identifier": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067"
+            }
+          ]
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example detaches the specified target group from the specified Auto Scaling group.",
+        "id": "to-detach-a-target-group-from-an-auto-scaling-group-1680040404169",
+        "title": "To detach a target group from an Auto Scaling group"
+      }
+    ],
+    "DisableMetricsCollection": [
+      {
+        "input": {
+          "AutoScalingGroupName": "my-auto-scaling-group",
+          "Metrics": [
+            "GroupDesiredCapacity"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example disables collecting data for the GroupDesiredCapacity metric for the specified Auto Scaling group.",
+        "id": "autoscaling-disable-metrics-collection-1",
+        "title": "To disable metrics collection for an Auto Scaling group"
+      }
+    ],
+    "EnableMetricsCollection": [
+      {
+        "input": {
+          "AutoScalingGroupName": "my-auto-scaling-group",
+          "Granularity": "1Minute"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example enables data collection for the specified Auto Scaling group.",
+        "id": "autoscaling-enable-metrics-collection-1",
+        "title": "To enable metrics collection for an Auto Scaling group"
+      }
+    ],
+    "EnterStandby": [
+      {
+        "input": {
+          "AutoScalingGroupName": "my-auto-scaling-group",
+          "InstanceIds": [
+            "i-93633f9b"
+          ],
+          "ShouldDecrementDesiredCapacity": true
+        },
+        "output": {
+          "Activities": [
+            {
+              "ActivityId": "ffa056b4-6ed3-41ba-ae7c-249dfae6eba1",
+              "AutoScalingGroupName": "my-auto-scaling-group",
+              "Cause": "At 2015-04-12T15:10:23Z instance i-93633f9b was moved to standby in response to a user request, shrinking the capacity from 2 to 1.",
+              "Description": "Moving EC2 instance to Standby: i-93633f9b",
+              "Details": "details",
+              "Progress": 50,
+              "StartTime": "2015-04-12T15:10:23.640Z",
+              "StatusCode": "InProgress"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example puts the specified instance into standby mode.",
+        "id": "autoscaling-enter-standby-1",
+        "title": "To move instances into standby mode"
+      }
+    ],
+    "ExecutePolicy": [
+      {
+        "input": {
+          "AutoScalingGroupName": "my-auto-scaling-group",
+          "BreachThreshold": 50.0,
+          "MetricValue": 59.0,
+          "PolicyName": "my-step-scale-out-policy"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example executes the specified policy.",
+        "id": "autoscaling-execute-policy-1",
+        "title": "To execute a scaling policy"
+      }
+    ],
+    "ExitStandby": [
+      {
+        "input": {
+          "AutoScalingGroupName": "my-auto-scaling-group",
+          "InstanceIds": [
+            "i-93633f9b"
+          ]
+        },
+        "output": {
+          "Activities": [
+            {
+              "ActivityId": "142928e1-a2dc-453a-9b24-b85ad6735928",
+              "AutoScalingGroupName": "my-auto-scaling-group",
+              "Cause": "At 2015-04-12T15:14:29Z instance i-93633f9b was moved out of standby in response to a user request, increasing the capacity from 1 to 2.",
+              "Description": "Moving EC2 instance out of Standby: i-93633f9b",
+              "Details": "details",
+              "Progress": 30,
+              "StartTime": "2015-04-12T15:14:29.886Z",
+              "StatusCode": "PreInService"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example moves the specified instance out of standby mode.",
+        "id": "autoscaling-exit-standby-1",
+        "title": "To move instances out of standby mode"
+      }
+    ],
+    "PutLifecycleHook": [
+      {
+        "input": {
+          "AutoScalingGroupName": "my-auto-scaling-group",
+          "DefaultResult": "CONTINUE",
+          "HeartbeatTimeout": 300,
+          "LifecycleHookName": "my-launch-lifecycle-hook",
+          "LifecycleTransition": "autoscaling:EC2_INSTANCE_LAUNCHING"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a lifecycle hook for instance launch.",
+        "id": "autoscaling-put-lifecycle-hook-1",
+        "title": "To create a launch lifecycle hook"
+      }
+    ],
+    "PutNotificationConfiguration": [
+      {
+        "input": {
+          "AutoScalingGroupName": "my-auto-scaling-group",
+          "NotificationTypes": [
+            "autoscaling:TEST_NOTIFICATION"
+          ],
+          "TopicARN": "arn:aws:sns:us-west-2:123456789012:my-sns-topic"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example adds the specified notification to the specified Auto Scaling group.",
+        "id": "autoscaling-put-notification-configuration-1",
+        "title": "To add an Auto Scaling notification"
+      }
+    ],
+    "PutScalingPolicy": [
+      {
+        "input": {
+          "AutoScalingGroupName": "my-auto-scaling-group",
+          "PolicyName": "alb1000-target-tracking-scaling-policy",
+          "PolicyType": "TargetTrackingScaling",
+          "TargetTrackingConfiguration": {
+            "PredefinedMetricSpecification": {
+              "PredefinedMetricType": "ALBRequestCountPerTarget",
+              "ResourceLabel": "app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff"
+            },
+            "TargetValue": 1000.0
+          }
+        },
+        "output": {
+          "Alarms": [
+            {
+              "AlarmARN": "arn:aws:cloudwatch:us-west-2:123456789012:alarm:TargetTracking-my-asg-AlarmHigh-fc0e4183-23ac-497e-9992-691c9980c38e",
+              "AlarmName": "TargetTracking-my-asg-AlarmHigh-fc0e4183-23ac-497e-9992-691c9980c38e"
+            },
+            {
+              "AlarmARN": "arn:aws:cloudwatch:us-west-2:123456789012:alarm:TargetTracking-my-asg-AlarmLow-61a39305-ed0c-47af-bd9e-471a352ee1a2",
+              "AlarmName": "TargetTracking-my-asg-AlarmLow-61a39305-ed0c-47af-bd9e-471a352ee1a2"
+            }
+          ],
+          "PolicyARN": "arn:aws:autoscaling:us-west-2:123456789012:scalingPolicy:228f02c2-c665-4bfd-aaac-8b04080bea3c:autoScalingGroupName/my-auto-scaling-group:policyName/alb1000-target-tracking-scaling-policy"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example adds the specified policy to the specified Auto Scaling group.",
+        "id": "autoscaling-put-scaling-policy-1",
+        "title": "To add a scaling policy to an Auto Scaling group"
+      }
+    ],
+    "PutScheduledUpdateGroupAction": [
+      {
+        "input": {
+          "AutoScalingGroupName": "my-auto-scaling-group",
+          "DesiredCapacity": 4,
+          "EndTime": "2014-05-12T08:00:00Z",
+          "MaxSize": 6,
+          "MinSize": 2,
+          "ScheduledActionName": "my-scheduled-action",
+          "StartTime": "2014-05-12T08:00:00Z"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example adds the specified scheduled action to the specified Auto Scaling group.",
+        "id": "autoscaling-put-scheduled-update-group-action-1",
+        "title": "To add a scheduled action to an Auto Scaling group"
+      }
+    ],
+    "PutWarmPool": [
+      {
+        "input": {
+          "AutoScalingGroupName": "my-auto-scaling-group",
+          "InstanceReusePolicy": {
+            "ReuseOnScaleIn": true
+          },
+          "MinSize": 30,
+          "PoolState": "Hibernated"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a warm pool for the specified Auto Scaling group.",
+        "id": "to-add-a-warm-pool-to-an-auto-scaling-group-1617818810383",
+        "title": "To create a warm pool for an Auto Scaling group"
+      }
+    ],
+    "RecordLifecycleActionHeartbeat": [
+      {
+        "input": {
+          "AutoScalingGroupName": "my-auto-scaling-group",
+          "LifecycleActionToken": "bcd2f1b8-9a78-44d3-8a7a-4dd07d7cf635",
+          "LifecycleHookName": "my-lifecycle-hook"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example records a lifecycle action heartbeat to keep the instance in a pending state.",
+        "id": "autoscaling-record-lifecycle-action-heartbeat-1",
+        "title": "To record a lifecycle action heartbeat"
+      }
+    ],
+    "ResumeProcesses": [
+      {
+        "input": {
+          "AutoScalingGroupName": "my-auto-scaling-group",
+          "ScalingProcesses": [
+            "AlarmNotification"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example resumes the specified suspended scaling process for the specified Auto Scaling group.",
+        "id": "autoscaling-resume-processes-1",
+        "title": "To resume Auto Scaling processes"
+      }
+    ],
+    "SetDesiredCapacity": [
+      {
+        "input": {
+          "AutoScalingGroupName": "my-auto-scaling-group",
+          "DesiredCapacity": 2,
+          "HonorCooldown": true
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example sets the desired capacity for the specified Auto Scaling group.",
+        "id": "autoscaling-set-desired-capacity-1",
+        "title": "To set the desired capacity for an Auto Scaling group"
+      }
+    ],
+    "SetInstanceHealth": [
+      {
+        "input": {
+          "HealthStatus": "Unhealthy",
+          "InstanceId": "i-93633f9b"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example sets the health status of the specified instance to Unhealthy.",
+        "id": "autoscaling-set-instance-health-1",
+        "title": "To set the health status of an instance"
+      }
+    ],
+    "SetInstanceProtection": [
+      {
+        "input": {
+          "AutoScalingGroupName": "my-auto-scaling-group",
+          "InstanceIds": [
+            "i-93633f9b"
+          ],
+          "ProtectedFromScaleIn": true
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example enables instance protection for the specified instance.",
+        "id": "autoscaling-set-instance-protection-1",
+        "title": "To enable instance protection for an instance"
+      },
+      {
+        "input": {
+          "AutoScalingGroupName": "my-auto-scaling-group",
+          "InstanceIds": [
+            "i-93633f9b"
+          ],
+          "ProtectedFromScaleIn": false
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example disables instance protection for the specified instance.",
+        "id": "autoscaling-set-instance-protection-2",
+        "title": "To disable instance protection for an instance"
+      }
+    ],
+    "StartInstanceRefresh": [
+      {
+        "input": {
+          "AutoScalingGroupName": "my-auto-scaling-group",
+          "DesiredConfiguration": {
+            "LaunchTemplate": {
+              "LaunchTemplateName": "my-template-for-auto-scaling",
+              "Version": "$Latest"
+            }
+          },
+          "Preferences": {
+            "AlarmSpecification": {
+              "Alarms": [
+                "my-alarm"
+              ]
+            },
+            "AutoRollback": true,
+            "InstanceWarmup": 200,
+            "MinHealthyPercentage": 90
+          }
+        },
+        "output": {
+          "InstanceRefreshId": "08b91cf7-8fa6-48af-b6a6-d227f40f1b9b"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example starts an instance refresh for the specified Auto Scaling group.",
+        "id": "to-start-an-instance-refresh-1592957271522",
+        "title": "To start an instance refresh"
+      }
+    ],
+    "SuspendProcesses": [
+      {
+        "input": {
+          "AutoScalingGroupName": "my-auto-scaling-group",
+          "ScalingProcesses": [
+            "AlarmNotification"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example suspends the specified scaling process for the specified Auto Scaling group.",
+        "id": "autoscaling-suspend-processes-1",
+        "title": "To suspend Auto Scaling processes"
+      }
+    ],
+    "TerminateInstanceInAutoScalingGroup": [
+      {
+        "input": {
+          "InstanceId": "i-93633f9b",
+          "ShouldDecrementDesiredCapacity": false
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example terminates the specified instance from the specified Auto Scaling group without updating the size of the group. Auto Scaling launches a replacement instance after the specified instance terminates.",
+        "id": "autoscaling-terminate-instance-in-auto-scaling-group-1",
+        "title": "To terminate an instance in an Auto Scaling group"
+      }
+    ],
+    "UpdateAutoScalingGroup": [
+      {
+        "input": {
+          "AutoScalingGroupName": "my-auto-scaling-group",
+          "LaunchTemplate": {
+            "LaunchTemplateName": "my-template-for-auto-scaling",
+            "Version": "2"
+          },
+          "MaxSize": 5,
+          "MinSize": 1,
+          "NewInstancesProtectedFromScaleIn": true
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example updates multiple properties at the same time.",
+        "id": "autoscaling-update-auto-scaling-group-1",
+        "title": "To update an Auto Scaling group"
+      }
+    ]
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/autoscaling/2011-01-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/autoscaling/2011-01-01/paginators-1.json
new file mode 100644
index 00000000..ac5939df
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/autoscaling/2011-01-01/paginators-1.json
@@ -0,0 +1,70 @@
+{
+  "pagination": {
+    "DescribeAutoScalingGroups": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxRecords",
+      "result_key": "AutoScalingGroups"
+    },
+    "DescribeAutoScalingInstances": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxRecords",
+      "result_key": "AutoScalingInstances"
+    },
+    "DescribeLaunchConfigurations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxRecords",
+      "result_key": "LaunchConfigurations"
+    },
+    "DescribeNotificationConfigurations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxRecords",
+      "result_key": "NotificationConfigurations"
+    },
+    "DescribePolicies": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxRecords",
+      "result_key": "ScalingPolicies"
+    },
+    "DescribeScalingActivities": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxRecords",
+      "result_key": "Activities"
+    },
+    "DescribeScheduledActions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxRecords",
+      "result_key": "ScheduledUpdateGroupActions"
+    },
+    "DescribeTags": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxRecords",
+      "result_key": "Tags"
+    },
+    "DescribeLoadBalancerTargetGroups": {
+      "input_token": "NextToken",
+      "limit_key": "MaxRecords",
+      "output_token": "NextToken",
+      "result_key": "LoadBalancerTargetGroups"
+    },
+    "DescribeLoadBalancers": {
+      "input_token": "NextToken",
+      "limit_key": "MaxRecords",
+      "output_token": "NextToken",
+      "result_key": "LoadBalancers"
+    },
+    "DescribeWarmPool": {
+      "input_token": "NextToken",
+      "limit_key": "MaxRecords",
+      "output_token": "NextToken",
+      "result_key": "Instances"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/autoscaling/2011-01-01/paginators-1.sdk-extras.json b/.venv/lib/python3.12/site-packages/botocore/data/autoscaling/2011-01-01/paginators-1.sdk-extras.json
new file mode 100644
index 00000000..1c634992
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/autoscaling/2011-01-01/paginators-1.sdk-extras.json
@@ -0,0 +1,12 @@
+{
+  "version": 1.0,
+  "merge": {
+    "pagination": {
+      "DescribeWarmPool": {
+        "non_aggregate_keys": [
+          "WarmPoolConfiguration"
+        ]
+      }
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/autoscaling/2011-01-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/autoscaling/2011-01-01/service-2.json.gz
new file mode 100644
index 00000000..70c28e72
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/autoscaling/2011-01-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/b2bi/2022-06-23/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/b2bi/2022-06-23/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..c0b07fe1
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/b2bi/2022-06-23/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/b2bi/2022-06-23/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/b2bi/2022-06-23/paginators-1.json
new file mode 100644
index 00000000..5f3b0d24
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/b2bi/2022-06-23/paginators-1.json
@@ -0,0 +1,28 @@
+{
+  "pagination": {
+    "ListCapabilities": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "capabilities"
+    },
+    "ListPartnerships": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "partnerships"
+    },
+    "ListProfiles": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "profiles"
+    },
+    "ListTransformers": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "transformers"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/b2bi/2022-06-23/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/b2bi/2022-06-23/service-2.json.gz
new file mode 100644
index 00000000..591e7a3d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/b2bi/2022-06-23/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/backup-gateway/2021-01-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/backup-gateway/2021-01-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..84d7b9fb
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/backup-gateway/2021-01-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/backup-gateway/2021-01-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/backup-gateway/2021-01-01/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/backup-gateway/2021-01-01/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/backup-gateway/2021-01-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/backup-gateway/2021-01-01/paginators-1.json
new file mode 100644
index 00000000..462aacd0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/backup-gateway/2021-01-01/paginators-1.json
@@ -0,0 +1,22 @@
+{
+  "pagination": {
+    "ListGateways": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Gateways"
+    },
+    "ListHypervisors": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Hypervisors"
+    },
+    "ListVirtualMachines": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "VirtualMachines"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/backup-gateway/2021-01-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/backup-gateway/2021-01-01/service-2.json.gz
new file mode 100644
index 00000000..969c0f9f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/backup-gateway/2021-01-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/backup/2018-11-15/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/backup/2018-11-15/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..ba1a6708
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/backup/2018-11-15/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/backup/2018-11-15/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/backup/2018-11-15/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/backup/2018-11-15/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/backup/2018-11-15/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/backup/2018-11-15/paginators-1.json
new file mode 100644
index 00000000..f19ea3db
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/backup/2018-11-15/paginators-1.json
@@ -0,0 +1,112 @@
+{
+  "pagination": {
+    "ListBackupJobs": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "BackupJobs"
+    },
+    "ListBackupPlanTemplates": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "BackupPlanTemplatesList"
+    },
+    "ListBackupPlanVersions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "BackupPlanVersionsList"
+    },
+    "ListBackupPlans": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "BackupPlansList"
+    },
+    "ListBackupSelections": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "BackupSelectionsList"
+    },
+    "ListBackupVaults": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "BackupVaultList"
+    },
+    "ListCopyJobs": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "CopyJobs"
+    },
+    "ListProtectedResources": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Results"
+    },
+    "ListRecoveryPointsByBackupVault": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "RecoveryPoints"
+    },
+    "ListRecoveryPointsByResource": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "RecoveryPoints"
+    },
+    "ListRestoreJobs": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "RestoreJobs"
+    },
+    "ListLegalHolds": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "LegalHolds"
+    },
+    "ListRecoveryPointsByLegalHold": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "RecoveryPoints"
+    },
+    "ListProtectedResourcesByBackupVault": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Results"
+    },
+    "ListRestoreJobsByProtectedResource": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "RestoreJobs"
+    },
+    "ListRestoreTestingPlans": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "RestoreTestingPlans"
+    },
+    "ListRestoreTestingSelections": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "RestoreTestingSelections"
+    },
+    "ListIndexedRecoveryPoints": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "IndexedRecoveryPoints"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/backup/2018-11-15/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/backup/2018-11-15/service-2.json.gz
new file mode 100644
index 00000000..323229e1
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/backup/2018-11-15/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/backupsearch/2018-05-10/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/backupsearch/2018-05-10/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..11903912
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/backupsearch/2018-05-10/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/backupsearch/2018-05-10/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/backupsearch/2018-05-10/paginators-1.json
new file mode 100644
index 00000000..bc482fde
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/backupsearch/2018-05-10/paginators-1.json
@@ -0,0 +1,28 @@
+{
+  "pagination": {
+    "ListSearchJobBackups": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Results"
+    },
+    "ListSearchJobResults": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Results"
+    },
+    "ListSearchJobs": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "SearchJobs"
+    },
+    "ListSearchResultExportJobs": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ExportJobs"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/backupsearch/2018-05-10/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/backupsearch/2018-05-10/service-2.json.gz
new file mode 100644
index 00000000..e10ec2d4
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/backupsearch/2018-05-10/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/backupsearch/2018-05-10/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/backupsearch/2018-05-10/waiters-2.json
new file mode 100644
index 00000000..13f60ee6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/backupsearch/2018-05-10/waiters-2.json
@@ -0,0 +1,5 @@
+{
+  "version": 2,
+  "waiters": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/batch/2016-08-10/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/batch/2016-08-10/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..36a3fc45
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/batch/2016-08-10/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/batch/2016-08-10/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/batch/2016-08-10/examples-1.json
new file mode 100644
index 00000000..18203dc8
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/batch/2016-08-10/examples-1.json
@@ -0,0 +1,711 @@
+{
+  "version": "1.0",
+  "examples": {
+    "CancelJob": [
+      {
+        "input": {
+          "jobId": "1d828f65-7a4d-42e8-996d-3b900ed59dc4",
+          "reason": "Cancelling job."
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example cancels a job with the specified job ID.",
+        "id": "to-cancel-a-job-1481152314733",
+        "title": "To cancel a job"
+      }
+    ],
+    "CreateComputeEnvironment": [
+      {
+        "input": {
+          "type": "MANAGED",
+          "computeEnvironmentName": "C4OnDemand",
+          "computeResources": {
+            "type": "EC2",
+            "desiredvCpus": 48,
+            "ec2KeyPair": "id_rsa",
+            "instanceRole": "ecsInstanceRole",
+            "instanceTypes": [
+              "c4.large",
+              "c4.xlarge",
+              "c4.2xlarge",
+              "c4.4xlarge",
+              "c4.8xlarge"
+            ],
+            "maxvCpus": 128,
+            "minvCpus": 0,
+            "securityGroupIds": [
+              "sg-cf5093b2"
+            ],
+            "subnets": [
+              "subnet-220c0e0a",
+              "subnet-1a95556d",
+              "subnet-978f6dce"
+            ],
+            "tags": {
+              "Name": "Batch Instance - C4OnDemand"
+            }
+          },
+          "serviceRole": "arn:aws:iam::012345678910:role/AWSBatchServiceRole",
+          "state": "ENABLED"
+        },
+        "output": {
+          "computeEnvironmentArn": "arn:aws:batch:us-east-1:012345678910:compute-environment/C4OnDemand",
+          "computeEnvironmentName": "C4OnDemand"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a managed compute environment with specific C4 instance types that are launched on demand. The compute environment is called C4OnDemand.",
+        "id": "to-create-a-managed-ec2-compute-environment-1481152600017",
+        "title": "To create a managed EC2 compute environment"
+      },
+      {
+        "input": {
+          "type": "MANAGED",
+          "computeEnvironmentName": "M4Spot",
+          "computeResources": {
+            "type": "SPOT",
+            "bidPercentage": 20,
+            "desiredvCpus": 4,
+            "ec2KeyPair": "id_rsa",
+            "instanceRole": "ecsInstanceRole",
+            "instanceTypes": [
+              "m4"
+            ],
+            "maxvCpus": 128,
+            "minvCpus": 0,
+            "securityGroupIds": [
+              "sg-cf5093b2"
+            ],
+            "spotIamFleetRole": "arn:aws:iam::012345678910:role/aws-ec2-spot-fleet-role",
+            "subnets": [
+              "subnet-220c0e0a",
+              "subnet-1a95556d",
+              "subnet-978f6dce"
+            ],
+            "tags": {
+              "Name": "Batch Instance - M4Spot"
+            }
+          },
+          "serviceRole": "arn:aws:iam::012345678910:role/AWSBatchServiceRole",
+          "state": "ENABLED"
+        },
+        "output": {
+          "computeEnvironmentArn": "arn:aws:batch:us-east-1:012345678910:compute-environment/M4Spot",
+          "computeEnvironmentName": "M4Spot"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a managed compute environment with the M4 instance type that is launched when the Spot bid price is at or below 20% of the On-Demand price for the instance type. The compute environment is called M4Spot.",
+        "id": "to-create-a-managed-ec2-spot-compute-environment-1481152844190",
+        "title": "To create a managed EC2 Spot compute environment"
+      }
+    ],
+    "CreateJobQueue": [
+      {
+        "input": {
+          "computeEnvironmentOrder": [
+            {
+              "computeEnvironment": "M4Spot",
+              "order": 1
+            }
+          ],
+          "jobQueueName": "LowPriority",
+          "priority": 1,
+          "state": "ENABLED"
+        },
+        "output": {
+          "jobQueueArn": "arn:aws:batch:us-east-1:012345678910:job-queue/LowPriority",
+          "jobQueueName": "LowPriority"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a job queue called LowPriority that uses the M4Spot compute environment.",
+        "id": "to-create-a-job-queue-with-a-single-compute-environment-1481152967946",
+        "title": "To create a job queue with a single compute environment"
+      },
+      {
+        "input": {
+          "computeEnvironmentOrder": [
+            {
+              "computeEnvironment": "C4OnDemand",
+              "order": 1
+            },
+            {
+              "computeEnvironment": "M4Spot",
+              "order": 2
+            }
+          ],
+          "jobQueueName": "HighPriority",
+          "priority": 10,
+          "state": "ENABLED"
+        },
+        "output": {
+          "jobQueueArn": "arn:aws:batch:us-east-1:012345678910:job-queue/HighPriority",
+          "jobQueueName": "HighPriority"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a job queue called HighPriority that uses the C4OnDemand compute environment with an order of 1 and the M4Spot compute environment with an order of 2.",
+        "id": "to-create-a-job-queue-with-multiple-compute-environments-1481153027051",
+        "title": "To create a job queue with multiple compute environments"
+      }
+    ],
+    "DeleteComputeEnvironment": [
+      {
+        "input": {
+          "computeEnvironment": "P2OnDemand"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the P2OnDemand compute environment.",
+        "id": "to-delete-a-compute-environment-1481153105644",
+        "title": "To delete a compute environment"
+      }
+    ],
+    "DeleteJobQueue": [
+      {
+        "input": {
+          "jobQueue": "GPGPU"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the GPGPU job queue.",
+        "id": "to-delete-a-job-queue-1481153508134",
+        "title": "To delete a job queue"
+      }
+    ],
+    "DeregisterJobDefinition": [
+      {
+        "input": {
+          "jobDefinition": "sleep10"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deregisters a job definition called sleep10.",
+        "id": "to-deregister-a-job-definition-1481153579565",
+        "title": "To deregister a job definition"
+      }
+    ],
+    "DescribeComputeEnvironments": [
+      {
+        "input": {
+          "computeEnvironments": [
+            "P2OnDemand"
+          ]
+        },
+        "output": {
+          "computeEnvironments": [
+            {
+              "type": "MANAGED",
+              "computeEnvironmentArn": "arn:aws:batch:us-east-1:012345678910:compute-environment/P2OnDemand",
+              "computeEnvironmentName": "P2OnDemand",
+              "computeResources": {
+                "type": "EC2",
+                "desiredvCpus": 48,
+                "ec2KeyPair": "id_rsa",
+                "instanceRole": "ecsInstanceRole",
+                "instanceTypes": [
+                  "p2"
+                ],
+                "maxvCpus": 128,
+                "minvCpus": 0,
+                "securityGroupIds": [
+                  "sg-cf5093b2"
+                ],
+                "subnets": [
+                  "subnet-220c0e0a",
+                  "subnet-1a95556d",
+                  "subnet-978f6dce"
+                ],
+                "tags": {
+                  "Name": "Batch Instance - P2OnDemand"
+                }
+              },
+              "ecsClusterArn": "arn:aws:ecs:us-east-1:012345678910:cluster/P2OnDemand_Batch_2c06f29d-d1fe-3a49-879d-42394c86effc",
+              "serviceRole": "arn:aws:iam::012345678910:role/AWSBatchServiceRole",
+              "state": "ENABLED",
+              "status": "VALID",
+              "statusReason": "ComputeEnvironment Healthy"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the P2OnDemand compute environment.",
+        "id": "to-describe-a-compute-environment-1481153713334",
+        "title": "To describe a compute environment"
+      }
+    ],
+    "DescribeJobDefinitions": [
+      {
+        "input": {
+          "status": "ACTIVE"
+        },
+        "output": {
+          "jobDefinitions": [
+            {
+              "type": "container",
+              "containerProperties": {
+                "command": [
+                  "sleep",
+                  "60"
+                ],
+                "environment": [
+
+                ],
+                "image": "busybox",
+                "mountPoints": [
+
+                ],
+                "resourceRequirements": [
+                  {
+                    "type": "MEMORY",
+                    "value": "128"
+                  },
+                  {
+                    "type": "VCPU",
+                    "value": "1"
+                  }
+                ],
+                "ulimits": [
+
+                ],
+                "volumes": [
+
+                ]
+              },
+              "jobDefinitionArn": "arn:aws:batch:us-east-1:012345678910:job-definition/sleep60:1",
+              "jobDefinitionName": "sleep60",
+              "revision": 1,
+              "status": "ACTIVE"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes all of your active job definitions.",
+        "id": "to-describe-active-job-definitions-1481153895831",
+        "title": "To describe active job definitions"
+      }
+    ],
+    "DescribeJobQueues": [
+      {
+        "input": {
+          "jobQueues": [
+            "HighPriority"
+          ]
+        },
+        "output": {
+          "jobQueues": [
+            {
+              "computeEnvironmentOrder": [
+                {
+                  "computeEnvironment": "arn:aws:batch:us-east-1:012345678910:compute-environment/C4OnDemand",
+                  "order": 1
+                }
+              ],
+              "jobQueueArn": "arn:aws:batch:us-east-1:012345678910:job-queue/HighPriority",
+              "jobQueueName": "HighPriority",
+              "priority": 1,
+              "state": "ENABLED",
+              "status": "VALID",
+              "statusReason": "JobQueue Healthy"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the HighPriority job queue.",
+        "id": "to-describe-a-job-queue-1481153995804",
+        "title": "To describe a job queue"
+      }
+    ],
+    "DescribeJobs": [
+      {
+        "input": {
+          "jobs": [
+            "24fa2d7a-64c4-49d2-8b47-f8da4fbde8e9"
+          ]
+        },
+        "output": {
+          "jobs": [
+            {
+              "container": {
+                "command": [
+                  "sleep",
+                  "60"
+                ],
+                "containerInstanceArn": "arn:aws:ecs:us-east-1:012345678910:container-instance/5406d7cd-58bd-4b8f-9936-48d7c6b1526c",
+                "environment": [
+
+                ],
+                "exitCode": 0,
+                "image": "busybox",
+                "memory": 128,
+                "mountPoints": [
+
+                ],
+                "ulimits": [
+
+                ],
+                "vcpus": 1,
+                "volumes": [
+
+                ]
+              },
+              "createdAt": 1480460782010,
+              "dependsOn": [
+
+              ],
+              "jobDefinition": "sleep60",
+              "jobId": "24fa2d7a-64c4-49d2-8b47-f8da4fbde8e9",
+              "jobName": "example",
+              "jobQueue": "arn:aws:batch:us-east-1:012345678910:job-queue/HighPriority",
+              "parameters": {
+              },
+              "startedAt": 1480460816500,
+              "status": "SUCCEEDED",
+              "stoppedAt": 1480460880699
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes a job with the specified job ID.",
+        "id": "to-describe-a-specific-job-1481154090490",
+        "title": "To describe a specific job"
+      }
+    ],
+    "ListJobs": [
+      {
+        "input": {
+          "jobQueue": "HighPriority"
+        },
+        "output": {
+          "jobSummaryList": [
+            {
+              "jobId": "e66ff5fd-a1ff-4640-b1a2-0b0a142f49bb",
+              "jobName": "example"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example lists the running jobs in the HighPriority job queue.",
+        "id": "to-list-running-jobs-1481154202164",
+        "title": "To list running jobs"
+      },
+      {
+        "input": {
+          "jobQueue": "HighPriority",
+          "jobStatus": "SUBMITTED"
+        },
+        "output": {
+          "jobSummaryList": [
+            {
+              "jobId": "68f0c163-fbd4-44e6-9fd1-25b14a434786",
+              "jobName": "example"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example lists jobs in the HighPriority job queue that are in the SUBMITTED job status.",
+        "id": "to-list-submitted-jobs-1481154251623",
+        "title": "To list submitted jobs"
+      }
+    ],
+    "ListTagsForResource": [
+      {
+        "input": {
+          "resourceArn": "arn:aws:batch:us-east-1:123456789012:job-definition/sleep30:1"
+        },
+        "output": {
+          "tags": {
+            "Department": "Engineering",
+            "Stage": "Alpha",
+            "User": "JaneDoe"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This demonstrates calling the ListTagsForResource action.",
+        "id": "listtagsforresource-example-1591293003710",
+        "title": "ListTagsForResource Example"
+      }
+    ],
+    "RegisterJobDefinition": [
+      {
+        "input": {
+          "type": "container",
+          "containerProperties": {
+            "command": [
+              "sleep",
+              "10"
+            ],
+            "image": "busybox",
+            "resourceRequirements": [
+              {
+                "type": "MEMORY",
+                "value": "128"
+              },
+              {
+                "type": "VCPU",
+                "value": "1"
+              }
+            ]
+          },
+          "jobDefinitionName": "sleep10"
+        },
+        "output": {
+          "jobDefinitionArn": "arn:aws:batch:us-east-1:012345678910:job-definition/sleep10:1",
+          "jobDefinitionName": "sleep10",
+          "revision": 1
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example registers a job definition for a simple container job.",
+        "id": "to-register-a-job-definition-1481154325325",
+        "title": "To register a job definition"
+      },
+      {
+        "input": {
+          "type": "container",
+          "containerProperties": {
+            "command": [
+              "sleep",
+              "30"
+            ],
+            "image": "busybox",
+            "resourceRequirements": [
+              {
+                "type": "MEMORY",
+                "value": "128"
+              },
+              {
+                "type": "VCPU",
+                "value": "1"
+              }
+            ]
+          },
+          "jobDefinitionName": "sleep30",
+          "tags": {
+            "Department": "Engineering",
+            "User": "JaneDoe"
+          }
+        },
+        "output": {
+          "jobDefinitionArn": "arn:aws:batch:us-east-1:012345678910:job-definition/sleep30:1",
+          "jobDefinitionName": "sleep30",
+          "revision": 1
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This demonstrates calling the RegisterJobDefinition action, including tags.",
+        "id": "registerjobdefinition-with-tags-1591290509028",
+        "title": "RegisterJobDefinition with tags"
+      }
+    ],
+    "SubmitJob": [
+      {
+        "input": {
+          "jobDefinition": "sleep60",
+          "jobName": "example",
+          "jobQueue": "HighPriority"
+        },
+        "output": {
+          "jobId": "876da822-4198-45f2-a252-6cea32512ea8",
+          "jobName": "example"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example submits a simple container job called example to the HighPriority job queue.",
+        "id": "to-submit-a-job-to-a-queue-1481154481673",
+        "title": "To submit a job to a queue"
+      }
+    ],
+    "TagResource": [
+      {
+        "input": {
+          "resourceArn": "arn:aws:batch:us-east-1:123456789012:job-definition/sleep30:1",
+          "tags": {
+            "Stage": "Alpha"
+          }
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This demonstrates calling the TagResource action.",
+        "id": "tagresource-example-1591291959952",
+        "title": "TagResource Example"
+      }
+    ],
+    "TerminateJob": [
+      {
+        "input": {
+          "jobId": "61e743ed-35e4-48da-b2de-5c8333821c84",
+          "reason": "Terminating job."
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example terminates a job with the specified job ID.",
+        "id": "to-terminate-a-job-1481154558276",
+        "title": "To terminate a job"
+      }
+    ],
+    "UntagResource": [
+      {
+        "input": {
+          "resourceArn": "arn:aws:batch:us-east-1:123456789012:job-definition/sleep30:1",
+          "tagKeys": [
+            "Stage"
+          ]
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This demonstrates calling the UntagResource action.",
+        "id": "untagresource-example-1591292811042",
+        "title": "UntagResource Example"
+      }
+    ],
+    "UpdateComputeEnvironment": [
+      {
+        "input": {
+          "computeEnvironment": "P2OnDemand",
+          "state": "DISABLED"
+        },
+        "output": {
+          "computeEnvironmentArn": "arn:aws:batch:us-east-1:012345678910:compute-environment/P2OnDemand",
+          "computeEnvironmentName": "P2OnDemand"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example disables the P2OnDemand compute environment so it can be deleted.",
+        "id": "to-update-a-compute-environment-1481154702731",
+        "title": "To update a compute environment"
+      }
+    ],
+    "UpdateJobQueue": [
+      {
+        "input": {
+          "jobQueue": "GPGPU",
+          "state": "DISABLED"
+        },
+        "output": {
+          "jobQueueArn": "arn:aws:batch:us-east-1:012345678910:job-queue/GPGPU",
+          "jobQueueName": "GPGPU"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example disables a job queue so that it can be deleted.",
+        "id": "to-update-a-job-queue-1481154806981",
+        "title": "To update a job queue"
+      }
+    ]
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/batch/2016-08-10/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/batch/2016-08-10/paginators-1.json
new file mode 100644
index 00000000..0181c2c8
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/batch/2016-08-10/paginators-1.json
@@ -0,0 +1,46 @@
+{
+  "pagination": {
+    "DescribeComputeEnvironments": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "computeEnvironments"
+    },
+    "DescribeJobDefinitions": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "jobDefinitions"
+    },
+    "DescribeJobQueues": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "jobQueues"
+    },
+    "ListJobs": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "jobSummaryList"
+    },
+    "ListSchedulingPolicies": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "schedulingPolicies"
+    },
+    "ListConsumableResources": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "consumableResources"
+    },
+    "ListJobsByConsumableResource": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "jobs"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/batch/2016-08-10/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/batch/2016-08-10/service-2.json.gz
new file mode 100644
index 00000000..5a71427b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/batch/2016-08-10/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/bcm-data-exports/2023-11-26/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/bcm-data-exports/2023-11-26/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..2a7e1cc4
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/bcm-data-exports/2023-11-26/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/bcm-data-exports/2023-11-26/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/bcm-data-exports/2023-11-26/paginators-1.json
new file mode 100644
index 00000000..3d03805c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/bcm-data-exports/2023-11-26/paginators-1.json
@@ -0,0 +1,22 @@
+{
+  "pagination": {
+    "ListExecutions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Executions"
+    },
+    "ListExports": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Exports"
+    },
+    "ListTables": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Tables"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/bcm-data-exports/2023-11-26/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/bcm-data-exports/2023-11-26/service-2.json.gz
new file mode 100644
index 00000000..89daa054
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/bcm-data-exports/2023-11-26/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/bcm-pricing-calculator/2024-06-19/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/bcm-pricing-calculator/2024-06-19/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..dfdc9c54
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/bcm-pricing-calculator/2024-06-19/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/bcm-pricing-calculator/2024-06-19/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/bcm-pricing-calculator/2024-06-19/paginators-1.json
new file mode 100644
index 00000000..678b04a9
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/bcm-pricing-calculator/2024-06-19/paginators-1.json
@@ -0,0 +1,64 @@
+{
+  "pagination": {
+    "ListBillEstimateCommitments": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListBillEstimateInputCommitmentModifications": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListBillEstimateInputUsageModifications": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListBillEstimateLineItems": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListBillEstimates": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListBillScenarioCommitmentModifications": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListBillScenarioUsageModifications": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListBillScenarios": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListWorkloadEstimateUsage": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListWorkloadEstimates": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/bcm-pricing-calculator/2024-06-19/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/bcm-pricing-calculator/2024-06-19/service-2.json.gz
new file mode 100644
index 00000000..03560d81
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/bcm-pricing-calculator/2024-06-19/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/bcm-pricing-calculator/2024-06-19/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/bcm-pricing-calculator/2024-06-19/waiters-2.json
new file mode 100644
index 00000000..13f60ee6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/bcm-pricing-calculator/2024-06-19/waiters-2.json
@@ -0,0 +1,5 @@
+{
+  "version": 2,
+  "waiters": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/bedrock-agent-runtime/2023-07-26/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/bedrock-agent-runtime/2023-07-26/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..68b4f4bf
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/bedrock-agent-runtime/2023-07-26/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/bedrock-agent-runtime/2023-07-26/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/bedrock-agent-runtime/2023-07-26/paginators-1.json
new file mode 100644
index 00000000..b31af0b7
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/bedrock-agent-runtime/2023-07-26/paginators-1.json
@@ -0,0 +1,38 @@
+{
+  "pagination": {
+    "Retrieve": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "retrievalResults"
+    },
+    "GetAgentMemory": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxItems",
+      "result_key": "memoryContents"
+    },
+    "Rerank": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "results"
+    },
+    "ListInvocationSteps": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "invocationStepSummaries"
+    },
+    "ListInvocations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "invocationSummaries"
+    },
+    "ListSessions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "sessionSummaries"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/bedrock-agent-runtime/2023-07-26/paginators-1.sdk-extras.json b/.venv/lib/python3.12/site-packages/botocore/data/bedrock-agent-runtime/2023-07-26/paginators-1.sdk-extras.json
new file mode 100644
index 00000000..30da00d1
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/bedrock-agent-runtime/2023-07-26/paginators-1.sdk-extras.json
@@ -0,0 +1,12 @@
+{
+  "version": 1.0,
+  "merge": {
+    "pagination": {
+      "Retrieve": {
+        "non_aggregate_keys": [
+          "guardrailAction"
+        ]
+      }
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/bedrock-agent-runtime/2023-07-26/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/bedrock-agent-runtime/2023-07-26/service-2.json.gz
new file mode 100644
index 00000000..5e96ac95
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/bedrock-agent-runtime/2023-07-26/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/bedrock-agent/2023-06-05/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/bedrock-agent/2023-06-05/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..05404a61
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/bedrock-agent/2023-06-05/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/bedrock-agent/2023-06-05/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/bedrock-agent/2023-06-05/paginators-1.json
new file mode 100644
index 00000000..0daea1de
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/bedrock-agent/2023-06-05/paginators-1.json
@@ -0,0 +1,88 @@
+{
+  "pagination": {
+    "ListAgentActionGroups": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "actionGroupSummaries"
+    },
+    "ListAgentAliases": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "agentAliasSummaries"
+    },
+    "ListAgentKnowledgeBases": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "agentKnowledgeBaseSummaries"
+    },
+    "ListAgentVersions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "agentVersionSummaries"
+    },
+    "ListAgents": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "agentSummaries"
+    },
+    "ListDataSources": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "dataSourceSummaries"
+    },
+    "ListIngestionJobs": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "ingestionJobSummaries"
+    },
+    "ListKnowledgeBases": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "knowledgeBaseSummaries"
+    },
+    "ListFlowAliases": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "flowAliasSummaries"
+    },
+    "ListFlowVersions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "flowVersionSummaries"
+    },
+    "ListFlows": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "flowSummaries"
+    },
+    "ListPrompts": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "promptSummaries"
+    },
+    "ListKnowledgeBaseDocuments": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "documentDetails"
+    },
+    "ListAgentCollaborators": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "agentCollaboratorSummaries"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/bedrock-agent/2023-06-05/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/bedrock-agent/2023-06-05/service-2.json.gz
new file mode 100644
index 00000000..d6e0deaa
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/bedrock-agent/2023-06-05/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/bedrock-data-automation-runtime/2024-06-13/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/bedrock-data-automation-runtime/2024-06-13/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..18b11409
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/bedrock-data-automation-runtime/2024-06-13/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/bedrock-data-automation-runtime/2024-06-13/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/bedrock-data-automation-runtime/2024-06-13/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/bedrock-data-automation-runtime/2024-06-13/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/bedrock-data-automation-runtime/2024-06-13/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/bedrock-data-automation-runtime/2024-06-13/service-2.json.gz
new file mode 100644
index 00000000..f2196844
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/bedrock-data-automation-runtime/2024-06-13/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/bedrock-data-automation/2023-07-26/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/bedrock-data-automation/2023-07-26/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..0d2e59f4
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/bedrock-data-automation/2023-07-26/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/bedrock-data-automation/2023-07-26/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/bedrock-data-automation/2023-07-26/paginators-1.json
new file mode 100644
index 00000000..741799cc
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/bedrock-data-automation/2023-07-26/paginators-1.json
@@ -0,0 +1,16 @@
+{
+  "pagination": {
+    "ListBlueprints": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "blueprints"
+    },
+    "ListDataAutomationProjects": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "projects"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/bedrock-data-automation/2023-07-26/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/bedrock-data-automation/2023-07-26/service-2.json.gz
new file mode 100644
index 00000000..d835fd66
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/bedrock-data-automation/2023-07-26/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/bedrock-runtime/2023-09-30/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/bedrock-runtime/2023-09-30/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..cfd8e67c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/bedrock-runtime/2023-09-30/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/bedrock-runtime/2023-09-30/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/bedrock-runtime/2023-09-30/paginators-1.json
new file mode 100644
index 00000000..b6c3d8b5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/bedrock-runtime/2023-09-30/paginators-1.json
@@ -0,0 +1,10 @@
+{
+  "pagination": {
+    "ListAsyncInvokes": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "asyncInvokeSummaries"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/bedrock-runtime/2023-09-30/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/bedrock-runtime/2023-09-30/service-2.json.gz
new file mode 100644
index 00000000..805d228b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/bedrock-runtime/2023-09-30/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/bedrock-runtime/2023-09-30/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/bedrock-runtime/2023-09-30/waiters-2.json
new file mode 100644
index 00000000..4b20636a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/bedrock-runtime/2023-09-30/waiters-2.json
@@ -0,0 +1,5 @@
+{
+  "version": 2,
+  "waiters": {
+  }
+}
\ No newline at end of file
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/bedrock/2023-04-20/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/bedrock/2023-04-20/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..4ed3145d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/bedrock/2023-04-20/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/bedrock/2023-04-20/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/bedrock/2023-04-20/paginators-1.json
new file mode 100644
index 00000000..561133f3
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/bedrock/2023-04-20/paginators-1.json
@@ -0,0 +1,76 @@
+{
+  "pagination": {
+    "ListCustomModels": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "modelSummaries"
+    },
+    "ListModelCustomizationJobs": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "modelCustomizationJobSummaries"
+    },
+    "ListProvisionedModelThroughputs": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "provisionedModelSummaries"
+    },
+    "ListEvaluationJobs": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "jobSummaries"
+    },
+    "ListGuardrails": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "guardrails"
+    },
+    "ListModelCopyJobs": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "modelCopyJobSummaries"
+    },
+    "ListModelInvocationJobs": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "invocationJobSummaries"
+    },
+    "ListImportedModels": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "modelSummaries"
+    },
+    "ListModelImportJobs": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "modelImportJobSummaries"
+    },
+    "ListInferenceProfiles": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "inferenceProfileSummaries"
+    },
+    "ListMarketplaceModelEndpoints": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "marketplaceModelEndpoints"
+    },
+    "ListPromptRouters": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "promptRouterSummaries"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/bedrock/2023-04-20/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/bedrock/2023-04-20/service-2.json.gz
new file mode 100644
index 00000000..0f23ac1e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/bedrock/2023-04-20/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/bedrock/2023-04-20/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/bedrock/2023-04-20/waiters-2.json
new file mode 100644
index 00000000..4b20636a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/bedrock/2023-04-20/waiters-2.json
@@ -0,0 +1,5 @@
+{
+  "version": 2,
+  "waiters": {
+  }
+}
\ No newline at end of file
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/billing/2023-09-07/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/billing/2023-09-07/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..cfb28e3d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/billing/2023-09-07/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/billing/2023-09-07/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/billing/2023-09-07/paginators-1.json
new file mode 100644
index 00000000..bc778918
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/billing/2023-09-07/paginators-1.json
@@ -0,0 +1,16 @@
+{
+  "pagination": {
+    "ListBillingViews": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "billingViews"
+    },
+    "ListSourceViewsForBillingView": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "sourceViews"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/billing/2023-09-07/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/billing/2023-09-07/service-2.json.gz
new file mode 100644
index 00000000..21bfbe09
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/billing/2023-09-07/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/billing/2023-09-07/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/billing/2023-09-07/waiters-2.json
new file mode 100644
index 00000000..13f60ee6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/billing/2023-09-07/waiters-2.json
@@ -0,0 +1,5 @@
+{
+  "version": 2,
+  "waiters": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/billingconductor/2021-07-30/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/billingconductor/2021-07-30/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..0a4cac26
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/billingconductor/2021-07-30/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/billingconductor/2021-07-30/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/billingconductor/2021-07-30/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/billingconductor/2021-07-30/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/billingconductor/2021-07-30/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/billingconductor/2021-07-30/paginators-1.json
new file mode 100644
index 00000000..2ca4d75f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/billingconductor/2021-07-30/paginators-1.json
@@ -0,0 +1,80 @@
+{
+  "pagination": {
+    "ListAccountAssociations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "LinkedAccounts"
+    },
+    "ListBillingGroupCostReports": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "BillingGroupCostReports"
+    },
+    "ListBillingGroups": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "BillingGroups"
+    },
+    "ListCustomLineItems": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "CustomLineItems"
+    },
+    "ListPricingPlans": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "non_aggregate_keys": [
+        "BillingPeriod"
+      ],
+      "output_token": "NextToken",
+      "result_key": "PricingPlans"
+    },
+    "ListPricingPlansAssociatedWithPricingRule": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "non_aggregate_keys": [
+        "BillingPeriod",
+        "PricingRuleArn"
+      ],
+      "output_token": "NextToken",
+      "result_key": "PricingPlanArns"
+    },
+    "ListPricingRules": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "non_aggregate_keys": [
+        "BillingPeriod"
+      ],
+      "output_token": "NextToken",
+      "result_key": "PricingRules"
+    },
+    "ListPricingRulesAssociatedToPricingPlan": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "non_aggregate_keys": [
+        "BillingPeriod",
+        "PricingPlanArn"
+      ],
+      "output_token": "NextToken",
+      "result_key": "PricingRuleArns"
+    },
+    "ListResourcesAssociatedToCustomLineItem": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "non_aggregate_keys": [
+        "Arn"
+      ],
+      "output_token": "NextToken",
+      "result_key": "AssociatedResources"
+    },
+    "ListCustomLineItemVersions": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "CustomLineItemVersions"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/billingconductor/2021-07-30/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/billingconductor/2021-07-30/service-2.json.gz
new file mode 100644
index 00000000..2fbed575
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/billingconductor/2021-07-30/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/billingconductor/2021-07-30/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/billingconductor/2021-07-30/waiters-2.json
new file mode 100644
index 00000000..ee5023dc
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/billingconductor/2021-07-30/waiters-2.json
@@ -0,0 +1,4 @@
+{
+  "version": 2,
+  "waiters": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/braket/2019-09-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/braket/2019-09-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..04fb0722
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/braket/2019-09-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/braket/2019-09-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/braket/2019-09-01/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/braket/2019-09-01/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/braket/2019-09-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/braket/2019-09-01/paginators-1.json
new file mode 100644
index 00000000..a5be3333
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/braket/2019-09-01/paginators-1.json
@@ -0,0 +1,22 @@
+{
+  "pagination": {
+    "SearchDevices": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "devices"
+    },
+    "SearchQuantumTasks": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "quantumTasks"
+    },
+    "SearchJobs": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "jobs"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/braket/2019-09-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/braket/2019-09-01/service-2.json.gz
new file mode 100644
index 00000000..19426198
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/braket/2019-09-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/budgets/2016-10-20/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/budgets/2016-10-20/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..dcab930b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/budgets/2016-10-20/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/budgets/2016-10-20/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/budgets/2016-10-20/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/budgets/2016-10-20/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/budgets/2016-10-20/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/budgets/2016-10-20/paginators-1.json
new file mode 100644
index 00000000..15f7a63e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/budgets/2016-10-20/paginators-1.json
@@ -0,0 +1,52 @@
+{
+  "pagination": {
+    "DescribeBudgets": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Budgets"
+    },
+    "DescribeNotificationsForBudget": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Notifications"
+    },
+    "DescribeSubscribersForNotification": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Subscribers"
+    },
+    "DescribeBudgetPerformanceHistory": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "BudgetPerformanceHistory"
+    },
+    "DescribeBudgetActionHistories": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ActionHistories"
+    },
+    "DescribeBudgetActionsForAccount": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Actions"
+    },
+    "DescribeBudgetActionsForBudget": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Actions"
+    },
+    "DescribeBudgetNotificationsForAccount": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "BudgetNotificationsForAccount"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/budgets/2016-10-20/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/budgets/2016-10-20/service-2.json.gz
new file mode 100644
index 00000000..46e3fd3b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/budgets/2016-10-20/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ce/2017-10-25/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ce/2017-10-25/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..5d2f4fa8
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ce/2017-10-25/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ce/2017-10-25/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/ce/2017-10-25/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ce/2017-10-25/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ce/2017-10-25/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/ce/2017-10-25/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ce/2017-10-25/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ce/2017-10-25/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ce/2017-10-25/service-2.json.gz
new file mode 100644
index 00000000..9c54ca1b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ce/2017-10-25/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/chatbot/2017-10-11/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/chatbot/2017-10-11/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..74df08b4
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/chatbot/2017-10-11/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/chatbot/2017-10-11/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/chatbot/2017-10-11/paginators-1.json
new file mode 100644
index 00000000..5e4b7646
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/chatbot/2017-10-11/paginators-1.json
@@ -0,0 +1,58 @@
+{
+  "pagination": {
+    "DescribeChimeWebhookConfigurations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "WebhookConfigurations"
+    },
+    "DescribeSlackChannelConfigurations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "SlackChannelConfigurations"
+    },
+    "DescribeSlackUserIdentities": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "SlackUserIdentities"
+    },
+    "DescribeSlackWorkspaces": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "SlackWorkspaces"
+    },
+    "ListMicrosoftTeamsChannelConfigurations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "TeamChannelConfigurations"
+    },
+    "ListMicrosoftTeamsConfiguredTeams": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ConfiguredTeams"
+    },
+    "ListMicrosoftTeamsUserIdentities": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "TeamsUserIdentities"
+    },
+    "ListAssociations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Associations"
+    },
+    "ListCustomActions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "CustomActions"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/chatbot/2017-10-11/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/chatbot/2017-10-11/service-2.json.gz
new file mode 100644
index 00000000..68216ef8
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/chatbot/2017-10-11/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-identity/2021-04-20/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-identity/2021-04-20/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..4ce6a564
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-identity/2021-04-20/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-identity/2021-04-20/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-identity/2021-04-20/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-identity/2021-04-20/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-identity/2021-04-20/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-identity/2021-04-20/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-identity/2021-04-20/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-identity/2021-04-20/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-identity/2021-04-20/service-2.json.gz
new file mode 100644
index 00000000..35976f03
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-identity/2021-04-20/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-media-pipelines/2021-07-15/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-media-pipelines/2021-07-15/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..7da722bf
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-media-pipelines/2021-07-15/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-media-pipelines/2021-07-15/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-media-pipelines/2021-07-15/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-media-pipelines/2021-07-15/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-media-pipelines/2021-07-15/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-media-pipelines/2021-07-15/service-2.json.gz
new file mode 100644
index 00000000..7f85ced2
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-media-pipelines/2021-07-15/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-meetings/2021-07-15/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-meetings/2021-07-15/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..28948655
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-meetings/2021-07-15/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-meetings/2021-07-15/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-meetings/2021-07-15/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-meetings/2021-07-15/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-meetings/2021-07-15/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-meetings/2021-07-15/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-meetings/2021-07-15/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-meetings/2021-07-15/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-meetings/2021-07-15/service-2.json.gz
new file mode 100644
index 00000000..9858eb2e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-meetings/2021-07-15/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-messaging/2021-05-15/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-messaging/2021-05-15/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..753acce5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-messaging/2021-05-15/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-messaging/2021-05-15/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-messaging/2021-05-15/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-messaging/2021-05-15/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-messaging/2021-05-15/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-messaging/2021-05-15/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-messaging/2021-05-15/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-messaging/2021-05-15/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-messaging/2021-05-15/service-2.json.gz
new file mode 100644
index 00000000..98df0f80
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-messaging/2021-05-15/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-voice/2022-08-03/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-voice/2022-08-03/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..41608087
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-voice/2022-08-03/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-voice/2022-08-03/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-voice/2022-08-03/paginators-1.json
new file mode 100644
index 00000000..648f71ee
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-voice/2022-08-03/paginators-1.json
@@ -0,0 +1,16 @@
+{
+  "pagination": {
+    "ListSipMediaApplications": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "SipMediaApplications"
+    },
+    "ListSipRules": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "SipRules"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-voice/2022-08-03/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-voice/2022-08-03/service-2.json.gz
new file mode 100644
index 00000000..6b618ab0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/chime-sdk-voice/2022-08-03/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/chime/2018-05-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/chime/2018-05-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..812c317f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/chime/2018-05-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/chime/2018-05-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/chime/2018-05-01/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/chime/2018-05-01/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/chime/2018-05-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/chime/2018-05-01/paginators-1.json
new file mode 100644
index 00000000..617b1149
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/chime/2018-05-01/paginators-1.json
@@ -0,0 +1,16 @@
+{
+  "pagination": {
+    "ListAccounts": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Accounts"
+    },
+    "ListUsers": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Users"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/chime/2018-05-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/chime/2018-05-01/service-2.json.gz
new file mode 100644
index 00000000..53f084ee
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/chime/2018-05-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cleanrooms/2022-02-17/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cleanrooms/2022-02-17/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..c3e0b1a4
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cleanrooms/2022-02-17/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cleanrooms/2022-02-17/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cleanrooms/2022-02-17/paginators-1.json
new file mode 100644
index 00000000..cfead018
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cleanrooms/2022-02-17/paginators-1.json
@@ -0,0 +1,118 @@
+{
+  "pagination": {
+    "ListCollaborations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "collaborationList"
+    },
+    "ListConfiguredTableAssociations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "configuredTableAssociationSummaries"
+    },
+    "ListConfiguredTables": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "configuredTableSummaries"
+    },
+    "ListMembers": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "memberSummaries"
+    },
+    "ListMemberships": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "membershipSummaries"
+    },
+    "ListProtectedQueries": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "protectedQueries"
+    },
+    "ListSchemas": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "schemaSummaries"
+    },
+    "ListAnalysisTemplates": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "analysisTemplateSummaries"
+    },
+    "ListCollaborationAnalysisTemplates": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "collaborationAnalysisTemplateSummaries"
+    },
+    "ListCollaborationConfiguredAudienceModelAssociations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "collaborationConfiguredAudienceModelAssociationSummaries"
+    },
+    "ListCollaborationPrivacyBudgetTemplates": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "collaborationPrivacyBudgetTemplateSummaries"
+    },
+    "ListCollaborationPrivacyBudgets": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "collaborationPrivacyBudgetSummaries"
+    },
+    "ListConfiguredAudienceModelAssociations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "configuredAudienceModelAssociationSummaries"
+    },
+    "ListPrivacyBudgetTemplates": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "privacyBudgetTemplateSummaries"
+    },
+    "ListPrivacyBudgets": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "privacyBudgetSummaries"
+    },
+    "ListCollaborationIdNamespaceAssociations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "collaborationIdNamespaceAssociationSummaries"
+    },
+    "ListIdMappingTables": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "idMappingTableSummaries"
+    },
+    "ListIdNamespaceAssociations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "idNamespaceAssociationSummaries"
+    },
+    "ListProtectedJobs": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "protectedJobs"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cleanrooms/2022-02-17/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cleanrooms/2022-02-17/service-2.json.gz
new file mode 100644
index 00000000..7d7ac0db
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cleanrooms/2022-02-17/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cleanrooms/2022-02-17/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/cleanrooms/2022-02-17/waiters-2.json
new file mode 100644
index 00000000..13f60ee6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cleanrooms/2022-02-17/waiters-2.json
@@ -0,0 +1,5 @@
+{
+  "version": 2,
+  "waiters": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cleanroomsml/2023-09-06/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cleanroomsml/2023-09-06/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..7522bb06
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cleanroomsml/2023-09-06/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cleanroomsml/2023-09-06/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cleanroomsml/2023-09-06/paginators-1.json
new file mode 100644
index 00000000..79215c55
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cleanroomsml/2023-09-06/paginators-1.json
@@ -0,0 +1,94 @@
+{
+  "pagination": {
+    "ListAudienceExportJobs": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "audienceExportJobs"
+    },
+    "ListAudienceGenerationJobs": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "audienceGenerationJobs"
+    },
+    "ListAudienceModels": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "audienceModels"
+    },
+    "ListConfiguredAudienceModels": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "configuredAudienceModels"
+    },
+    "ListTrainingDatasets": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "trainingDatasets"
+    },
+    "ListCollaborationConfiguredModelAlgorithmAssociations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "collaborationConfiguredModelAlgorithmAssociations"
+    },
+    "ListCollaborationMLInputChannels": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "collaborationMLInputChannelsList"
+    },
+    "ListCollaborationTrainedModelExportJobs": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "collaborationTrainedModelExportJobs"
+    },
+    "ListCollaborationTrainedModelInferenceJobs": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "collaborationTrainedModelInferenceJobs"
+    },
+    "ListCollaborationTrainedModels": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "collaborationTrainedModels"
+    },
+    "ListConfiguredModelAlgorithmAssociations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "configuredModelAlgorithmAssociations"
+    },
+    "ListConfiguredModelAlgorithms": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "configuredModelAlgorithms"
+    },
+    "ListMLInputChannels": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "mlInputChannelsList"
+    },
+    "ListTrainedModelInferenceJobs": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "trainedModelInferenceJobs"
+    },
+    "ListTrainedModels": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "trainedModels"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cleanroomsml/2023-09-06/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cleanroomsml/2023-09-06/service-2.json.gz
new file mode 100644
index 00000000..ca68c9fa
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cleanroomsml/2023-09-06/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cleanroomsml/2023-09-06/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/cleanroomsml/2023-09-06/waiters-2.json
new file mode 100644
index 00000000..13f60ee6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cleanroomsml/2023-09-06/waiters-2.json
@@ -0,0 +1,5 @@
+{
+  "version": 2,
+  "waiters": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloud9/2017-09-23/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloud9/2017-09-23/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..dddb787c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloud9/2017-09-23/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloud9/2017-09-23/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cloud9/2017-09-23/examples-1.json
new file mode 100644
index 00000000..fdef2700
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloud9/2017-09-23/examples-1.json
@@ -0,0 +1,315 @@
+{
+  "version": "1.0",
+  "examples": {
+    "CreateEnvironmentEC2": [
+      {
+        "input": {
+          "name": "my-demo-environment",
+          "automaticStopTimeMinutes": 60,
+          "description": "This is my demonstration environment.",
+          "instanceType": "t2.micro",
+          "ownerArn": "arn:aws:iam::123456789012:user/MyDemoUser",
+          "subnetId": "subnet-6300cd1b"
+        },
+        "output": {
+          "environmentId": "8d9967e2f0624182b74e7690ad69ebEX"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "",
+        "id": "createenvironmentec2-1516821730547",
+        "title": "CreateEnvironmentEC2"
+      }
+    ],
+    "CreateEnvironmentMembership": [
+      {
+        "input": {
+          "environmentId": "8d9967e2f0624182b74e7690ad69ebEX",
+          "permissions": "read-write",
+          "userArn": "arn:aws:iam::123456789012:user/AnotherDemoUser"
+        },
+        "output": {
+          "membership": {
+            "environmentId": "8d9967e2f0624182b74e7690ad69ebEX",
+            "permissions": "read-write",
+            "userArn": "arn:aws:iam::123456789012:user/AnotherDemoUser",
+            "userId": "AIDAJ3BA6O2FMJWCWXHEX"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "",
+        "id": "createenvironmentmembership-1516822583452",
+        "title": "CreateEnvironmentMembership"
+      }
+    ],
+    "DeleteEnvironment": [
+      {
+        "input": {
+          "environmentId": "8d9967e2f0624182b74e7690ad69ebEX"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "",
+        "id": "deleteenvironment-1516822903149",
+        "title": "DeleteEnvironment"
+      }
+    ],
+    "DeleteEnvironmentMembership": [
+      {
+        "input": {
+          "environmentId": "8d9967e2f0624182b74e7690ad69ebEX",
+          "userArn": "arn:aws:iam::123456789012:user/AnotherDemoUser"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "",
+        "id": "deleteenvironmentmembership-1516822975655",
+        "title": "DeleteEnvironmentMembership"
+      }
+    ],
+    "DescribeEnvironmentMemberships": [
+      {
+        "input": {
+          "environmentId": "8d9967e2f0624182b74e7690ad69ebEX"
+        },
+        "output": {
+          "memberships": [
+            {
+              "environmentId": "8d9967e2f0624182b74e7690ad69ebEX",
+              "permissions": "read-write",
+              "userArn": "arn:aws:iam::123456789012:user/AnotherDemoUser",
+              "userId": "AIDAJ3BA6O2FMJWCWXHEX"
+            },
+            {
+              "environmentId": "8d9967e2f0624182b74e7690ad69ebEX",
+              "permissions": "owner",
+              "userArn": "arn:aws:iam::123456789012:user/MyDemoUser",
+              "userId": "AIDAJNUEDQAQWFELJDLEX"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example gets information about all of the environment members for the specified development environment.",
+        "id": "describeenvironmentmemberships1-1516823070453",
+        "title": "DescribeEnvironmentMemberships1"
+      },
+      {
+        "input": {
+          "environmentId": "8d9967e2f0624182b74e7690ad69ebEX",
+          "permissions": [
+            "owner"
+          ]
+        },
+        "output": {
+          "memberships": [
+            {
+              "environmentId": "8d9967e2f0624182b74e7690ad69ebEX",
+              "permissions": "owner",
+              "userArn": "arn:aws:iam::123456789012:user/MyDemoUser",
+              "userId": "AIDAJNUEDQAQWFELJDLEX"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example gets information about the owner of the specified development environment.",
+        "id": "describeenvironmentmemberships2-1516823191355",
+        "title": "DescribeEnvironmentMemberships2"
+      },
+      {
+        "input": {
+          "userArn": "arn:aws:iam::123456789012:user/MyDemoUser"
+        },
+        "output": {
+          "memberships": [
+            {
+              "environmentId": "10a75714bd494714929e7f5ec4125aEX",
+              "lastAccess": "2018-01-19T11:06:13Z",
+              "permissions": "owner",
+              "userArn": "arn:aws:iam::123456789012:user/MyDemoUser",
+              "userId": "AIDAJNUEDQAQWFELJDLEX"
+            },
+            {
+              "environmentId": "12bfc3cd537f41cb9776f8af5525c9EX",
+              "lastAccess": "2018-01-19T11:39:19Z",
+              "permissions": "owner",
+              "userArn": "arn:aws:iam::123456789012:user/MyDemoUser",
+              "userId": "AIDAJNUEDQAQWFELJDLEX"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example gets development environment membership information for the specified user.",
+        "id": "describeenvironmentmemberships3-1516823268793",
+        "title": "DescribeEnvironmentMemberships3"
+      }
+    ],
+    "DescribeEnvironmentStatus": [
+      {
+        "input": {
+          "environmentId": "8d9967e2f0624182b74e7690ad69ebEX"
+        },
+        "output": {
+          "message": "Environment is ready to use",
+          "status": "ready"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "",
+        "id": "describeenvironmentstatus-1516823462133",
+        "title": "DescribeEnvironmentStatus"
+      }
+    ],
+    "DescribeEnvironments": [
+      {
+        "input": {
+          "environmentIds": [
+            "8d9967e2f0624182b74e7690ad69ebEX",
+            "349c86d4579e4e7298d500ff57a6b2EX"
+          ]
+        },
+        "output": {
+          "environments": [
+            {
+              "name": "my-demo-environment",
+              "type": "ec2",
+              "arn": "arn:aws:cloud9:us-east-2:123456789012:environment:8d9967e2f0624182b74e7690ad69ebEX",
+              "description": "This is my demonstration environment.",
+              "id": "8d9967e2f0624182b74e7690ad69ebEX",
+              "lifecycle": {
+                "status": "CREATED"
+              },
+              "ownerArn": "arn:aws:iam::123456789012:user/MyDemoUser"
+            },
+            {
+              "name": "another-demo-environment",
+              "type": "ssh",
+              "arn": "arn:aws:cloud9:us-east-2:123456789012:environment:349c86d4579e4e7298d500ff57a6b2EX",
+              "description": "",
+              "id": "349c86d4579e4e7298d500ff57a6b2EX",
+              "lifecycle": {
+                "status": "CREATED"
+              },
+              "ownerArn": "arn:aws:sts::123456789012:assumed-role/AnotherDemoUser/AnotherDemoUser"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "",
+        "id": "describeenvironments-1516823568291",
+        "title": "DescribeEnvironments"
+      }
+    ],
+    "ListEnvironments": [
+      {
+        "input": {
+        },
+        "output": {
+          "environmentIds": [
+            "349c86d4579e4e7298d500ff57a6b2EX",
+            "45a3da47af0840f2b0c0824f5ee232EX"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "",
+        "id": "listenvironments-1516823687205",
+        "title": "ListEnvironments"
+      }
+    ],
+    "UpdateEnvironment": [
+      {
+        "input": {
+          "name": "my-changed-demo-environment",
+          "description": "This is my changed demonstration environment.",
+          "environmentId": "8d9967e2f0624182b74e7690ad69ebEX"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "",
+        "id": "updateenvironment-1516823781910",
+        "title": "UpdateEnvironment"
+      }
+    ],
+    "UpdateEnvironmentMembership": [
+      {
+        "input": {
+          "environmentId": "8d9967e2f0624182b74e7690ad69ebEX",
+          "permissions": "read-only",
+          "userArn": "arn:aws:iam::123456789012:user/AnotherDemoUser"
+        },
+        "output": {
+          "membership": {
+            "environmentId": "8d9967e2f0624182b74e7690ad69eb31",
+            "permissions": "read-only",
+            "userArn": "arn:aws:iam::123456789012:user/AnotherDemoUser",
+            "userId": "AIDAJ3BA6O2FMJWCWXHEX"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "",
+        "id": "updateenvironmentmembership-1516823876645",
+        "title": "UpdateEnvironmentMembership"
+      }
+    ]
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloud9/2017-09-23/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cloud9/2017-09-23/paginators-1.json
new file mode 100644
index 00000000..1c4c2ff5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloud9/2017-09-23/paginators-1.json
@@ -0,0 +1,16 @@
+{
+  "pagination": {
+    "DescribeEnvironmentMemberships": {
+      "result_key": "memberships",
+      "output_token": "nextToken",
+      "input_token": "nextToken",
+      "limit_key": "maxResults"
+    },
+    "ListEnvironments": {
+      "result_key": "environmentIds",
+      "output_token": "nextToken",
+      "input_token": "nextToken",
+      "limit_key": "maxResults"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloud9/2017-09-23/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloud9/2017-09-23/service-2.json.gz
new file mode 100644
index 00000000..85b72dba
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloud9/2017-09-23/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudcontrol/2021-09-30/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudcontrol/2021-09-30/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..3d227cf1
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudcontrol/2021-09-30/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudcontrol/2021-09-30/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudcontrol/2021-09-30/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudcontrol/2021-09-30/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudcontrol/2021-09-30/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudcontrol/2021-09-30/paginators-1.json
new file mode 100644
index 00000000..14380b07
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudcontrol/2021-09-30/paginators-1.json
@@ -0,0 +1,16 @@
+{
+  "pagination": {
+    "ListResourceRequests": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ResourceRequestStatusSummaries"
+    },
+    "ListResources": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ResourceDescriptions"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudcontrol/2021-09-30/paginators-1.sdk-extras.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudcontrol/2021-09-30/paginators-1.sdk-extras.json
new file mode 100644
index 00000000..d0d47fb7
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudcontrol/2021-09-30/paginators-1.sdk-extras.json
@@ -0,0 +1,12 @@
+{
+    "version": 1.0,
+    "merge": {
+	"pagination": {
+	    "ListResources": {
+		"non_aggregate_keys": [
+		    "TypeName"
+		]
+	    }
+	}
+    }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudcontrol/2021-09-30/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudcontrol/2021-09-30/service-2.json.gz
new file mode 100644
index 00000000..c92f0d07
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudcontrol/2021-09-30/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudcontrol/2021-09-30/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudcontrol/2021-09-30/waiters-2.json
new file mode 100644
index 00000000..e5f82acb
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudcontrol/2021-09-30/waiters-2.json
@@ -0,0 +1,27 @@
+{
+  "version" : 2,
+  "waiters" : {
+    "ResourceRequestSuccess" : {
+      "description" : "Wait until resource operation request is successful",
+      "delay" : 5,
+      "maxAttempts" : 24,
+      "operation" : "GetResourceRequestStatus",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "ProgressEvent.OperationStatus",
+        "state" : "success",
+        "expected" : "SUCCESS"
+      }, {
+        "matcher" : "path",
+        "argument" : "ProgressEvent.OperationStatus",
+        "state" : "failure",
+        "expected" : "FAILED"
+      }, {
+        "matcher" : "path",
+        "argument" : "ProgressEvent.OperationStatus",
+        "state" : "failure",
+        "expected" : "CANCEL_COMPLETE"
+      } ]
+    }
+  }
+}
\ No newline at end of file
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/clouddirectory/2016-05-10/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/clouddirectory/2016-05-10/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..2ad4ee63
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/clouddirectory/2016-05-10/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/clouddirectory/2016-05-10/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/clouddirectory/2016-05-10/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/clouddirectory/2016-05-10/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/clouddirectory/2016-05-10/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/clouddirectory/2016-05-10/paginators-1.json
new file mode 100644
index 00000000..22cc439e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/clouddirectory/2016-05-10/paginators-1.json
@@ -0,0 +1,100 @@
+{
+  "pagination": {
+    "ListObjectParentPaths": {
+      "result_key": "PathToObjectIdentifiersList",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListFacetNames": {
+      "result_key": "FacetNames",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListPublishedSchemaArns": {
+      "result_key": "SchemaArns",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListDirectories": {
+      "result_key": "Directories",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListDevelopmentSchemaArns": {
+      "result_key": "SchemaArns",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListTypedLinkFacetNames": {
+      "result_key": "FacetNames",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListIndex": {
+      "result_key": "IndexAttachments",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListFacetAttributes": {
+      "result_key": "Attributes",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListObjectPolicies": {
+      "result_key": "AttachedPolicyIds",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListTagsForResource": {
+      "result_key": "Tags",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListAttachedIndices": {
+      "result_key": "IndexAttachments",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "LookupPolicy": {
+      "result_key": "PolicyToPathList",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListPolicyAttachments": {
+      "result_key": "ObjectIdentifiers",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListObjectAttributes": {
+      "result_key": "Attributes",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListAppliedSchemaArns": {
+      "result_key": "SchemaArns",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListTypedLinkFacetAttributes": {
+      "result_key": "Attributes",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/clouddirectory/2016-05-10/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/clouddirectory/2016-05-10/service-2.json.gz
new file mode 100644
index 00000000..6c8334d9
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/clouddirectory/2016-05-10/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/clouddirectory/2017-01-11/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/clouddirectory/2017-01-11/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..21ee3a94
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/clouddirectory/2017-01-11/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/clouddirectory/2017-01-11/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/clouddirectory/2017-01-11/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/clouddirectory/2017-01-11/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/clouddirectory/2017-01-11/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/clouddirectory/2017-01-11/paginators-1.json
new file mode 100644
index 00000000..5a06fb0b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/clouddirectory/2017-01-11/paginators-1.json
@@ -0,0 +1,118 @@
+{
+  "pagination": {
+    "ListObjectParentPaths": {
+      "result_key": "PathToObjectIdentifiersList",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListFacetNames": {
+      "result_key": "FacetNames",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListPublishedSchemaArns": {
+      "result_key": "SchemaArns",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListDirectories": {
+      "result_key": "Directories",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListDevelopmentSchemaArns": {
+      "result_key": "SchemaArns",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListTypedLinkFacetNames": {
+      "result_key": "FacetNames",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListIndex": {
+      "result_key": "IndexAttachments",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListFacetAttributes": {
+      "result_key": "Attributes",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListObjectPolicies": {
+      "result_key": "AttachedPolicyIds",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListTagsForResource": {
+      "result_key": "Tags",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListAttachedIndices": {
+      "result_key": "IndexAttachments",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "LookupPolicy": {
+      "result_key": "PolicyToPathList",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListPolicyAttachments": {
+      "result_key": "ObjectIdentifiers",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListObjectAttributes": {
+      "result_key": "Attributes",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListAppliedSchemaArns": {
+      "result_key": "SchemaArns",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListTypedLinkFacetAttributes": {
+      "result_key": "Attributes",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListIncomingTypedLinks": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "LinkSpecifiers"
+    },
+    "ListManagedSchemaArns": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "SchemaArns"
+    },
+    "ListOutgoingTypedLinks": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "TypedLinkSpecifiers"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/clouddirectory/2017-01-11/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/clouddirectory/2017-01-11/service-2.json.gz
new file mode 100644
index 00000000..df693434
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/clouddirectory/2017-01-11/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudformation/2010-05-15/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudformation/2010-05-15/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..6108d20d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudformation/2010-05-15/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudformation/2010-05-15/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudformation/2010-05-15/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudformation/2010-05-15/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudformation/2010-05-15/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudformation/2010-05-15/paginators-1.json
new file mode 100644
index 00000000..f7aa541b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudformation/2010-05-15/paginators-1.json
@@ -0,0 +1,136 @@
+{
+  "pagination": {
+    "DescribeAccountLimits": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "AccountLimits"
+    },
+    "DescribeChangeSet": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "Changes",
+      "non_aggregate_keys": [
+        "ChangeSetName",
+        "ChangeSetId",
+        "StackId",
+        "StackName",
+        "Description",
+        "Parameters",
+        "CreationTime",
+        "ExecutionStatus",
+        "Status",
+        "StatusReason",
+        "NotificationARNs",
+        "RollbackConfiguration",
+        "Capabilities",
+        "Tags",
+        "ParentChangeSetId",
+        "IncludeNestedStacks",
+        "RootChangeSetId",
+        "OnStackFailure",
+        "ImportExistingResources"
+      ]
+    },
+    "DescribeStackEvents": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "StackEvents"
+    },
+    "DescribeStacks": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "Stacks"
+    },
+    "ListChangeSets": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "Summaries"
+    },
+    "ListStackInstances": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Summaries"
+    },
+    "ListStackResources": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "StackResourceSummaries"
+    },
+    "ListStacks": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "StackSummaries"
+    },
+    "ListStackSetOperationResults": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Summaries"
+    },
+    "ListStackSetOperations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Summaries"
+    },
+    "ListStackSets": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Summaries"
+    },
+    "ListExports": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "Exports"
+    },
+    "ListImports": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "Imports"
+    },
+    "ListTypes": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "TypeSummaries"
+    },
+    "ListGeneratedTemplates": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Summaries"
+    },
+    "ListResourceScanRelatedResources": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "RelatedResources"
+    },
+    "ListResourceScanResources": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Resources"
+    },
+    "ListResourceScans": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ResourceScanSummaries"
+    },
+    "ListStackRefactorActions": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "StackRefactorActions"
+    },
+    "ListStackRefactors": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "StackRefactorSummaries"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudformation/2010-05-15/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudformation/2010-05-15/service-2.json.gz
new file mode 100644
index 00000000..5737145d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudformation/2010-05-15/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudformation/2010-05-15/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudformation/2010-05-15/waiters-2.json
new file mode 100644
index 00000000..0bfa9b00
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudformation/2010-05-15/waiters-2.json
@@ -0,0 +1,404 @@
+{
+  "version": 2,
+  "waiters": {
+    "StackExists": {
+      "delay": 5,
+      "operation": "DescribeStacks",
+      "maxAttempts": 20,
+      "acceptors": [
+        {
+          "matcher": "status",
+          "expected": 200,
+          "state": "success"
+        },
+        {
+          "matcher": "error",
+          "expected": "ValidationError",
+          "state": "retry"
+        }
+      ]
+    },
+    "StackCreateComplete": {
+      "delay": 30,
+      "operation": "DescribeStacks",
+      "maxAttempts": 120,
+      "description": "Wait until stack status is CREATE_COMPLETE.",
+      "acceptors": [
+        {
+          "argument": "Stacks[].StackStatus",
+          "expected": "CREATE_COMPLETE",
+          "matcher": "pathAll",
+          "state": "success"
+        },
+        {
+          "argument": "Stacks[].StackStatus",
+          "expected": "UPDATE_COMPLETE",
+          "matcher": "pathAll",
+          "state": "success"
+        },
+        {
+          "argument": "Stacks[].StackStatus",
+          "expected": "UPDATE_IN_PROGRESS",
+          "matcher": "pathAll",
+          "state": "success"
+        },
+        {
+          "argument": "Stacks[].StackStatus",
+          "expected": "UPDATE_COMPLETE_CLEANUP_IN_PROGRESS",
+          "matcher": "pathAll",
+          "state": "success"
+        },
+        {
+          "argument": "Stacks[].StackStatus",
+          "expected": "UPDATE_FAILED",
+          "matcher": "pathAll",
+          "state": "success"
+        },
+        {
+          "argument": "Stacks[].StackStatus",
+          "expected": "UPDATE_ROLLBACK_IN_PROGRESS",
+          "matcher": "pathAll",
+          "state": "success"
+        },
+        {
+          "argument": "Stacks[].StackStatus",
+          "expected": "UPDATE_ROLLBACK_FAILED",
+          "matcher": "pathAll",
+          "state": "success"
+        },
+        {
+          "argument": "Stacks[].StackStatus",
+          "expected": "UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS",
+          "matcher": "pathAll",
+          "state": "success"
+        },
+        {
+          "argument": "Stacks[].StackStatus",
+          "expected": "UPDATE_ROLLBACK_COMPLETE",
+          "matcher": "pathAll",
+          "state": "success"
+        },
+        {
+          "argument": "Stacks[].StackStatus",
+          "expected": "CREATE_FAILED",
+          "matcher": "pathAny",
+          "state": "failure"
+        },
+        {
+          "argument": "Stacks[].StackStatus",
+          "expected": "DELETE_COMPLETE",
+          "matcher": "pathAny",
+          "state": "failure"
+        },
+        {
+          "argument": "Stacks[].StackStatus",
+          "expected": "DELETE_FAILED",
+          "matcher": "pathAny",
+          "state": "failure"
+        },
+        {
+          "argument": "Stacks[].StackStatus",
+          "expected": "ROLLBACK_FAILED",
+          "matcher": "pathAny",
+          "state": "failure"
+        },
+        {
+          "argument": "Stacks[].StackStatus",
+          "expected": "ROLLBACK_COMPLETE",
+          "matcher": "pathAny",
+          "state": "failure"
+        },
+        {
+          "expected": "ValidationError",
+          "matcher": "error",
+          "state": "failure"
+        }
+      ]
+    },
+    "StackDeleteComplete": {
+      "delay": 30,
+      "operation": "DescribeStacks",
+      "maxAttempts": 120,
+      "description": "Wait until stack status is DELETE_COMPLETE.",
+      "acceptors": [
+        {
+          "argument": "Stacks[].StackStatus",
+          "expected": "DELETE_COMPLETE",
+          "matcher": "pathAll",
+          "state": "success"
+        },
+        {
+          "expected": "ValidationError",
+          "matcher": "error",
+          "state": "success"
+        },
+        {
+          "argument": "Stacks[].StackStatus",
+          "expected": "DELETE_FAILED",
+          "matcher": "pathAny",
+          "state": "failure"
+        },
+        {
+          "argument": "Stacks[].StackStatus",
+          "expected": "CREATE_FAILED",
+          "matcher": "pathAny",
+          "state": "failure"
+        },
+        {
+          "argument": "Stacks[].StackStatus",
+          "expected": "ROLLBACK_FAILED",
+          "matcher": "pathAny",
+          "state": "failure"
+        },
+        {
+          "argument": "Stacks[].StackStatus",
+          "expected": "UPDATE_ROLLBACK_IN_PROGRESS",
+          "matcher": "pathAny",
+          "state": "failure"
+        },
+        {
+          "argument": "Stacks[].StackStatus",
+          "expected": "UPDATE_ROLLBACK_FAILED",
+          "matcher": "pathAny",
+          "state": "failure"
+        },
+        {
+          "argument": "Stacks[].StackStatus",
+          "expected": "UPDATE_ROLLBACK_COMPLETE",
+          "matcher": "pathAny",
+          "state": "failure"
+        },
+        {
+          "argument": "Stacks[].StackStatus",
+          "expected": "UPDATE_COMPLETE",
+          "matcher": "pathAny",
+          "state": "failure"
+        }
+      ]
+    },
+    "StackUpdateComplete": {
+      "delay": 30,
+      "maxAttempts": 120,
+      "operation": "DescribeStacks",
+      "description": "Wait until stack status is UPDATE_COMPLETE.",
+      "acceptors": [
+        {
+          "argument": "Stacks[].StackStatus",
+          "expected": "UPDATE_COMPLETE",
+          "matcher": "pathAll",
+          "state": "success"
+        },
+        {
+          "expected": "UPDATE_FAILED",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Stacks[].StackStatus"
+        },
+        {
+          "argument": "Stacks[].StackStatus",
+          "expected": "UPDATE_ROLLBACK_FAILED",
+          "matcher": "pathAny",
+          "state": "failure"
+        },
+        {
+          "expected": "UPDATE_ROLLBACK_COMPLETE",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Stacks[].StackStatus"
+        },
+        {
+          "expected": "ValidationError",
+          "matcher": "error",
+          "state": "failure"
+        }
+      ]
+    },
+    "StackImportComplete": {
+      "delay": 30,
+      "maxAttempts": 120,
+      "operation": "DescribeStacks",
+      "description": "Wait until stack status is IMPORT_COMPLETE.",
+      "acceptors": [
+        {
+          "argument": "Stacks[].StackStatus",
+          "expected": "IMPORT_COMPLETE",
+          "matcher": "pathAll",
+          "state": "success"
+        },
+        {
+          "expected": "ROLLBACK_COMPLETE",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Stacks[].StackStatus"
+        },
+        {
+          "expected": "ROLLBACK_FAILED",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Stacks[].StackStatus"
+        },
+        {
+          "argument": "Stacks[].StackStatus",
+          "expected": "IMPORT_ROLLBACK_IN_PROGRESS",
+          "matcher": "pathAny",
+          "state": "failure"
+        },
+        {
+          "argument": "Stacks[].StackStatus",
+          "expected": "IMPORT_ROLLBACK_FAILED",
+          "matcher": "pathAny",
+          "state": "failure"
+        },
+        {
+          "expected": "IMPORT_ROLLBACK_COMPLETE",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Stacks[].StackStatus"
+        },
+        {
+          "expected": "ValidationError",
+          "matcher": "error",
+          "state": "failure"
+        }
+      ]
+    },
+    "StackRollbackComplete": {
+      "delay": 30,
+      "operation": "DescribeStacks",
+      "maxAttempts": 120,
+      "description": "Wait until stack status is UPDATE_ROLLBACK_COMPLETE.",
+      "acceptors": [
+        {
+          "argument": "Stacks[].StackStatus",
+          "expected": "UPDATE_ROLLBACK_COMPLETE",
+          "matcher": "pathAll",
+          "state": "success"
+        },
+        {
+          "argument": "Stacks[].StackStatus",
+          "expected": "UPDATE_FAILED",
+          "matcher": "pathAny",
+          "state": "failure"
+        },
+        {
+          "argument": "Stacks[].StackStatus",
+          "expected": "UPDATE_ROLLBACK_FAILED",
+          "matcher": "pathAny",
+          "state": "failure"
+        },
+        {
+          "argument": "Stacks[].StackStatus",
+          "expected": "DELETE_FAILED",
+          "matcher": "pathAny",
+          "state": "failure"
+        },
+        {
+          "expected": "ValidationError",
+          "matcher": "error",
+          "state": "failure"
+        }
+      ]
+    },
+    "ChangeSetCreateComplete": {
+      "delay": 30,
+      "operation": "DescribeChangeSet",
+      "maxAttempts": 120,
+      "description": "Wait until change set status is CREATE_COMPLETE.",
+      "acceptors": [
+        {
+          "argument": "Status",
+          "expected": "CREATE_COMPLETE",
+          "matcher": "path",
+          "state": "success"
+        },
+        {
+          "argument": "Status",
+          "expected": "FAILED",
+          "matcher": "path",
+          "state": "failure"
+        },
+        {
+          "expected": "ValidationError",
+          "matcher": "error",
+          "state": "failure"
+        }
+      ]
+    },
+    "StackRefactorCreateComplete": {
+      "delay": 5,
+      "operation": "DescribeStackRefactor",
+      "maxAttempts": 120,
+      "description": "Wait until the stack refactor status is CREATE_COMPLETE.",
+      "acceptors": [
+        {
+          "argument": "Status",
+          "expected": "CREATE_COMPLETE",
+          "matcher": "path",
+          "state": "success"
+        },
+        {
+          "argument": "Status",
+          "expected": "CREATE_FAILED",
+          "matcher": "path",
+          "state": "failure"
+        },
+        {
+          "expected": "ValidationError",
+          "matcher": "error",
+          "state": "failure"
+        }
+      ]
+    },
+    "StackRefactorExecuteComplete": {
+      "delay": 15,
+      "operation": "DescribeStackRefactor",
+      "maxAttempts": 120,
+      "description": "Wait until the stack refactor status is EXECUTE_COMPLETE.",
+      "acceptors": [
+        {
+          "argument": "ExecutionStatus",
+          "expected": "EXECUTE_COMPLETE",
+          "matcher": "path",
+          "state": "success"
+        },
+        {
+          "argument": "ExecutionStatus",
+          "expected": "EXECUTE_FAILED",
+          "matcher": "path",
+          "state": "failure"
+        },
+        {
+          "argument": "ExecutionStatus",
+          "expected": "ROLLBACK_COMPLETE",
+          "matcher": "path",
+          "state": "failure"
+        },
+        {
+          "expected": "ValidationError",
+          "matcher": "error",
+          "state": "failure"
+        }
+      ]
+    },
+    "TypeRegistrationComplete": {
+      "delay": 30,
+      "operation": "DescribeTypeRegistration",
+      "maxAttempts": 120,
+      "description": "Wait until type registration is COMPLETE.",
+      "acceptors": [
+        {
+          "argument": "ProgressStatus",
+          "expected": "COMPLETE",
+          "matcher": "path",
+          "state": "success"
+        },
+        {
+          "argument": "ProgressStatus",
+          "expected": "FAILED",
+          "matcher": "path",
+          "state": "failure"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront-keyvaluestore/2022-07-26/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront-keyvaluestore/2022-07-26/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..4259c972
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront-keyvaluestore/2022-07-26/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront-keyvaluestore/2022-07-26/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront-keyvaluestore/2022-07-26/paginators-1.json
new file mode 100644
index 00000000..8fda57a3
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront-keyvaluestore/2022-07-26/paginators-1.json
@@ -0,0 +1,10 @@
+{
+  "pagination": {
+    "ListKeys": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Items"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront-keyvaluestore/2022-07-26/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront-keyvaluestore/2022-07-26/service-2.json.gz
new file mode 100644
index 00000000..314b8143
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront-keyvaluestore/2022-07-26/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2014-05-31/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2014-05-31/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..28b21e97
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2014-05-31/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2014-05-31/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2014-05-31/paginators-1.json
new file mode 100644
index 00000000..51fbb907
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2014-05-31/paginators-1.json
@@ -0,0 +1,32 @@
+{
+  "pagination": {
+    "ListCloudFrontOriginAccessIdentities": {
+      "input_token": "Marker",
+      "output_token": "CloudFrontOriginAccessIdentityList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "CloudFrontOriginAccessIdentityList.IsTruncated",
+      "result_key": "CloudFrontOriginAccessIdentityList.Items"
+    },
+    "ListDistributions": {
+      "input_token": "Marker",
+      "output_token": "DistributionList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "DistributionList.IsTruncated",
+      "result_key": "DistributionList.Items"
+    },
+    "ListInvalidations": {
+      "input_token": "Marker",
+      "output_token": "InvalidationList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "InvalidationList.IsTruncated",
+      "result_key": "InvalidationList.Items"
+    },
+    "ListStreamingDistributions": {
+      "input_token": "Marker",
+      "output_token": "StreamingDistributionList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "StreamingDistributionList.IsTruncated",
+      "result_key": "StreamingDistributionList.Items"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2014-05-31/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2014-05-31/service-2.json.gz
new file mode 100644
index 00000000..07d2e774
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2014-05-31/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2014-05-31/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2014-05-31/waiters-2.json
new file mode 100644
index 00000000..6e044bc5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2014-05-31/waiters-2.json
@@ -0,0 +1,47 @@
+{
+  "version": 2,
+  "waiters": {
+    "DistributionDeployed": {
+      "delay": 60,
+      "operation": "GetDistribution",
+      "maxAttempts": 25,
+      "description": "Wait until a distribution is deployed.",
+      "acceptors": [
+        {
+          "expected": "Deployed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "Distribution.Status"
+        }
+      ]
+    },
+    "InvalidationCompleted": {
+      "delay": 20,
+      "operation": "GetInvalidation",
+      "maxAttempts": 60,
+      "description": "Wait until an invalidation has completed.",
+      "acceptors": [
+        {
+          "expected": "Completed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "Invalidation.Status"
+        }
+      ]
+    },
+    "StreamingDistributionDeployed": {
+      "delay": 60,
+      "operation": "GetStreamingDistribution",
+      "maxAttempts": 25,
+      "description": "Wait until a streaming distribution is deployed.",
+      "acceptors": [
+        {
+          "expected": "Deployed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "StreamingDistribution.Status"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2014-10-21/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2014-10-21/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..28b21e97
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2014-10-21/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2014-10-21/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2014-10-21/paginators-1.json
new file mode 100644
index 00000000..51fbb907
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2014-10-21/paginators-1.json
@@ -0,0 +1,32 @@
+{
+  "pagination": {
+    "ListCloudFrontOriginAccessIdentities": {
+      "input_token": "Marker",
+      "output_token": "CloudFrontOriginAccessIdentityList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "CloudFrontOriginAccessIdentityList.IsTruncated",
+      "result_key": "CloudFrontOriginAccessIdentityList.Items"
+    },
+    "ListDistributions": {
+      "input_token": "Marker",
+      "output_token": "DistributionList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "DistributionList.IsTruncated",
+      "result_key": "DistributionList.Items"
+    },
+    "ListInvalidations": {
+      "input_token": "Marker",
+      "output_token": "InvalidationList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "InvalidationList.IsTruncated",
+      "result_key": "InvalidationList.Items"
+    },
+    "ListStreamingDistributions": {
+      "input_token": "Marker",
+      "output_token": "StreamingDistributionList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "StreamingDistributionList.IsTruncated",
+      "result_key": "StreamingDistributionList.Items"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2014-10-21/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2014-10-21/service-2.json.gz
new file mode 100644
index 00000000..dd84a5d6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2014-10-21/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2014-10-21/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2014-10-21/waiters-2.json
new file mode 100644
index 00000000..6e044bc5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2014-10-21/waiters-2.json
@@ -0,0 +1,47 @@
+{
+  "version": 2,
+  "waiters": {
+    "DistributionDeployed": {
+      "delay": 60,
+      "operation": "GetDistribution",
+      "maxAttempts": 25,
+      "description": "Wait until a distribution is deployed.",
+      "acceptors": [
+        {
+          "expected": "Deployed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "Distribution.Status"
+        }
+      ]
+    },
+    "InvalidationCompleted": {
+      "delay": 20,
+      "operation": "GetInvalidation",
+      "maxAttempts": 60,
+      "description": "Wait until an invalidation has completed.",
+      "acceptors": [
+        {
+          "expected": "Completed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "Invalidation.Status"
+        }
+      ]
+    },
+    "StreamingDistributionDeployed": {
+      "delay": 60,
+      "operation": "GetStreamingDistribution",
+      "maxAttempts": 25,
+      "description": "Wait until a streaming distribution is deployed.",
+      "acceptors": [
+        {
+          "expected": "Deployed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "StreamingDistribution.Status"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2014-11-06/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2014-11-06/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..28b21e97
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2014-11-06/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2014-11-06/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2014-11-06/paginators-1.json
new file mode 100644
index 00000000..51fbb907
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2014-11-06/paginators-1.json
@@ -0,0 +1,32 @@
+{
+  "pagination": {
+    "ListCloudFrontOriginAccessIdentities": {
+      "input_token": "Marker",
+      "output_token": "CloudFrontOriginAccessIdentityList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "CloudFrontOriginAccessIdentityList.IsTruncated",
+      "result_key": "CloudFrontOriginAccessIdentityList.Items"
+    },
+    "ListDistributions": {
+      "input_token": "Marker",
+      "output_token": "DistributionList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "DistributionList.IsTruncated",
+      "result_key": "DistributionList.Items"
+    },
+    "ListInvalidations": {
+      "input_token": "Marker",
+      "output_token": "InvalidationList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "InvalidationList.IsTruncated",
+      "result_key": "InvalidationList.Items"
+    },
+    "ListStreamingDistributions": {
+      "input_token": "Marker",
+      "output_token": "StreamingDistributionList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "StreamingDistributionList.IsTruncated",
+      "result_key": "StreamingDistributionList.Items"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2014-11-06/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2014-11-06/service-2.json.gz
new file mode 100644
index 00000000..ae4cd73e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2014-11-06/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2014-11-06/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2014-11-06/waiters-2.json
new file mode 100644
index 00000000..6e044bc5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2014-11-06/waiters-2.json
@@ -0,0 +1,47 @@
+{
+  "version": 2,
+  "waiters": {
+    "DistributionDeployed": {
+      "delay": 60,
+      "operation": "GetDistribution",
+      "maxAttempts": 25,
+      "description": "Wait until a distribution is deployed.",
+      "acceptors": [
+        {
+          "expected": "Deployed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "Distribution.Status"
+        }
+      ]
+    },
+    "InvalidationCompleted": {
+      "delay": 20,
+      "operation": "GetInvalidation",
+      "maxAttempts": 60,
+      "description": "Wait until an invalidation has completed.",
+      "acceptors": [
+        {
+          "expected": "Completed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "Invalidation.Status"
+        }
+      ]
+    },
+    "StreamingDistributionDeployed": {
+      "delay": 60,
+      "operation": "GetStreamingDistribution",
+      "maxAttempts": 25,
+      "description": "Wait until a streaming distribution is deployed.",
+      "acceptors": [
+        {
+          "expected": "Deployed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "StreamingDistribution.Status"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2015-04-17/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2015-04-17/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..28b21e97
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2015-04-17/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2015-04-17/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2015-04-17/paginators-1.json
new file mode 100644
index 00000000..51fbb907
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2015-04-17/paginators-1.json
@@ -0,0 +1,32 @@
+{
+  "pagination": {
+    "ListCloudFrontOriginAccessIdentities": {
+      "input_token": "Marker",
+      "output_token": "CloudFrontOriginAccessIdentityList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "CloudFrontOriginAccessIdentityList.IsTruncated",
+      "result_key": "CloudFrontOriginAccessIdentityList.Items"
+    },
+    "ListDistributions": {
+      "input_token": "Marker",
+      "output_token": "DistributionList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "DistributionList.IsTruncated",
+      "result_key": "DistributionList.Items"
+    },
+    "ListInvalidations": {
+      "input_token": "Marker",
+      "output_token": "InvalidationList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "InvalidationList.IsTruncated",
+      "result_key": "InvalidationList.Items"
+    },
+    "ListStreamingDistributions": {
+      "input_token": "Marker",
+      "output_token": "StreamingDistributionList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "StreamingDistributionList.IsTruncated",
+      "result_key": "StreamingDistributionList.Items"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2015-04-17/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2015-04-17/service-2.json.gz
new file mode 100644
index 00000000..cb6d2d25
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2015-04-17/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2015-04-17/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2015-04-17/waiters-2.json
new file mode 100644
index 00000000..6e044bc5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2015-04-17/waiters-2.json
@@ -0,0 +1,47 @@
+{
+  "version": 2,
+  "waiters": {
+    "DistributionDeployed": {
+      "delay": 60,
+      "operation": "GetDistribution",
+      "maxAttempts": 25,
+      "description": "Wait until a distribution is deployed.",
+      "acceptors": [
+        {
+          "expected": "Deployed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "Distribution.Status"
+        }
+      ]
+    },
+    "InvalidationCompleted": {
+      "delay": 20,
+      "operation": "GetInvalidation",
+      "maxAttempts": 60,
+      "description": "Wait until an invalidation has completed.",
+      "acceptors": [
+        {
+          "expected": "Completed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "Invalidation.Status"
+        }
+      ]
+    },
+    "StreamingDistributionDeployed": {
+      "delay": 60,
+      "operation": "GetStreamingDistribution",
+      "maxAttempts": 25,
+      "description": "Wait until a streaming distribution is deployed.",
+      "acceptors": [
+        {
+          "expected": "Deployed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "StreamingDistribution.Status"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2015-07-27/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2015-07-27/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..28b21e97
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2015-07-27/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2015-07-27/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2015-07-27/paginators-1.json
new file mode 100644
index 00000000..51fbb907
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2015-07-27/paginators-1.json
@@ -0,0 +1,32 @@
+{
+  "pagination": {
+    "ListCloudFrontOriginAccessIdentities": {
+      "input_token": "Marker",
+      "output_token": "CloudFrontOriginAccessIdentityList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "CloudFrontOriginAccessIdentityList.IsTruncated",
+      "result_key": "CloudFrontOriginAccessIdentityList.Items"
+    },
+    "ListDistributions": {
+      "input_token": "Marker",
+      "output_token": "DistributionList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "DistributionList.IsTruncated",
+      "result_key": "DistributionList.Items"
+    },
+    "ListInvalidations": {
+      "input_token": "Marker",
+      "output_token": "InvalidationList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "InvalidationList.IsTruncated",
+      "result_key": "InvalidationList.Items"
+    },
+    "ListStreamingDistributions": {
+      "input_token": "Marker",
+      "output_token": "StreamingDistributionList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "StreamingDistributionList.IsTruncated",
+      "result_key": "StreamingDistributionList.Items"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2015-07-27/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2015-07-27/service-2.json.gz
new file mode 100644
index 00000000..bde1a302
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2015-07-27/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2015-07-27/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2015-07-27/waiters-2.json
new file mode 100644
index 00000000..6e044bc5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2015-07-27/waiters-2.json
@@ -0,0 +1,47 @@
+{
+  "version": 2,
+  "waiters": {
+    "DistributionDeployed": {
+      "delay": 60,
+      "operation": "GetDistribution",
+      "maxAttempts": 25,
+      "description": "Wait until a distribution is deployed.",
+      "acceptors": [
+        {
+          "expected": "Deployed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "Distribution.Status"
+        }
+      ]
+    },
+    "InvalidationCompleted": {
+      "delay": 20,
+      "operation": "GetInvalidation",
+      "maxAttempts": 60,
+      "description": "Wait until an invalidation has completed.",
+      "acceptors": [
+        {
+          "expected": "Completed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "Invalidation.Status"
+        }
+      ]
+    },
+    "StreamingDistributionDeployed": {
+      "delay": 60,
+      "operation": "GetStreamingDistribution",
+      "maxAttempts": 25,
+      "description": "Wait until a streaming distribution is deployed.",
+      "acceptors": [
+        {
+          "expected": "Deployed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "StreamingDistribution.Status"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2015-09-17/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2015-09-17/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..28b21e97
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2015-09-17/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2015-09-17/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2015-09-17/paginators-1.json
new file mode 100644
index 00000000..51fbb907
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2015-09-17/paginators-1.json
@@ -0,0 +1,32 @@
+{
+  "pagination": {
+    "ListCloudFrontOriginAccessIdentities": {
+      "input_token": "Marker",
+      "output_token": "CloudFrontOriginAccessIdentityList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "CloudFrontOriginAccessIdentityList.IsTruncated",
+      "result_key": "CloudFrontOriginAccessIdentityList.Items"
+    },
+    "ListDistributions": {
+      "input_token": "Marker",
+      "output_token": "DistributionList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "DistributionList.IsTruncated",
+      "result_key": "DistributionList.Items"
+    },
+    "ListInvalidations": {
+      "input_token": "Marker",
+      "output_token": "InvalidationList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "InvalidationList.IsTruncated",
+      "result_key": "InvalidationList.Items"
+    },
+    "ListStreamingDistributions": {
+      "input_token": "Marker",
+      "output_token": "StreamingDistributionList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "StreamingDistributionList.IsTruncated",
+      "result_key": "StreamingDistributionList.Items"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2015-09-17/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2015-09-17/service-2.json.gz
new file mode 100644
index 00000000..28797fda
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2015-09-17/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2015-09-17/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2015-09-17/waiters-2.json
new file mode 100644
index 00000000..6e044bc5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2015-09-17/waiters-2.json
@@ -0,0 +1,47 @@
+{
+  "version": 2,
+  "waiters": {
+    "DistributionDeployed": {
+      "delay": 60,
+      "operation": "GetDistribution",
+      "maxAttempts": 25,
+      "description": "Wait until a distribution is deployed.",
+      "acceptors": [
+        {
+          "expected": "Deployed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "Distribution.Status"
+        }
+      ]
+    },
+    "InvalidationCompleted": {
+      "delay": 20,
+      "operation": "GetInvalidation",
+      "maxAttempts": 60,
+      "description": "Wait until an invalidation has completed.",
+      "acceptors": [
+        {
+          "expected": "Completed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "Invalidation.Status"
+        }
+      ]
+    },
+    "StreamingDistributionDeployed": {
+      "delay": 60,
+      "operation": "GetStreamingDistribution",
+      "maxAttempts": 25,
+      "description": "Wait until a streaming distribution is deployed.",
+      "acceptors": [
+        {
+          "expected": "Deployed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "StreamingDistribution.Status"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-01-13/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-01-13/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..28b21e97
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-01-13/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-01-13/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-01-13/paginators-1.json
new file mode 100644
index 00000000..51fbb907
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-01-13/paginators-1.json
@@ -0,0 +1,32 @@
+{
+  "pagination": {
+    "ListCloudFrontOriginAccessIdentities": {
+      "input_token": "Marker",
+      "output_token": "CloudFrontOriginAccessIdentityList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "CloudFrontOriginAccessIdentityList.IsTruncated",
+      "result_key": "CloudFrontOriginAccessIdentityList.Items"
+    },
+    "ListDistributions": {
+      "input_token": "Marker",
+      "output_token": "DistributionList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "DistributionList.IsTruncated",
+      "result_key": "DistributionList.Items"
+    },
+    "ListInvalidations": {
+      "input_token": "Marker",
+      "output_token": "InvalidationList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "InvalidationList.IsTruncated",
+      "result_key": "InvalidationList.Items"
+    },
+    "ListStreamingDistributions": {
+      "input_token": "Marker",
+      "output_token": "StreamingDistributionList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "StreamingDistributionList.IsTruncated",
+      "result_key": "StreamingDistributionList.Items"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-01-13/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-01-13/service-2.json.gz
new file mode 100644
index 00000000..1240ca91
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-01-13/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-01-13/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-01-13/waiters-2.json
new file mode 100644
index 00000000..6e044bc5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-01-13/waiters-2.json
@@ -0,0 +1,47 @@
+{
+  "version": 2,
+  "waiters": {
+    "DistributionDeployed": {
+      "delay": 60,
+      "operation": "GetDistribution",
+      "maxAttempts": 25,
+      "description": "Wait until a distribution is deployed.",
+      "acceptors": [
+        {
+          "expected": "Deployed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "Distribution.Status"
+        }
+      ]
+    },
+    "InvalidationCompleted": {
+      "delay": 20,
+      "operation": "GetInvalidation",
+      "maxAttempts": 60,
+      "description": "Wait until an invalidation has completed.",
+      "acceptors": [
+        {
+          "expected": "Completed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "Invalidation.Status"
+        }
+      ]
+    },
+    "StreamingDistributionDeployed": {
+      "delay": 60,
+      "operation": "GetStreamingDistribution",
+      "maxAttempts": 25,
+      "description": "Wait until a streaming distribution is deployed.",
+      "acceptors": [
+        {
+          "expected": "Deployed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "StreamingDistribution.Status"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-01-28/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-01-28/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..17ee2644
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-01-28/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-01-28/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-01-28/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-01-28/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-01-28/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-01-28/paginators-1.json
new file mode 100644
index 00000000..51fbb907
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-01-28/paginators-1.json
@@ -0,0 +1,32 @@
+{
+  "pagination": {
+    "ListCloudFrontOriginAccessIdentities": {
+      "input_token": "Marker",
+      "output_token": "CloudFrontOriginAccessIdentityList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "CloudFrontOriginAccessIdentityList.IsTruncated",
+      "result_key": "CloudFrontOriginAccessIdentityList.Items"
+    },
+    "ListDistributions": {
+      "input_token": "Marker",
+      "output_token": "DistributionList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "DistributionList.IsTruncated",
+      "result_key": "DistributionList.Items"
+    },
+    "ListInvalidations": {
+      "input_token": "Marker",
+      "output_token": "InvalidationList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "InvalidationList.IsTruncated",
+      "result_key": "InvalidationList.Items"
+    },
+    "ListStreamingDistributions": {
+      "input_token": "Marker",
+      "output_token": "StreamingDistributionList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "StreamingDistributionList.IsTruncated",
+      "result_key": "StreamingDistributionList.Items"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-01-28/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-01-28/service-2.json.gz
new file mode 100644
index 00000000..a227abb2
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-01-28/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-01-28/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-01-28/waiters-2.json
new file mode 100644
index 00000000..6e044bc5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-01-28/waiters-2.json
@@ -0,0 +1,47 @@
+{
+  "version": 2,
+  "waiters": {
+    "DistributionDeployed": {
+      "delay": 60,
+      "operation": "GetDistribution",
+      "maxAttempts": 25,
+      "description": "Wait until a distribution is deployed.",
+      "acceptors": [
+        {
+          "expected": "Deployed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "Distribution.Status"
+        }
+      ]
+    },
+    "InvalidationCompleted": {
+      "delay": 20,
+      "operation": "GetInvalidation",
+      "maxAttempts": 60,
+      "description": "Wait until an invalidation has completed.",
+      "acceptors": [
+        {
+          "expected": "Completed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "Invalidation.Status"
+        }
+      ]
+    },
+    "StreamingDistributionDeployed": {
+      "delay": 60,
+      "operation": "GetStreamingDistribution",
+      "maxAttempts": 25,
+      "description": "Wait until a streaming distribution is deployed.",
+      "acceptors": [
+        {
+          "expected": "Deployed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "StreamingDistribution.Status"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-08-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-08-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..17ee2644
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-08-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-08-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-08-01/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-08-01/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-08-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-08-01/paginators-1.json
new file mode 100644
index 00000000..51fbb907
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-08-01/paginators-1.json
@@ -0,0 +1,32 @@
+{
+  "pagination": {
+    "ListCloudFrontOriginAccessIdentities": {
+      "input_token": "Marker",
+      "output_token": "CloudFrontOriginAccessIdentityList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "CloudFrontOriginAccessIdentityList.IsTruncated",
+      "result_key": "CloudFrontOriginAccessIdentityList.Items"
+    },
+    "ListDistributions": {
+      "input_token": "Marker",
+      "output_token": "DistributionList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "DistributionList.IsTruncated",
+      "result_key": "DistributionList.Items"
+    },
+    "ListInvalidations": {
+      "input_token": "Marker",
+      "output_token": "InvalidationList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "InvalidationList.IsTruncated",
+      "result_key": "InvalidationList.Items"
+    },
+    "ListStreamingDistributions": {
+      "input_token": "Marker",
+      "output_token": "StreamingDistributionList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "StreamingDistributionList.IsTruncated",
+      "result_key": "StreamingDistributionList.Items"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-08-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-08-01/service-2.json.gz
new file mode 100644
index 00000000..c451558c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-08-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-08-01/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-08-01/waiters-2.json
new file mode 100644
index 00000000..6e044bc5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-08-01/waiters-2.json
@@ -0,0 +1,47 @@
+{
+  "version": 2,
+  "waiters": {
+    "DistributionDeployed": {
+      "delay": 60,
+      "operation": "GetDistribution",
+      "maxAttempts": 25,
+      "description": "Wait until a distribution is deployed.",
+      "acceptors": [
+        {
+          "expected": "Deployed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "Distribution.Status"
+        }
+      ]
+    },
+    "InvalidationCompleted": {
+      "delay": 20,
+      "operation": "GetInvalidation",
+      "maxAttempts": 60,
+      "description": "Wait until an invalidation has completed.",
+      "acceptors": [
+        {
+          "expected": "Completed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "Invalidation.Status"
+        }
+      ]
+    },
+    "StreamingDistributionDeployed": {
+      "delay": 60,
+      "operation": "GetStreamingDistribution",
+      "maxAttempts": 25,
+      "description": "Wait until a streaming distribution is deployed.",
+      "acceptors": [
+        {
+          "expected": "Deployed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "StreamingDistribution.Status"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-08-20/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-08-20/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..17ee2644
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-08-20/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-08-20/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-08-20/paginators-1.json
new file mode 100644
index 00000000..51fbb907
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-08-20/paginators-1.json
@@ -0,0 +1,32 @@
+{
+  "pagination": {
+    "ListCloudFrontOriginAccessIdentities": {
+      "input_token": "Marker",
+      "output_token": "CloudFrontOriginAccessIdentityList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "CloudFrontOriginAccessIdentityList.IsTruncated",
+      "result_key": "CloudFrontOriginAccessIdentityList.Items"
+    },
+    "ListDistributions": {
+      "input_token": "Marker",
+      "output_token": "DistributionList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "DistributionList.IsTruncated",
+      "result_key": "DistributionList.Items"
+    },
+    "ListInvalidations": {
+      "input_token": "Marker",
+      "output_token": "InvalidationList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "InvalidationList.IsTruncated",
+      "result_key": "InvalidationList.Items"
+    },
+    "ListStreamingDistributions": {
+      "input_token": "Marker",
+      "output_token": "StreamingDistributionList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "StreamingDistributionList.IsTruncated",
+      "result_key": "StreamingDistributionList.Items"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-08-20/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-08-20/service-2.json.gz
new file mode 100644
index 00000000..70f8669a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-08-20/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-08-20/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-08-20/waiters-2.json
new file mode 100644
index 00000000..6e044bc5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-08-20/waiters-2.json
@@ -0,0 +1,47 @@
+{
+  "version": 2,
+  "waiters": {
+    "DistributionDeployed": {
+      "delay": 60,
+      "operation": "GetDistribution",
+      "maxAttempts": 25,
+      "description": "Wait until a distribution is deployed.",
+      "acceptors": [
+        {
+          "expected": "Deployed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "Distribution.Status"
+        }
+      ]
+    },
+    "InvalidationCompleted": {
+      "delay": 20,
+      "operation": "GetInvalidation",
+      "maxAttempts": 60,
+      "description": "Wait until an invalidation has completed.",
+      "acceptors": [
+        {
+          "expected": "Completed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "Invalidation.Status"
+        }
+      ]
+    },
+    "StreamingDistributionDeployed": {
+      "delay": 60,
+      "operation": "GetStreamingDistribution",
+      "maxAttempts": 25,
+      "description": "Wait until a streaming distribution is deployed.",
+      "acceptors": [
+        {
+          "expected": "Deployed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "StreamingDistribution.Status"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-09-07/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-09-07/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..17ee2644
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-09-07/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-09-07/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-09-07/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-09-07/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-09-07/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-09-07/paginators-1.json
new file mode 100644
index 00000000..51fbb907
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-09-07/paginators-1.json
@@ -0,0 +1,32 @@
+{
+  "pagination": {
+    "ListCloudFrontOriginAccessIdentities": {
+      "input_token": "Marker",
+      "output_token": "CloudFrontOriginAccessIdentityList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "CloudFrontOriginAccessIdentityList.IsTruncated",
+      "result_key": "CloudFrontOriginAccessIdentityList.Items"
+    },
+    "ListDistributions": {
+      "input_token": "Marker",
+      "output_token": "DistributionList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "DistributionList.IsTruncated",
+      "result_key": "DistributionList.Items"
+    },
+    "ListInvalidations": {
+      "input_token": "Marker",
+      "output_token": "InvalidationList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "InvalidationList.IsTruncated",
+      "result_key": "InvalidationList.Items"
+    },
+    "ListStreamingDistributions": {
+      "input_token": "Marker",
+      "output_token": "StreamingDistributionList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "StreamingDistributionList.IsTruncated",
+      "result_key": "StreamingDistributionList.Items"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-09-07/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-09-07/service-2.json.gz
new file mode 100644
index 00000000..f67576c9
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-09-07/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-09-07/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-09-07/waiters-2.json
new file mode 100644
index 00000000..6e044bc5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-09-07/waiters-2.json
@@ -0,0 +1,47 @@
+{
+  "version": 2,
+  "waiters": {
+    "DistributionDeployed": {
+      "delay": 60,
+      "operation": "GetDistribution",
+      "maxAttempts": 25,
+      "description": "Wait until a distribution is deployed.",
+      "acceptors": [
+        {
+          "expected": "Deployed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "Distribution.Status"
+        }
+      ]
+    },
+    "InvalidationCompleted": {
+      "delay": 20,
+      "operation": "GetInvalidation",
+      "maxAttempts": 60,
+      "description": "Wait until an invalidation has completed.",
+      "acceptors": [
+        {
+          "expected": "Completed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "Invalidation.Status"
+        }
+      ]
+    },
+    "StreamingDistributionDeployed": {
+      "delay": 60,
+      "operation": "GetStreamingDistribution",
+      "maxAttempts": 25,
+      "description": "Wait until a streaming distribution is deployed.",
+      "acceptors": [
+        {
+          "expected": "Deployed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "StreamingDistribution.Status"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-09-29/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-09-29/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..17ee2644
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-09-29/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-09-29/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-09-29/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-09-29/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-09-29/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-09-29/paginators-1.json
new file mode 100644
index 00000000..51fbb907
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-09-29/paginators-1.json
@@ -0,0 +1,32 @@
+{
+  "pagination": {
+    "ListCloudFrontOriginAccessIdentities": {
+      "input_token": "Marker",
+      "output_token": "CloudFrontOriginAccessIdentityList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "CloudFrontOriginAccessIdentityList.IsTruncated",
+      "result_key": "CloudFrontOriginAccessIdentityList.Items"
+    },
+    "ListDistributions": {
+      "input_token": "Marker",
+      "output_token": "DistributionList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "DistributionList.IsTruncated",
+      "result_key": "DistributionList.Items"
+    },
+    "ListInvalidations": {
+      "input_token": "Marker",
+      "output_token": "InvalidationList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "InvalidationList.IsTruncated",
+      "result_key": "InvalidationList.Items"
+    },
+    "ListStreamingDistributions": {
+      "input_token": "Marker",
+      "output_token": "StreamingDistributionList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "StreamingDistributionList.IsTruncated",
+      "result_key": "StreamingDistributionList.Items"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-09-29/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-09-29/service-2.json.gz
new file mode 100644
index 00000000..68a9c6fe
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-09-29/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-09-29/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-09-29/waiters-2.json
new file mode 100644
index 00000000..6e044bc5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-09-29/waiters-2.json
@@ -0,0 +1,47 @@
+{
+  "version": 2,
+  "waiters": {
+    "DistributionDeployed": {
+      "delay": 60,
+      "operation": "GetDistribution",
+      "maxAttempts": 25,
+      "description": "Wait until a distribution is deployed.",
+      "acceptors": [
+        {
+          "expected": "Deployed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "Distribution.Status"
+        }
+      ]
+    },
+    "InvalidationCompleted": {
+      "delay": 20,
+      "operation": "GetInvalidation",
+      "maxAttempts": 60,
+      "description": "Wait until an invalidation has completed.",
+      "acceptors": [
+        {
+          "expected": "Completed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "Invalidation.Status"
+        }
+      ]
+    },
+    "StreamingDistributionDeployed": {
+      "delay": 60,
+      "operation": "GetStreamingDistribution",
+      "maxAttempts": 25,
+      "description": "Wait until a streaming distribution is deployed.",
+      "acceptors": [
+        {
+          "expected": "Deployed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "StreamingDistribution.Status"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-11-25/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-11-25/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..17ee2644
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-11-25/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-11-25/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-11-25/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-11-25/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-11-25/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-11-25/paginators-1.json
new file mode 100644
index 00000000..51fbb907
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-11-25/paginators-1.json
@@ -0,0 +1,32 @@
+{
+  "pagination": {
+    "ListCloudFrontOriginAccessIdentities": {
+      "input_token": "Marker",
+      "output_token": "CloudFrontOriginAccessIdentityList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "CloudFrontOriginAccessIdentityList.IsTruncated",
+      "result_key": "CloudFrontOriginAccessIdentityList.Items"
+    },
+    "ListDistributions": {
+      "input_token": "Marker",
+      "output_token": "DistributionList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "DistributionList.IsTruncated",
+      "result_key": "DistributionList.Items"
+    },
+    "ListInvalidations": {
+      "input_token": "Marker",
+      "output_token": "InvalidationList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "InvalidationList.IsTruncated",
+      "result_key": "InvalidationList.Items"
+    },
+    "ListStreamingDistributions": {
+      "input_token": "Marker",
+      "output_token": "StreamingDistributionList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "StreamingDistributionList.IsTruncated",
+      "result_key": "StreamingDistributionList.Items"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-11-25/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-11-25/service-2.json.gz
new file mode 100644
index 00000000..90761a2b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-11-25/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-11-25/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-11-25/waiters-2.json
new file mode 100644
index 00000000..6e044bc5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2016-11-25/waiters-2.json
@@ -0,0 +1,47 @@
+{
+  "version": 2,
+  "waiters": {
+    "DistributionDeployed": {
+      "delay": 60,
+      "operation": "GetDistribution",
+      "maxAttempts": 25,
+      "description": "Wait until a distribution is deployed.",
+      "acceptors": [
+        {
+          "expected": "Deployed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "Distribution.Status"
+        }
+      ]
+    },
+    "InvalidationCompleted": {
+      "delay": 20,
+      "operation": "GetInvalidation",
+      "maxAttempts": 60,
+      "description": "Wait until an invalidation has completed.",
+      "acceptors": [
+        {
+          "expected": "Completed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "Invalidation.Status"
+        }
+      ]
+    },
+    "StreamingDistributionDeployed": {
+      "delay": 60,
+      "operation": "GetStreamingDistribution",
+      "maxAttempts": 25,
+      "description": "Wait until a streaming distribution is deployed.",
+      "acceptors": [
+        {
+          "expected": "Deployed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "StreamingDistribution.Status"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2017-03-25/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2017-03-25/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..17ee2644
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2017-03-25/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2017-03-25/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2017-03-25/paginators-1.json
new file mode 100644
index 00000000..51fbb907
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2017-03-25/paginators-1.json
@@ -0,0 +1,32 @@
+{
+  "pagination": {
+    "ListCloudFrontOriginAccessIdentities": {
+      "input_token": "Marker",
+      "output_token": "CloudFrontOriginAccessIdentityList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "CloudFrontOriginAccessIdentityList.IsTruncated",
+      "result_key": "CloudFrontOriginAccessIdentityList.Items"
+    },
+    "ListDistributions": {
+      "input_token": "Marker",
+      "output_token": "DistributionList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "DistributionList.IsTruncated",
+      "result_key": "DistributionList.Items"
+    },
+    "ListInvalidations": {
+      "input_token": "Marker",
+      "output_token": "InvalidationList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "InvalidationList.IsTruncated",
+      "result_key": "InvalidationList.Items"
+    },
+    "ListStreamingDistributions": {
+      "input_token": "Marker",
+      "output_token": "StreamingDistributionList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "StreamingDistributionList.IsTruncated",
+      "result_key": "StreamingDistributionList.Items"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2017-03-25/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2017-03-25/service-2.json.gz
new file mode 100644
index 00000000..419670d8
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2017-03-25/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2017-03-25/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2017-03-25/waiters-2.json
new file mode 100644
index 00000000..edd74b2a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2017-03-25/waiters-2.json
@@ -0,0 +1,47 @@
+{
+  "version": 2,
+  "waiters": {
+    "DistributionDeployed": {
+      "delay": 60,
+      "operation": "GetDistribution",
+      "maxAttempts": 25,
+      "description": "Wait until a distribution is deployed.",
+      "acceptors": [
+        {
+          "expected": "Deployed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "Distribution.Status"
+        }
+      ]
+    },
+    "InvalidationCompleted": {
+      "delay": 20,
+      "operation": "GetInvalidation",
+      "maxAttempts": 30,
+      "description": "Wait until an invalidation has completed.",
+      "acceptors": [
+        {
+          "expected": "Completed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "Invalidation.Status"
+        }
+      ]
+    },
+    "StreamingDistributionDeployed": {
+      "delay": 60,
+      "operation": "GetStreamingDistribution",
+      "maxAttempts": 25,
+      "description": "Wait until a streaming distribution is deployed.",
+      "acceptors": [
+        {
+          "expected": "Deployed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "StreamingDistribution.Status"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2017-10-30/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2017-10-30/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..17ee2644
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2017-10-30/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2017-10-30/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2017-10-30/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2017-10-30/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2017-10-30/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2017-10-30/paginators-1.json
new file mode 100644
index 00000000..51fbb907
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2017-10-30/paginators-1.json
@@ -0,0 +1,32 @@
+{
+  "pagination": {
+    "ListCloudFrontOriginAccessIdentities": {
+      "input_token": "Marker",
+      "output_token": "CloudFrontOriginAccessIdentityList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "CloudFrontOriginAccessIdentityList.IsTruncated",
+      "result_key": "CloudFrontOriginAccessIdentityList.Items"
+    },
+    "ListDistributions": {
+      "input_token": "Marker",
+      "output_token": "DistributionList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "DistributionList.IsTruncated",
+      "result_key": "DistributionList.Items"
+    },
+    "ListInvalidations": {
+      "input_token": "Marker",
+      "output_token": "InvalidationList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "InvalidationList.IsTruncated",
+      "result_key": "InvalidationList.Items"
+    },
+    "ListStreamingDistributions": {
+      "input_token": "Marker",
+      "output_token": "StreamingDistributionList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "StreamingDistributionList.IsTruncated",
+      "result_key": "StreamingDistributionList.Items"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2017-10-30/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2017-10-30/service-2.json.gz
new file mode 100644
index 00000000..c3065360
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2017-10-30/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2017-10-30/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2017-10-30/waiters-2.json
new file mode 100644
index 00000000..edd74b2a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2017-10-30/waiters-2.json
@@ -0,0 +1,47 @@
+{
+  "version": 2,
+  "waiters": {
+    "DistributionDeployed": {
+      "delay": 60,
+      "operation": "GetDistribution",
+      "maxAttempts": 25,
+      "description": "Wait until a distribution is deployed.",
+      "acceptors": [
+        {
+          "expected": "Deployed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "Distribution.Status"
+        }
+      ]
+    },
+    "InvalidationCompleted": {
+      "delay": 20,
+      "operation": "GetInvalidation",
+      "maxAttempts": 30,
+      "description": "Wait until an invalidation has completed.",
+      "acceptors": [
+        {
+          "expected": "Completed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "Invalidation.Status"
+        }
+      ]
+    },
+    "StreamingDistributionDeployed": {
+      "delay": 60,
+      "operation": "GetStreamingDistribution",
+      "maxAttempts": 25,
+      "description": "Wait until a streaming distribution is deployed.",
+      "acceptors": [
+        {
+          "expected": "Deployed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "StreamingDistribution.Status"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2018-06-18/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2018-06-18/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..17ee2644
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2018-06-18/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2018-06-18/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2018-06-18/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2018-06-18/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2018-06-18/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2018-06-18/paginators-1.json
new file mode 100644
index 00000000..51fbb907
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2018-06-18/paginators-1.json
@@ -0,0 +1,32 @@
+{
+  "pagination": {
+    "ListCloudFrontOriginAccessIdentities": {
+      "input_token": "Marker",
+      "output_token": "CloudFrontOriginAccessIdentityList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "CloudFrontOriginAccessIdentityList.IsTruncated",
+      "result_key": "CloudFrontOriginAccessIdentityList.Items"
+    },
+    "ListDistributions": {
+      "input_token": "Marker",
+      "output_token": "DistributionList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "DistributionList.IsTruncated",
+      "result_key": "DistributionList.Items"
+    },
+    "ListInvalidations": {
+      "input_token": "Marker",
+      "output_token": "InvalidationList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "InvalidationList.IsTruncated",
+      "result_key": "InvalidationList.Items"
+    },
+    "ListStreamingDistributions": {
+      "input_token": "Marker",
+      "output_token": "StreamingDistributionList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "StreamingDistributionList.IsTruncated",
+      "result_key": "StreamingDistributionList.Items"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2018-06-18/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2018-06-18/service-2.json.gz
new file mode 100644
index 00000000..58eb5791
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2018-06-18/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2018-06-18/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2018-06-18/waiters-2.json
new file mode 100644
index 00000000..edd74b2a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2018-06-18/waiters-2.json
@@ -0,0 +1,47 @@
+{
+  "version": 2,
+  "waiters": {
+    "DistributionDeployed": {
+      "delay": 60,
+      "operation": "GetDistribution",
+      "maxAttempts": 25,
+      "description": "Wait until a distribution is deployed.",
+      "acceptors": [
+        {
+          "expected": "Deployed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "Distribution.Status"
+        }
+      ]
+    },
+    "InvalidationCompleted": {
+      "delay": 20,
+      "operation": "GetInvalidation",
+      "maxAttempts": 30,
+      "description": "Wait until an invalidation has completed.",
+      "acceptors": [
+        {
+          "expected": "Completed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "Invalidation.Status"
+        }
+      ]
+    },
+    "StreamingDistributionDeployed": {
+      "delay": 60,
+      "operation": "GetStreamingDistribution",
+      "maxAttempts": 25,
+      "description": "Wait until a streaming distribution is deployed.",
+      "acceptors": [
+        {
+          "expected": "Deployed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "StreamingDistribution.Status"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2018-11-05/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2018-11-05/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..17ee2644
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2018-11-05/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2018-11-05/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2018-11-05/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2018-11-05/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2018-11-05/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2018-11-05/paginators-1.json
new file mode 100644
index 00000000..51fbb907
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2018-11-05/paginators-1.json
@@ -0,0 +1,32 @@
+{
+  "pagination": {
+    "ListCloudFrontOriginAccessIdentities": {
+      "input_token": "Marker",
+      "output_token": "CloudFrontOriginAccessIdentityList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "CloudFrontOriginAccessIdentityList.IsTruncated",
+      "result_key": "CloudFrontOriginAccessIdentityList.Items"
+    },
+    "ListDistributions": {
+      "input_token": "Marker",
+      "output_token": "DistributionList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "DistributionList.IsTruncated",
+      "result_key": "DistributionList.Items"
+    },
+    "ListInvalidations": {
+      "input_token": "Marker",
+      "output_token": "InvalidationList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "InvalidationList.IsTruncated",
+      "result_key": "InvalidationList.Items"
+    },
+    "ListStreamingDistributions": {
+      "input_token": "Marker",
+      "output_token": "StreamingDistributionList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "StreamingDistributionList.IsTruncated",
+      "result_key": "StreamingDistributionList.Items"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2018-11-05/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2018-11-05/service-2.json.gz
new file mode 100644
index 00000000..3f24f6d1
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2018-11-05/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2018-11-05/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2018-11-05/waiters-2.json
new file mode 100644
index 00000000..edd74b2a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2018-11-05/waiters-2.json
@@ -0,0 +1,47 @@
+{
+  "version": 2,
+  "waiters": {
+    "DistributionDeployed": {
+      "delay": 60,
+      "operation": "GetDistribution",
+      "maxAttempts": 25,
+      "description": "Wait until a distribution is deployed.",
+      "acceptors": [
+        {
+          "expected": "Deployed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "Distribution.Status"
+        }
+      ]
+    },
+    "InvalidationCompleted": {
+      "delay": 20,
+      "operation": "GetInvalidation",
+      "maxAttempts": 30,
+      "description": "Wait until an invalidation has completed.",
+      "acceptors": [
+        {
+          "expected": "Completed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "Invalidation.Status"
+        }
+      ]
+    },
+    "StreamingDistributionDeployed": {
+      "delay": 60,
+      "operation": "GetStreamingDistribution",
+      "maxAttempts": 25,
+      "description": "Wait until a streaming distribution is deployed.",
+      "acceptors": [
+        {
+          "expected": "Deployed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "StreamingDistribution.Status"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2019-03-26/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2019-03-26/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..17ee2644
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2019-03-26/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2019-03-26/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2019-03-26/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2019-03-26/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2019-03-26/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2019-03-26/paginators-1.json
new file mode 100644
index 00000000..51fbb907
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2019-03-26/paginators-1.json
@@ -0,0 +1,32 @@
+{
+  "pagination": {
+    "ListCloudFrontOriginAccessIdentities": {
+      "input_token": "Marker",
+      "output_token": "CloudFrontOriginAccessIdentityList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "CloudFrontOriginAccessIdentityList.IsTruncated",
+      "result_key": "CloudFrontOriginAccessIdentityList.Items"
+    },
+    "ListDistributions": {
+      "input_token": "Marker",
+      "output_token": "DistributionList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "DistributionList.IsTruncated",
+      "result_key": "DistributionList.Items"
+    },
+    "ListInvalidations": {
+      "input_token": "Marker",
+      "output_token": "InvalidationList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "InvalidationList.IsTruncated",
+      "result_key": "InvalidationList.Items"
+    },
+    "ListStreamingDistributions": {
+      "input_token": "Marker",
+      "output_token": "StreamingDistributionList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "StreamingDistributionList.IsTruncated",
+      "result_key": "StreamingDistributionList.Items"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2019-03-26/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2019-03-26/service-2.json.gz
new file mode 100644
index 00000000..4cf9f547
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2019-03-26/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2019-03-26/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2019-03-26/waiters-2.json
new file mode 100644
index 00000000..95f0a2dd
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2019-03-26/waiters-2.json
@@ -0,0 +1,47 @@
+{
+  "version": 2,
+  "waiters": {
+    "DistributionDeployed": {
+      "delay": 60,
+      "operation": "GetDistribution",
+      "maxAttempts": 35,
+      "description": "Wait until a distribution is deployed.",
+      "acceptors": [
+        {
+          "expected": "Deployed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "Distribution.Status"
+        }
+      ]
+    },
+    "InvalidationCompleted": {
+      "delay": 20,
+      "operation": "GetInvalidation",
+      "maxAttempts": 30,
+      "description": "Wait until an invalidation has completed.",
+      "acceptors": [
+        {
+          "expected": "Completed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "Invalidation.Status"
+        }
+      ]
+    },
+    "StreamingDistributionDeployed": {
+      "delay": 60,
+      "operation": "GetStreamingDistribution",
+      "maxAttempts": 25,
+      "description": "Wait until a streaming distribution is deployed.",
+      "acceptors": [
+        {
+          "expected": "Deployed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "StreamingDistribution.Status"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2020-05-31/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2020-05-31/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..b43ad5ce
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2020-05-31/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2020-05-31/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2020-05-31/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2020-05-31/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2020-05-31/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2020-05-31/paginators-1.json
new file mode 100644
index 00000000..f83b5884
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2020-05-31/paginators-1.json
@@ -0,0 +1,44 @@
+{
+  "pagination": {
+    "ListCloudFrontOriginAccessIdentities": {
+      "input_token": "Marker",
+      "output_token": "CloudFrontOriginAccessIdentityList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "CloudFrontOriginAccessIdentityList.IsTruncated",
+      "result_key": "CloudFrontOriginAccessIdentityList.Items"
+    },
+    "ListDistributions": {
+      "input_token": "Marker",
+      "output_token": "DistributionList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "DistributionList.IsTruncated",
+      "result_key": "DistributionList.Items"
+    },
+    "ListInvalidations": {
+      "input_token": "Marker",
+      "output_token": "InvalidationList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "InvalidationList.IsTruncated",
+      "result_key": "InvalidationList.Items"
+    },
+    "ListStreamingDistributions": {
+      "input_token": "Marker",
+      "output_token": "StreamingDistributionList.NextMarker",
+      "limit_key": "MaxItems",
+      "more_results": "StreamingDistributionList.IsTruncated",
+      "result_key": "StreamingDistributionList.Items"
+    },
+    "ListKeyValueStores": {
+      "input_token": "Marker",
+      "limit_key": "MaxItems",
+      "output_token": "KeyValueStoreList.NextMarker",
+      "result_key": "KeyValueStoreList.Items"
+    },
+    "ListPublicKeys": {
+      "input_token": "Marker",
+      "output_token": "PublicKeyList.NextMarker",
+      "limit_key": "MaxItems",
+      "result_key": "PublicKeyList.Items"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2020-05-31/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2020-05-31/service-2.json.gz
new file mode 100644
index 00000000..a4135b0c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2020-05-31/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2020-05-31/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2020-05-31/waiters-2.json
new file mode 100644
index 00000000..4d238cb1
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudfront/2020-05-31/waiters-2.json
@@ -0,0 +1,41 @@
+{
+  "version" : 2,
+  "waiters" : {
+    "DistributionDeployed" : {
+      "description" : "Wait until a distribution is deployed.",
+      "delay" : 60,
+      "maxAttempts" : 35,
+      "operation" : "GetDistribution",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "Distribution.Status",
+        "state" : "success",
+        "expected" : "Deployed"
+      } ]
+    },
+    "InvalidationCompleted" : {
+      "description" : "Wait until an invalidation has completed.",
+      "delay" : 20,
+      "maxAttempts" : 30,
+      "operation" : "GetInvalidation",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "Invalidation.Status",
+        "state" : "success",
+        "expected" : "Completed"
+      } ]
+    },
+    "StreamingDistributionDeployed" : {
+      "description" : "Wait until a streaming distribution is deployed.",
+      "delay" : 60,
+      "maxAttempts" : 25,
+      "operation" : "GetStreamingDistribution",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "StreamingDistribution.Status",
+        "state" : "success",
+        "expected" : "Deployed"
+      } ]
+    }
+  }
+}
\ No newline at end of file
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudhsm/2014-05-30/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudhsm/2014-05-30/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..b518be5f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudhsm/2014-05-30/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudhsm/2014-05-30/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudhsm/2014-05-30/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudhsm/2014-05-30/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudhsm/2014-05-30/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudhsm/2014-05-30/paginators-1.json
new file mode 100644
index 00000000..3dedddf1
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudhsm/2014-05-30/paginators-1.json
@@ -0,0 +1,19 @@
+{
+  "pagination": {
+    "ListHapgs": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "HapgList"
+    },
+    "ListHsms": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "HsmList"
+    },
+    "ListLunaClients": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "ClientList"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudhsm/2014-05-30/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudhsm/2014-05-30/service-2.json.gz
new file mode 100644
index 00000000..38a6a125
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudhsm/2014-05-30/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudhsmv2/2017-04-28/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudhsmv2/2017-04-28/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..8a76c09b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudhsmv2/2017-04-28/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudhsmv2/2017-04-28/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudhsmv2/2017-04-28/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudhsmv2/2017-04-28/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudhsmv2/2017-04-28/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudhsmv2/2017-04-28/paginators-1.json
new file mode 100644
index 00000000..19c403f0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudhsmv2/2017-04-28/paginators-1.json
@@ -0,0 +1,22 @@
+{
+  "pagination": {
+    "DescribeBackups": {
+      "result_key": "Backups",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "DescribeClusters": {
+      "result_key": "Clusters",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListTags": {
+      "result_key": "TagList",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudhsmv2/2017-04-28/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudhsmv2/2017-04-28/service-2.json.gz
new file mode 100644
index 00000000..3754fcc9
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudhsmv2/2017-04-28/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudsearch/2011-02-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudsearch/2011-02-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..d00d805b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudsearch/2011-02-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudsearch/2011-02-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudsearch/2011-02-01/service-2.json.gz
new file mode 100644
index 00000000..41d5f57f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudsearch/2011-02-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudsearch/2013-01-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudsearch/2013-01-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..b6a45f3a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudsearch/2013-01-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudsearch/2013-01-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudsearch/2013-01-01/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudsearch/2013-01-01/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudsearch/2013-01-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudsearch/2013-01-01/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudsearch/2013-01-01/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudsearch/2013-01-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudsearch/2013-01-01/service-2.json.gz
new file mode 100644
index 00000000..98bb59ed
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudsearch/2013-01-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudsearchdomain/2013-01-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudsearchdomain/2013-01-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..1bb7f84c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudsearchdomain/2013-01-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudsearchdomain/2013-01-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudsearchdomain/2013-01-01/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudsearchdomain/2013-01-01/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudsearchdomain/2013-01-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudsearchdomain/2013-01-01/service-2.json.gz
new file mode 100644
index 00000000..6c18720a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudsearchdomain/2013-01-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudtrail-data/2021-08-11/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudtrail-data/2021-08-11/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..b9e39ace
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudtrail-data/2021-08-11/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudtrail-data/2021-08-11/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudtrail-data/2021-08-11/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudtrail-data/2021-08-11/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudtrail-data/2021-08-11/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudtrail-data/2021-08-11/service-2.json.gz
new file mode 100644
index 00000000..de2dc90f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudtrail-data/2021-08-11/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudtrail/2013-11-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudtrail/2013-11-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..e0b5f654
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudtrail/2013-11-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudtrail/2013-11-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudtrail/2013-11-01/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudtrail/2013-11-01/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudtrail/2013-11-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudtrail/2013-11-01/paginators-1.json
new file mode 100644
index 00000000..300217d2
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudtrail/2013-11-01/paginators-1.json
@@ -0,0 +1,37 @@
+{
+  "pagination": {
+    "LookupEvents": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Events"
+    },
+    "ListPublicKeys": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "PublicKeyList"
+    },
+    "ListTags": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "ResourceTagList"
+    },
+    "ListTrails": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "Trails"
+    },
+    "ListImportFailures": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Failures"
+    },
+    "ListImports": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Imports"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudtrail/2013-11-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudtrail/2013-11-01/service-2.json.gz
new file mode 100644
index 00000000..bba5deb9
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudtrail/2013-11-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudwatch/2010-08-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudwatch/2010-08-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..247d32c1
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudwatch/2010-08-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudwatch/2010-08-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudwatch/2010-08-01/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudwatch/2010-08-01/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudwatch/2010-08-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudwatch/2010-08-01/paginators-1.json
new file mode 100644
index 00000000..b386c2f6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudwatch/2010-08-01/paginators-1.json
@@ -0,0 +1,47 @@
+{
+  "pagination": {
+    "DescribeAlarmHistory": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxRecords",
+      "result_key": "AlarmHistoryItems"
+    },
+    "DescribeAlarms": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxRecords",
+      "result_key": [
+        "MetricAlarms",
+        "CompositeAlarms"
+      ]
+    },
+    "ListDashboards": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "DashboardEntries"
+    },
+    "ListMetrics": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": [
+        "Metrics",
+        "OwningAccounts"
+      ]
+    },
+    "GetMetricData": {
+      "input_token": "NextToken",
+      "limit_key": "MaxDatapoints",
+      "output_token": "NextToken",
+      "result_key": [
+        "MetricDataResults",
+        "Messages"
+      ]
+    },
+    "DescribeAnomalyDetectors": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "AnomalyDetectors"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudwatch/2010-08-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cloudwatch/2010-08-01/service-2.json.gz
new file mode 100644
index 00000000..dd838f26
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudwatch/2010-08-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cloudwatch/2010-08-01/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/cloudwatch/2010-08-01/waiters-2.json
new file mode 100644
index 00000000..32803bba
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cloudwatch/2010-08-01/waiters-2.json
@@ -0,0 +1,31 @@
+{
+  "version": 2,
+  "waiters": {
+    "AlarmExists": {
+      "delay": 5,
+      "maxAttempts": 40,
+      "operation": "DescribeAlarms",
+      "acceptors": [
+        {
+          "matcher": "path",
+          "expected": true,
+          "argument": "length(MetricAlarms[]) > `0`",
+          "state": "success"
+        }
+      ]
+    },
+    "CompositeAlarmExists": {
+      "delay": 5,
+      "maxAttempts": 40,
+      "operation": "DescribeAlarms",
+      "acceptors": [
+        {
+          "matcher": "path",
+          "expected": true,
+          "argument": "length(CompositeAlarms[]) > `0`",
+          "state": "success"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/codeartifact/2018-09-22/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/codeartifact/2018-09-22/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..65600ead
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/codeartifact/2018-09-22/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/codeartifact/2018-09-22/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/codeartifact/2018-09-22/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/codeartifact/2018-09-22/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/codeartifact/2018-09-22/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/codeartifact/2018-09-22/paginators-1.json
new file mode 100644
index 00000000..ad47997f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/codeartifact/2018-09-22/paginators-1.json
@@ -0,0 +1,64 @@
+{
+  "pagination": {
+    "ListDomains": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "domains"
+    },
+    "ListPackageVersionAssets": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "assets"
+    },
+    "ListPackageVersions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "versions"
+    },
+    "ListPackages": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "packages"
+    },
+    "ListRepositories": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "repositories"
+    },
+    "ListRepositoriesInDomain": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "repositories"
+    },
+    "ListAllowedRepositoriesForGroup": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "allowedRepositories"
+    },
+    "ListAssociatedPackages": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "packages"
+    },
+    "ListPackageGroups": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "packageGroups"
+    },
+    "ListSubPackageGroups": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "packageGroups"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/codeartifact/2018-09-22/paginators-1.sdk-extras.json b/.venv/lib/python3.12/site-packages/botocore/data/codeartifact/2018-09-22/paginators-1.sdk-extras.json
new file mode 100644
index 00000000..d58fb3f9
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/codeartifact/2018-09-22/paginators-1.sdk-extras.json
@@ -0,0 +1,24 @@
+{
+  "version": 1.0,
+  "merge": {
+    "pagination": {
+      "ListPackageVersionAssets": {
+        "non_aggregate_keys": [
+          "package",
+          "format",
+          "namespace",
+          "version",
+          "versionRevision"
+        ]
+      },
+      "ListPackageVersions": {
+        "non_aggregate_keys": [
+          "defaultDisplayVersion",
+          "format",
+          "package",
+          "namespace"
+        ]
+      }
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/codeartifact/2018-09-22/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/codeartifact/2018-09-22/service-2.json.gz
new file mode 100644
index 00000000..69abbe15
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/codeartifact/2018-09-22/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/codebuild/2016-10-06/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/codebuild/2016-10-06/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..4dfc80a6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/codebuild/2016-10-06/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/codebuild/2016-10-06/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/codebuild/2016-10-06/examples-1.json
new file mode 100644
index 00000000..a5fb660e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/codebuild/2016-10-06/examples-1.json
@@ -0,0 +1,281 @@
+{
+  "version": "1.0",
+  "examples": {
+    "BatchGetBuilds": [
+      {
+        "input": {
+          "ids": [
+            "codebuild-demo-project:9b0ac37f-d19e-4254-9079-f47e9a389eEX",
+            "codebuild-demo-project:b79a46f7-1473-4636-a23f-da9c45c208EX"
+          ]
+        },
+        "output": {
+          "builds": [
+            {
+              "arn": "arn:aws:codebuild:us-east-1:123456789012:build/codebuild-demo-project:9b0ac37f-d19e-4254-9079-f47e9a389eEX",
+              "artifacts": {
+                "location": "arn:aws:s3:::codebuild-123456789012-output-bucket/codebuild-demo-project"
+              },
+              "buildComplete": true,
+              "buildStatus": "SUCCEEDED",
+              "currentPhase": "COMPLETED",
+              "endTime": 1479832474.764,
+              "environment": {
+                "type": "LINUX_CONTAINER",
+                "computeType": "BUILD_GENERAL1_SMALL",
+                "environmentVariables": [
+
+                ],
+                "image": "aws/codebuild/java:openjdk-8",
+                "privilegedMode": false
+              },
+              "id": "codebuild-demo-project:9b0ac37f-d19e-4254-9079-f47e9a389eEX",
+              "initiator": "MyDemoUser",
+              "logs": {
+                "deepLink": "https://console.aws.amazon.com/cloudwatch/home?region=us-east-1#logEvent:group=/aws/codebuild/codebuild-demo-project;stream=9b0ac37f-d19e-4254-9079-f47e9a389eEX",
+                "groupName": "/aws/codebuild/codebuild-demo-project",
+                "streamName": "9b0ac37f-d19e-4254-9079-f47e9a389eEX"
+              },
+              "phases": [
+                {
+                  "durationInSeconds": 0,
+                  "endTime": 1479832342.23,
+                  "phaseStatus": "SUCCEEDED",
+                  "phaseType": "SUBMITTED",
+                  "startTime": 1479832341.854
+                },
+                {
+                  "contexts": [
+
+                  ],
+                  "durationInSeconds": 72,
+                  "endTime": 1479832415.064,
+                  "phaseStatus": "SUCCEEDED",
+                  "phaseType": "PROVISIONING",
+                  "startTime": 1479832342.23
+                },
+                {
+                  "contexts": [
+
+                  ],
+                  "durationInSeconds": 46,
+                  "endTime": 1479832461.261,
+                  "phaseStatus": "SUCCEEDED",
+                  "phaseType": "DOWNLOAD_SOURCE",
+                  "startTime": 1479832415.064
+                },
+                {
+                  "contexts": [
+
+                  ],
+                  "durationInSeconds": 0,
+                  "endTime": 1479832461.354,
+                  "phaseStatus": "SUCCEEDED",
+                  "phaseType": "INSTALL",
+                  "startTime": 1479832461.261
+                },
+                {
+                  "contexts": [
+
+                  ],
+                  "durationInSeconds": 0,
+                  "endTime": 1479832461.448,
+                  "phaseStatus": "SUCCEEDED",
+                  "phaseType": "PRE_BUILD",
+                  "startTime": 1479832461.354
+                },
+                {
+                  "contexts": [
+
+                  ],
+                  "durationInSeconds": 9,
+                  "endTime": 1479832471.115,
+                  "phaseStatus": "SUCCEEDED",
+                  "phaseType": "BUILD",
+                  "startTime": 1479832461.448
+                },
+                {
+                  "contexts": [
+
+                  ],
+                  "durationInSeconds": 0,
+                  "endTime": 1479832471.224,
+                  "phaseStatus": "SUCCEEDED",
+                  "phaseType": "POST_BUILD",
+                  "startTime": 1479832471.115
+                },
+                {
+                  "contexts": [
+
+                  ],
+                  "durationInSeconds": 0,
+                  "endTime": 1479832471.791,
+                  "phaseStatus": "SUCCEEDED",
+                  "phaseType": "UPLOAD_ARTIFACTS",
+                  "startTime": 1479832471.224
+                },
+                {
+                  "contexts": [
+
+                  ],
+                  "durationInSeconds": 2,
+                  "endTime": 1479832474.764,
+                  "phaseStatus": "SUCCEEDED",
+                  "phaseType": "FINALIZING",
+                  "startTime": 1479832471.791
+                },
+                {
+                  "phaseType": "COMPLETED",
+                  "startTime": 1479832474.764
+                }
+              ],
+              "projectName": "codebuild-demo-project",
+              "source": {
+                "type": "S3",
+                "buildspec": "",
+                "location": "arn:aws:s3:::codebuild-123456789012-input-bucket/MessageUtil.zip"
+              },
+              "startTime": 1479832341.854,
+              "timeoutInMinutes": 60
+            },
+            {
+              "arn": "arn:aws:codebuild:us-east-1:123456789012:build/codebuild-demo-project:b79a46f7-1473-4636-a23f-da9c45c208EX",
+              "artifacts": {
+                "location": "arn:aws:s3:::codebuild-123456789012-output-bucket/codebuild-demo-project"
+              },
+              "buildComplete": true,
+              "buildStatus": "SUCCEEDED",
+              "currentPhase": "COMPLETED",
+              "endTime": 1479401214.239,
+              "environment": {
+                "type": "LINUX_CONTAINER",
+                "computeType": "BUILD_GENERAL1_SMALL",
+                "environmentVariables": [
+
+                ],
+                "image": "aws/codebuild/java:openjdk-8",
+                "privilegedMode": false
+              },
+              "id": "codebuild-demo-project:b79a46f7-1473-4636-a23f-da9c45c208EX",
+              "initiator": "MyDemoUser",
+              "logs": {
+                "deepLink": "https://console.aws.amazon.com/cloudwatch/home?region=us-east-1#logEvent:group=/aws/codebuild/codebuild-demo-project;stream=b79a46f7-1473-4636-a23f-da9c45c208EX",
+                "groupName": "/aws/codebuild/codebuild-demo-project",
+                "streamName": "b79a46f7-1473-4636-a23f-da9c45c208EX"
+              },
+              "phases": [
+                {
+                  "durationInSeconds": 0,
+                  "endTime": 1479401082.342,
+                  "phaseStatus": "SUCCEEDED",
+                  "phaseType": "SUBMITTED",
+                  "startTime": 1479401081.869
+                },
+                {
+                  "contexts": [
+
+                  ],
+                  "durationInSeconds": 71,
+                  "endTime": 1479401154.129,
+                  "phaseStatus": "SUCCEEDED",
+                  "phaseType": "PROVISIONING",
+                  "startTime": 1479401082.342
+                },
+                {
+                  "contexts": [
+
+                  ],
+                  "durationInSeconds": 45,
+                  "endTime": 1479401199.136,
+                  "phaseStatus": "SUCCEEDED",
+                  "phaseType": "DOWNLOAD_SOURCE",
+                  "startTime": 1479401154.129
+                },
+                {
+                  "contexts": [
+
+                  ],
+                  "durationInSeconds": 0,
+                  "endTime": 1479401199.236,
+                  "phaseStatus": "SUCCEEDED",
+                  "phaseType": "INSTALL",
+                  "startTime": 1479401199.136
+                },
+                {
+                  "contexts": [
+
+                  ],
+                  "durationInSeconds": 0,
+                  "endTime": 1479401199.345,
+                  "phaseStatus": "SUCCEEDED",
+                  "phaseType": "PRE_BUILD",
+                  "startTime": 1479401199.236
+                },
+                {
+                  "contexts": [
+
+                  ],
+                  "durationInSeconds": 9,
+                  "endTime": 1479401208.68,
+                  "phaseStatus": "SUCCEEDED",
+                  "phaseType": "BUILD",
+                  "startTime": 1479401199.345
+                },
+                {
+                  "contexts": [
+
+                  ],
+                  "durationInSeconds": 0,
+                  "endTime": 1479401208.783,
+                  "phaseStatus": "SUCCEEDED",
+                  "phaseType": "POST_BUILD",
+                  "startTime": 1479401208.68
+                },
+                {
+                  "contexts": [
+
+                  ],
+                  "durationInSeconds": 0,
+                  "endTime": 1479401209.463,
+                  "phaseStatus": "SUCCEEDED",
+                  "phaseType": "UPLOAD_ARTIFACTS",
+                  "startTime": 1479401208.783
+                },
+                {
+                  "contexts": [
+
+                  ],
+                  "durationInSeconds": 4,
+                  "endTime": 1479401214.239,
+                  "phaseStatus": "SUCCEEDED",
+                  "phaseType": "FINALIZING",
+                  "startTime": 1479401209.463
+                },
+                {
+                  "phaseType": "COMPLETED",
+                  "startTime": 1479401214.239
+                }
+              ],
+              "projectName": "codebuild-demo-project",
+              "source": {
+                "type": "S3",
+                "location": "arn:aws:s3:::codebuild-123456789012-input-bucket/MessageUtil.zip"
+              },
+              "startTime": 1479401081.869,
+              "timeoutInMinutes": 60
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example gets information about builds with the specified build IDs.",
+        "id": "to-get-information-about-builds-1501187184588",
+        "title": "To get information about builds"
+      }
+    ]
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/codebuild/2016-10-06/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/codebuild/2016-10-06/paginators-1.json
new file mode 100644
index 00000000..63a92129
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/codebuild/2016-10-06/paginators-1.json
@@ -0,0 +1,73 @@
+{
+  "pagination": {
+    "ListBuilds": {
+      "output_token": "nextToken",
+      "input_token": "nextToken",
+      "result_key": "ids"
+    },
+    "ListProjects": {
+      "output_token": "nextToken",
+      "input_token": "nextToken",
+      "result_key": "projects"
+    },
+    "ListBuildsForProject": {
+      "output_token": "nextToken",
+      "input_token": "nextToken",
+      "result_key": "ids"
+    },
+    "DescribeTestCases": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "testCases"
+    },
+    "ListReportGroups": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "reportGroups"
+    },
+    "ListReports": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "reports"
+    },
+    "ListReportsForReportGroup": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "reports"
+    },
+    "ListSharedProjects": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "projects"
+    },
+    "ListSharedReportGroups": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "reportGroups"
+    },
+    "DescribeCodeCoverages": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "codeCoverages"
+    },
+    "ListBuildBatches": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "ids"
+    },
+    "ListBuildBatchesForProject": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "ids"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/codebuild/2016-10-06/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/codebuild/2016-10-06/service-2.json.gz
new file mode 100644
index 00000000..53067336
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/codebuild/2016-10-06/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/codecatalyst/2022-09-28/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/codecatalyst/2022-09-28/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..49ba62cb
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/codecatalyst/2022-09-28/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/codecatalyst/2022-09-28/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/codecatalyst/2022-09-28/paginators-1.json
new file mode 100644
index 00000000..15ed87f6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/codecatalyst/2022-09-28/paginators-1.json
@@ -0,0 +1,63 @@
+{
+  "pagination": {
+    "ListAccessTokens": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListDevEnvironments": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListEventLogs": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListProjects": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListSourceRepositories": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListSourceRepositoryBranches": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListSpaces": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "items"
+    },
+    "ListDevEnvironmentSessions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListWorkflowRuns": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListWorkflows": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/codecatalyst/2022-09-28/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/codecatalyst/2022-09-28/service-2.json.gz
new file mode 100644
index 00000000..d635babb
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/codecatalyst/2022-09-28/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/codecatalyst/2022-09-28/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/codecatalyst/2022-09-28/waiters-2.json
new file mode 100644
index 00000000..13f60ee6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/codecatalyst/2022-09-28/waiters-2.json
@@ -0,0 +1,5 @@
+{
+  "version": 2,
+  "waiters": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/codecommit/2015-04-13/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/codecommit/2015-04-13/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..c1564b3e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/codecommit/2015-04-13/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/codecommit/2015-04-13/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/codecommit/2015-04-13/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/codecommit/2015-04-13/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/codecommit/2015-04-13/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/codecommit/2015-04-13/paginators-1.json
new file mode 100644
index 00000000..b3310fca
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/codecommit/2015-04-13/paginators-1.json
@@ -0,0 +1,44 @@
+{
+  "pagination": {
+    "ListBranches": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "branches"
+    },
+    "ListRepositories": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "repositories"
+    },
+    "GetCommentsForComparedCommit": {
+      "result_key": "commentsForComparedCommitData",
+      "output_token": "nextToken",
+      "input_token": "nextToken",
+      "limit_key": "maxResults"
+    },
+    "DescribePullRequestEvents": {
+      "result_key": "pullRequestEvents",
+      "output_token": "nextToken",
+      "input_token": "nextToken",
+      "limit_key": "maxResults"
+    },
+    "GetCommentsForPullRequest": {
+      "result_key": "commentsForPullRequestData",
+      "output_token": "nextToken",
+      "input_token": "nextToken",
+      "limit_key": "maxResults"
+    },
+    "ListPullRequests": {
+      "result_key": "pullRequestIds",
+      "output_token": "nextToken",
+      "input_token": "nextToken",
+      "limit_key": "maxResults"
+    },
+    "GetDifferences": {
+      "result_key": "differences",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/codecommit/2015-04-13/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/codecommit/2015-04-13/service-2.json.gz
new file mode 100644
index 00000000..269c35a1
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/codecommit/2015-04-13/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/codeconnections/2023-12-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/codeconnections/2023-12-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..dce3e03e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/codeconnections/2023-12-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/codeconnections/2023-12-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/codeconnections/2023-12-01/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/codeconnections/2023-12-01/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/codeconnections/2023-12-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/codeconnections/2023-12-01/service-2.json.gz
new file mode 100644
index 00000000..76155af6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/codeconnections/2023-12-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/codedeploy/2014-10-06/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/codedeploy/2014-10-06/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..d0722945
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/codedeploy/2014-10-06/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/codedeploy/2014-10-06/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/codedeploy/2014-10-06/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/codedeploy/2014-10-06/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/codedeploy/2014-10-06/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/codedeploy/2014-10-06/paginators-1.json
new file mode 100644
index 00000000..aae3fad3
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/codedeploy/2014-10-06/paginators-1.json
@@ -0,0 +1,49 @@
+{
+  "pagination": {
+    "ListApplicationRevisions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "revisions"
+    },
+    "ListApplications": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "applications"
+    },
+    "ListDeploymentConfigs": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "deploymentConfigsList"
+    },
+    "ListDeploymentGroups": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "deploymentGroups"
+    },
+    "ListDeploymentInstances": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "instancesList"
+    },
+    "ListDeployments": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "deployments"
+    },
+    "ListDeploymentTargets": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "targetIds"
+    },
+    "ListGitHubAccountTokenNames": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "tokenNameList"
+    },
+    "ListOnPremisesInstances": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "instanceNames"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/codedeploy/2014-10-06/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/codedeploy/2014-10-06/service-2.json.gz
new file mode 100644
index 00000000..da877a0f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/codedeploy/2014-10-06/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/codedeploy/2014-10-06/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/codedeploy/2014-10-06/waiters-2.json
new file mode 100644
index 00000000..0fea4fac
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/codedeploy/2014-10-06/waiters-2.json
@@ -0,0 +1,30 @@
+{
+  "version": 2,
+  "waiters": {
+    "DeploymentSuccessful": {
+      "delay": 15,
+      "operation": "GetDeployment",
+      "maxAttempts": 120,
+      "acceptors": [
+        {
+          "expected": "Succeeded",
+          "matcher": "path",
+          "state": "success",
+          "argument": "deploymentInfo.status"
+        },
+        {
+          "expected": "Failed",
+          "matcher": "path",
+          "state": "failure",
+          "argument": "deploymentInfo.status"
+        },
+        {
+          "expected": "Stopped",
+          "matcher": "path",
+          "state": "failure",
+          "argument": "deploymentInfo.status"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/codeguru-reviewer/2019-09-19/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/codeguru-reviewer/2019-09-19/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..fa38ee9a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/codeguru-reviewer/2019-09-19/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/codeguru-reviewer/2019-09-19/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/codeguru-reviewer/2019-09-19/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/codeguru-reviewer/2019-09-19/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/codeguru-reviewer/2019-09-19/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/codeguru-reviewer/2019-09-19/paginators-1.json
new file mode 100644
index 00000000..bbc1f584
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/codeguru-reviewer/2019-09-19/paginators-1.json
@@ -0,0 +1,10 @@
+{
+  "pagination": {
+    "ListRepositoryAssociations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "RepositoryAssociationSummaries"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/codeguru-reviewer/2019-09-19/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/codeguru-reviewer/2019-09-19/service-2.json.gz
new file mode 100644
index 00000000..75859335
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/codeguru-reviewer/2019-09-19/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/codeguru-reviewer/2019-09-19/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/codeguru-reviewer/2019-09-19/waiters-2.json
new file mode 100644
index 00000000..cd1730fa
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/codeguru-reviewer/2019-09-19/waiters-2.json
@@ -0,0 +1,58 @@
+{
+    "version": 2,
+    "waiters":
+    {
+        "RepositoryAssociationSucceeded":
+        {
+            "description": "Wait until a repository association is complete.",
+            "operation": "DescribeRepositoryAssociation",
+            "delay": 10,
+            "maxAttempts": 30,
+            "acceptors": [
+            {
+                "state": "success",
+                "matcher": "path",
+                "argument": "RepositoryAssociation.State",
+                "expected": "Associated"
+            },
+            {
+                "state": "failure",
+                "matcher": "path",
+                "argument": "RepositoryAssociation.State",
+                "expected": "Failed"
+            },
+            {
+                "state": "retry",
+                "matcher": "path",
+                "argument": "RepositoryAssociation.State",
+                "expected": "Associating"
+            }]
+        },
+        "CodeReviewCompleted":
+        {
+            "description": "Wait until a code review is complete.",
+            "operation": "DescribeCodeReview",
+            "delay": 10,
+            "maxAttempts": 180,
+            "acceptors": [
+            {
+                "state": "success",
+                "matcher": "path",
+                "argument": "CodeReview.State",
+                "expected": "Completed"
+            },
+            {
+                "state": "failure",
+                "matcher": "path",
+                "argument": "CodeReview.State",
+                "expected": "Failed"
+            },
+            {
+                "state": "retry",
+                "matcher": "path",
+                "argument": "CodeReview.State",
+                "expected": "Pending"
+            }]
+        }
+    }
+}
\ No newline at end of file
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/codeguru-security/2018-05-10/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/codeguru-security/2018-05-10/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..3c42d026
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/codeguru-security/2018-05-10/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/codeguru-security/2018-05-10/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/codeguru-security/2018-05-10/paginators-1.json
new file mode 100644
index 00000000..03e1cbfc
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/codeguru-security/2018-05-10/paginators-1.json
@@ -0,0 +1,22 @@
+{
+  "pagination": {
+    "GetFindings": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "findings"
+    },
+    "ListFindingsMetrics": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "findingsMetrics"
+    },
+    "ListScans": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "summaries"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/codeguru-security/2018-05-10/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/codeguru-security/2018-05-10/service-2.json.gz
new file mode 100644
index 00000000..e43af3eb
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/codeguru-security/2018-05-10/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/codeguruprofiler/2019-07-18/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/codeguruprofiler/2019-07-18/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..41fe0ebf
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/codeguruprofiler/2019-07-18/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/codeguruprofiler/2019-07-18/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/codeguruprofiler/2019-07-18/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/codeguruprofiler/2019-07-18/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/codeguruprofiler/2019-07-18/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/codeguruprofiler/2019-07-18/paginators-1.json
new file mode 100644
index 00000000..c787d76c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/codeguruprofiler/2019-07-18/paginators-1.json
@@ -0,0 +1,10 @@
+{
+  "pagination": {
+    "ListProfileTimes": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "profileTimes"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/codeguruprofiler/2019-07-18/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/codeguruprofiler/2019-07-18/service-2.json.gz
new file mode 100644
index 00000000..922fade6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/codeguruprofiler/2019-07-18/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/codepipeline/2015-07-09/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/codepipeline/2015-07-09/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..ac04c7ae
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/codepipeline/2015-07-09/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/codepipeline/2015-07-09/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/codepipeline/2015-07-09/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/codepipeline/2015-07-09/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/codepipeline/2015-07-09/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/codepipeline/2015-07-09/paginators-1.json
new file mode 100644
index 00000000..00b8348e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/codepipeline/2015-07-09/paginators-1.json
@@ -0,0 +1,45 @@
+{
+  "pagination": {
+    "ListActionTypes": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "actionTypes"
+    },
+    "ListPipelineExecutions": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "pipelineExecutionSummaries"
+    },
+    "ListPipelines": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "pipelines",
+      "limit_key": "maxResults"
+    },
+    "ListWebhooks": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "webhooks"
+    },
+    "ListActionExecutions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "actionExecutionDetails"
+    },
+    "ListTagsForResource": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "tags"
+    },
+    "ListRuleExecutions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "ruleExecutionDetails"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/codepipeline/2015-07-09/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/codepipeline/2015-07-09/service-2.json.gz
new file mode 100644
index 00000000..b3b91732
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/codepipeline/2015-07-09/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/codestar-connections/2019-12-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/codestar-connections/2019-12-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..b04bf4e6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/codestar-connections/2019-12-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/codestar-connections/2019-12-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/codestar-connections/2019-12-01/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/codestar-connections/2019-12-01/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/codestar-connections/2019-12-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/codestar-connections/2019-12-01/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/codestar-connections/2019-12-01/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/codestar-connections/2019-12-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/codestar-connections/2019-12-01/service-2.json.gz
new file mode 100644
index 00000000..e2be64f1
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/codestar-connections/2019-12-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/codestar-notifications/2019-10-15/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/codestar-notifications/2019-10-15/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..0fcfc76a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/codestar-notifications/2019-10-15/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/codestar-notifications/2019-10-15/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/codestar-notifications/2019-10-15/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/codestar-notifications/2019-10-15/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/codestar-notifications/2019-10-15/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/codestar-notifications/2019-10-15/paginators-1.json
new file mode 100644
index 00000000..95018141
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/codestar-notifications/2019-10-15/paginators-1.json
@@ -0,0 +1,22 @@
+{
+  "pagination": {
+    "ListEventTypes": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "EventTypes"
+    },
+    "ListNotificationRules": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "NotificationRules"
+    },
+    "ListTargets": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Targets"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/codestar-notifications/2019-10-15/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/codestar-notifications/2019-10-15/service-2.json.gz
new file mode 100644
index 00000000..cb42fa2f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/codestar-notifications/2019-10-15/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cognito-identity/2014-06-30/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cognito-identity/2014-06-30/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..caa41c26
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cognito-identity/2014-06-30/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cognito-identity/2014-06-30/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cognito-identity/2014-06-30/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cognito-identity/2014-06-30/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cognito-identity/2014-06-30/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cognito-identity/2014-06-30/paginators-1.json
new file mode 100644
index 00000000..2af6e40c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cognito-identity/2014-06-30/paginators-1.json
@@ -0,0 +1,10 @@
+{
+  "pagination": {
+    "ListIdentityPools": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "IdentityPools"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cognito-identity/2014-06-30/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cognito-identity/2014-06-30/service-2.json.gz
new file mode 100644
index 00000000..5612d2ef
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cognito-identity/2014-06-30/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cognito-idp/2016-04-18/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cognito-idp/2016-04-18/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..043bbf1c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cognito-idp/2016-04-18/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cognito-idp/2016-04-18/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cognito-idp/2016-04-18/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cognito-idp/2016-04-18/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cognito-idp/2016-04-18/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cognito-idp/2016-04-18/paginators-1.json
new file mode 100644
index 00000000..51b7c94d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cognito-idp/2016-04-18/paginators-1.json
@@ -0,0 +1,58 @@
+{
+  "pagination": {
+    "AdminListGroupsForUser": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "Groups"
+    },
+    "AdminListUserAuthEvents": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "AuthEvents"
+    },
+    "ListGroups": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "Groups"
+    },
+    "ListIdentityProviders": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Providers"
+    },
+    "ListResourceServers": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ResourceServers"
+    },
+    "ListUserPoolClients": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "UserPoolClients"
+    },
+    "ListUserPools": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "UserPools"
+    },
+    "ListUsersInGroup": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "Users"
+    },
+    "ListUsers": {
+      "input_token": "PaginationToken",
+      "limit_key": "Limit",
+      "output_token": "PaginationToken",
+      "result_key": "Users"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cognito-idp/2016-04-18/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cognito-idp/2016-04-18/service-2.json.gz
new file mode 100644
index 00000000..fb6f4eac
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cognito-idp/2016-04-18/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cognito-sync/2014-06-30/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cognito-sync/2014-06-30/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..a96a69b2
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cognito-sync/2014-06-30/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cognito-sync/2014-06-30/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cognito-sync/2014-06-30/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cognito-sync/2014-06-30/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cognito-sync/2014-06-30/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cognito-sync/2014-06-30/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cognito-sync/2014-06-30/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cognito-sync/2014-06-30/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cognito-sync/2014-06-30/service-2.json.gz
new file mode 100644
index 00000000..bcdb6a71
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cognito-sync/2014-06-30/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/comprehend/2017-11-27/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/comprehend/2017-11-27/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..9c5771fa
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/comprehend/2017-11-27/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/comprehend/2017-11-27/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/comprehend/2017-11-27/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/comprehend/2017-11-27/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/comprehend/2017-11-27/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/comprehend/2017-11-27/paginators-1.json
new file mode 100644
index 00000000..3a458182
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/comprehend/2017-11-27/paginators-1.json
@@ -0,0 +1,64 @@
+{
+  "pagination": {
+    "ListTopicsDetectionJobs": {
+      "result_key": "TopicsDetectionJobPropertiesList",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListDocumentClassificationJobs": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "DocumentClassificationJobPropertiesList"
+    },
+    "ListDocumentClassifiers": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "DocumentClassifierPropertiesList"
+    },
+    "ListDominantLanguageDetectionJobs": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "DominantLanguageDetectionJobPropertiesList"
+    },
+    "ListEntitiesDetectionJobs": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "EntitiesDetectionJobPropertiesList"
+    },
+    "ListEntityRecognizers": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "EntityRecognizerPropertiesList"
+    },
+    "ListKeyPhrasesDetectionJobs": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "KeyPhrasesDetectionJobPropertiesList"
+    },
+    "ListSentimentDetectionJobs": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "SentimentDetectionJobPropertiesList"
+    },
+    "ListEndpoints": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "EndpointPropertiesList"
+    },
+    "ListPiiEntitiesDetectionJobs": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "PiiEntitiesDetectionJobPropertiesList"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/comprehend/2017-11-27/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/comprehend/2017-11-27/service-2.json.gz
new file mode 100644
index 00000000..108da83c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/comprehend/2017-11-27/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/comprehendmedical/2018-10-30/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/comprehendmedical/2018-10-30/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..cab95628
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/comprehendmedical/2018-10-30/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/comprehendmedical/2018-10-30/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/comprehendmedical/2018-10-30/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/comprehendmedical/2018-10-30/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/comprehendmedical/2018-10-30/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/comprehendmedical/2018-10-30/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/comprehendmedical/2018-10-30/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/comprehendmedical/2018-10-30/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/comprehendmedical/2018-10-30/service-2.json.gz
new file mode 100644
index 00000000..8f80644e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/comprehendmedical/2018-10-30/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/compute-optimizer/2019-11-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/compute-optimizer/2019-11-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..397af3a1
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/compute-optimizer/2019-11-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/compute-optimizer/2019-11-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/compute-optimizer/2019-11-01/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/compute-optimizer/2019-11-01/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/compute-optimizer/2019-11-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/compute-optimizer/2019-11-01/paginators-1.json
new file mode 100644
index 00000000..1d115fc2
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/compute-optimizer/2019-11-01/paginators-1.json
@@ -0,0 +1,34 @@
+{
+  "pagination": {
+    "DescribeRecommendationExportJobs": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "recommendationExportJobs"
+    },
+    "GetEnrollmentStatusesForOrganization": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "accountEnrollmentStatuses"
+    },
+    "GetLambdaFunctionRecommendations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "lambdaFunctionRecommendations"
+    },
+    "GetRecommendationPreferences": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "recommendationPreferencesDetails"
+    },
+    "GetRecommendationSummaries": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "recommendationSummaries"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/compute-optimizer/2019-11-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/compute-optimizer/2019-11-01/service-2.json.gz
new file mode 100644
index 00000000..0ba3cba1
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/compute-optimizer/2019-11-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/config/2014-11-12/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/config/2014-11-12/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..dd2260b4
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/config/2014-11-12/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/config/2014-11-12/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/config/2014-11-12/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/config/2014-11-12/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/config/2014-11-12/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/config/2014-11-12/paginators-1.json
new file mode 100644
index 00000000..04fd5c5b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/config/2014-11-12/paginators-1.json
@@ -0,0 +1,198 @@
+{
+  "pagination": {
+    "DescribeComplianceByConfigRule": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "ComplianceByConfigRules"
+    },
+    "DescribeComplianceByResource": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "ComplianceByResources",
+      "limit_key": "Limit"
+    },
+    "DescribeConfigRules": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "ConfigRules"
+    },
+    "GetComplianceDetailsByConfigRule": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "EvaluationResults",
+      "limit_key": "Limit"
+    },
+    "GetComplianceDetailsByResource": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "EvaluationResults"
+    },
+    "GetResourceConfigHistory": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "configurationItems",
+      "limit_key": "limit"
+    },
+    "ListDiscoveredResources": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "resourceIdentifiers",
+      "limit_key": "limit"
+    },
+    "DescribeAggregateComplianceByConfigRules": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "AggregateComplianceByConfigRules"
+    },
+    "DescribeAggregationAuthorizations": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "AggregationAuthorizations"
+    },
+    "DescribeConfigRuleEvaluationStatus": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "ConfigRulesEvaluationStatus"
+    },
+    "DescribeConfigurationAggregatorSourcesStatus": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "AggregatedSourceStatusList"
+    },
+    "DescribeConfigurationAggregators": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "ConfigurationAggregators"
+    },
+    "DescribePendingAggregationRequests": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "PendingAggregationRequests"
+    },
+    "DescribeRetentionConfigurations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "RetentionConfigurations"
+    },
+    "GetAggregateComplianceDetailsByConfigRule": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "AggregateEvaluationResults"
+    },
+    "ListAggregateDiscoveredResources": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "ResourceIdentifiers"
+    },
+    "DescribeRemediationExecutionStatus": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "RemediationExecutionStatuses"
+    },
+    "DescribeAggregateComplianceByConformancePacks": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "AggregateComplianceByConformancePacks"
+    },
+    "DescribeConformancePackStatus": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "ConformancePackStatusDetails"
+    },
+    "DescribeConformancePacks": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "ConformancePackDetails"
+    },
+    "DescribeOrganizationConfigRuleStatuses": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "OrganizationConfigRuleStatuses"
+    },
+    "DescribeOrganizationConfigRules": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "OrganizationConfigRules"
+    },
+    "DescribeOrganizationConformancePackStatuses": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "OrganizationConformancePackStatuses"
+    },
+    "DescribeOrganizationConformancePacks": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "OrganizationConformancePacks"
+    },
+    "GetConformancePackComplianceSummary": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "ConformancePackComplianceSummaryList"
+    },
+    "GetOrganizationConfigRuleDetailedStatus": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "OrganizationConfigRuleDetailedStatus"
+    },
+    "GetOrganizationConformancePackDetailedStatus": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "OrganizationConformancePackDetailedStatuses"
+    },
+    "ListTagsForResource": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "Tags"
+    },
+    "SelectAggregateResourceConfig": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "non_aggregate_keys": [
+        "QueryInfo"
+      ],
+      "output_token": "NextToken",
+      "result_key": "Results"
+    },
+    "SelectResourceConfig": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "non_aggregate_keys": [
+        "QueryInfo"
+      ],
+      "output_token": "NextToken",
+      "result_key": "Results"
+    },
+    "ListResourceEvaluations": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "ResourceEvaluations"
+    },
+    "ListConfigurationRecorders": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ConfigurationRecorderSummaries"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/config/2014-11-12/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/config/2014-11-12/service-2.json.gz
new file mode 100644
index 00000000..29108675
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/config/2014-11-12/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/connect-contact-lens/2020-08-21/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/connect-contact-lens/2020-08-21/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..85eed178
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/connect-contact-lens/2020-08-21/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/connect-contact-lens/2020-08-21/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/connect-contact-lens/2020-08-21/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/connect-contact-lens/2020-08-21/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/connect-contact-lens/2020-08-21/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/connect-contact-lens/2020-08-21/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/connect-contact-lens/2020-08-21/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/connect-contact-lens/2020-08-21/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/connect-contact-lens/2020-08-21/service-2.json.gz
new file mode 100644
index 00000000..88410519
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/connect-contact-lens/2020-08-21/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/connect/2017-08-08/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/connect/2017-08-08/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..d194d55d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/connect/2017-08-08/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/connect/2017-08-08/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/connect/2017-08-08/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/connect/2017-08-08/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/connect/2017-08-08/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/connect/2017-08-08/paginators-1.json
new file mode 100644
index 00000000..2980cc21
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/connect/2017-08-08/paginators-1.json
@@ -0,0 +1,440 @@
+{
+  "pagination": {
+    "GetMetricData": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "MetricResults"
+    },
+    "ListRoutingProfiles": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "RoutingProfileSummaryList"
+    },
+    "ListSecurityProfiles": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "SecurityProfileSummaryList"
+    },
+    "ListUserHierarchyGroups": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "UserHierarchyGroupSummaryList"
+    },
+    "ListUsers": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "UserSummaryList"
+    },
+    "ListContactFlows": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ContactFlowSummaryList"
+    },
+    "ListHoursOfOperations": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "HoursOfOperationSummaryList"
+    },
+    "ListPhoneNumbers": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "PhoneNumberSummaryList"
+    },
+    "ListQueues": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "QueueSummaryList"
+    },
+    "ListPrompts": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "PromptSummaryList"
+    },
+    "ListRoutingProfileQueues": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "RoutingProfileQueueConfigSummaryList",
+      "non_aggregate_keys": [
+        "LastModifiedRegion",
+        "LastModifiedTime"
+      ]
+    },
+    "ListApprovedOrigins": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Origins"
+    },
+    "ListInstanceAttributes": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Attributes"
+    },
+    "ListInstanceStorageConfigs": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "StorageConfigs"
+    },
+    "ListInstances": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "InstanceSummaryList"
+    },
+    "ListLambdaFunctions": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "LambdaFunctions"
+    },
+    "ListLexBots": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "LexBots"
+    },
+    "ListSecurityKeys": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "SecurityKeys"
+    },
+    "ListIntegrationAssociations": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "IntegrationAssociationSummaryList"
+    },
+    "ListUseCases": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "UseCaseSummaryList"
+    },
+    "ListQuickConnects": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "QuickConnectSummaryList"
+    },
+    "ListQueueQuickConnects": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "QuickConnectSummaryList",
+      "non_aggregate_keys": [
+        "LastModifiedRegion",
+        "LastModifiedTime"
+      ]
+    },
+    "ListBots": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "LexBots"
+    },
+    "ListAgentStatuses": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "AgentStatusSummaryList"
+    },
+    "ListSecurityProfilePermissions": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Permissions",
+      "non_aggregate_keys": [
+        "LastModifiedRegion",
+        "LastModifiedTime"
+      ]
+    },
+    "ListContactReferences": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "ReferenceSummaryList"
+    },
+    "ListContactFlowModules": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ContactFlowModulesSummaryList"
+    },
+    "ListDefaultVocabularies": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "DefaultVocabularyList"
+    },
+    "SearchVocabularies": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "VocabularySummaryList"
+    },
+    "ListPhoneNumbersV2": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ListPhoneNumbersSummaryList"
+    },
+    "SearchAvailablePhoneNumbers": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "AvailableNumbersList"
+    },
+    "SearchUsers": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "non_aggregate_keys": [
+        "ApproximateTotalCount"
+      ],
+      "output_token": "NextToken",
+      "result_key": "Users"
+    },
+    "ListTaskTemplates": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "TaskTemplates"
+    },
+    "SearchSecurityProfiles": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "non_aggregate_keys": [
+        "ApproximateTotalCount"
+      ],
+      "output_token": "NextToken",
+      "result_key": "SecurityProfiles"
+    },
+    "SearchQueues": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "non_aggregate_keys": [
+        "ApproximateTotalCount"
+      ],
+      "output_token": "NextToken",
+      "result_key": "Queues"
+    },
+    "SearchRoutingProfiles": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "non_aggregate_keys": [
+        "ApproximateTotalCount"
+      ],
+      "output_token": "NextToken",
+      "result_key": "RoutingProfiles"
+    },
+    "ListTrafficDistributionGroups": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "TrafficDistributionGroupSummaryList"
+    },
+    "ListRules": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "RuleSummaryList"
+    },
+    "ListContactEvaluations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "EvaluationSummaryList"
+    },
+    "ListEvaluationFormVersions": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "EvaluationFormVersionSummaryList"
+    },
+    "ListEvaluationForms": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "EvaluationFormSummaryList"
+    },
+    "SearchHoursOfOperations": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "non_aggregate_keys": [
+        "ApproximateTotalCount"
+      ],
+      "output_token": "NextToken",
+      "result_key": "HoursOfOperations"
+    },
+    "SearchPrompts": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "non_aggregate_keys": [
+        "ApproximateTotalCount"
+      ],
+      "output_token": "NextToken",
+      "result_key": "Prompts"
+    },
+    "SearchQuickConnects": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "non_aggregate_keys": [
+        "ApproximateTotalCount"
+      ],
+      "output_token": "NextToken",
+      "result_key": "QuickConnects"
+    },
+    "SearchResourceTags": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Tags"
+    },
+    "ListTrafficDistributionGroupUsers": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "TrafficDistributionGroupUserSummaryList"
+    },
+    "ListViewVersions": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ViewVersionSummaryList"
+    },
+    "ListViews": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ViewsSummaryList"
+    },
+    "ListSecurityProfileApplications": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Applications",
+      "non_aggregate_keys": [
+        "LastModifiedRegion",
+        "LastModifiedTime"
+      ]
+    },
+    "ListFlowAssociations": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "FlowAssociationSummaryList"
+    },
+    "ListPredefinedAttributes": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "PredefinedAttributeSummaryList"
+    },
+    "ListUserProficiencies": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "non_aggregate_keys": [
+        "LastModifiedTime",
+        "LastModifiedRegion"
+      ],
+      "output_token": "NextToken",
+      "result_key": "UserProficiencyList"
+    },
+    "SearchContacts": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "non_aggregate_keys": [
+        "TotalCount"
+      ],
+      "output_token": "NextToken",
+      "result_key": "Contacts"
+    },
+    "SearchPredefinedAttributes": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "non_aggregate_keys": [
+        "ApproximateTotalCount"
+      ],
+      "output_token": "NextToken",
+      "result_key": "PredefinedAttributes"
+    },
+    "SearchContactFlowModules": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "non_aggregate_keys": [
+        "ApproximateTotalCount"
+      ],
+      "output_token": "NextToken",
+      "result_key": "ContactFlowModules"
+    },
+    "SearchContactFlows": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "non_aggregate_keys": [
+        "ApproximateTotalCount"
+      ],
+      "output_token": "NextToken",
+      "result_key": "ContactFlows"
+    },
+    "ListAuthenticationProfiles": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "AuthenticationProfileSummaryList"
+    },
+    "SearchAgentStatuses": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "non_aggregate_keys": [
+        "ApproximateTotalCount"
+      ],
+      "output_token": "NextToken",
+      "result_key": "AgentStatuses"
+    },
+    "SearchUserHierarchyGroups": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "non_aggregate_keys": [
+        "ApproximateTotalCount"
+      ],
+      "output_token": "NextToken",
+      "result_key": "UserHierarchyGroups"
+    },
+    "ListContactFlowVersions": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ContactFlowVersionSummaryList"
+    },
+    "ListHoursOfOperationOverrides": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "non_aggregate_keys": [
+        "LastModifiedRegion",
+        "LastModifiedTime"
+      ],
+      "output_token": "NextToken",
+      "result_key": "HoursOfOperationOverrideList"
+    },
+    "SearchHoursOfOperationOverrides": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "non_aggregate_keys": [
+        "ApproximateTotalCount"
+      ],
+      "output_token": "NextToken",
+      "result_key": "HoursOfOperationOverrides"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/connect/2017-08-08/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/connect/2017-08-08/service-2.json.gz
new file mode 100644
index 00000000..ca6a3b31
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/connect/2017-08-08/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/connectcampaigns/2021-01-30/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/connectcampaigns/2021-01-30/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..1b48d8f3
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/connectcampaigns/2021-01-30/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/connectcampaigns/2021-01-30/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/connectcampaigns/2021-01-30/paginators-1.json
new file mode 100644
index 00000000..6ab04512
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/connectcampaigns/2021-01-30/paginators-1.json
@@ -0,0 +1,10 @@
+{
+  "pagination": {
+    "ListCampaigns": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "campaignSummaryList"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/connectcampaigns/2021-01-30/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/connectcampaigns/2021-01-30/service-2.json.gz
new file mode 100644
index 00000000..ee5f79e8
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/connectcampaigns/2021-01-30/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/connectcampaignsv2/2024-04-23/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/connectcampaignsv2/2024-04-23/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..948c68f0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/connectcampaignsv2/2024-04-23/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/connectcampaignsv2/2024-04-23/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/connectcampaignsv2/2024-04-23/paginators-1.json
new file mode 100644
index 00000000..c8396078
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/connectcampaignsv2/2024-04-23/paginators-1.json
@@ -0,0 +1,16 @@
+{
+  "pagination": {
+    "ListCampaigns": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "campaignSummaryList"
+    },
+    "ListConnectInstanceIntegrations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "integrationSummaryList"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/connectcampaignsv2/2024-04-23/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/connectcampaignsv2/2024-04-23/service-2.json.gz
new file mode 100644
index 00000000..81bdce21
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/connectcampaignsv2/2024-04-23/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/connectcases/2022-10-03/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/connectcases/2022-10-03/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..bc64c09c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/connectcases/2022-10-03/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/connectcases/2022-10-03/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/connectcases/2022-10-03/paginators-1.json
new file mode 100644
index 00000000..a0317075
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/connectcases/2022-10-03/paginators-1.json
@@ -0,0 +1,22 @@
+{
+  "pagination": {
+    "SearchCases": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "cases"
+    },
+    "SearchRelatedItems": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "relatedItems"
+    },
+    "ListCaseRules": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "caseRules"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/connectcases/2022-10-03/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/connectcases/2022-10-03/service-2.json.gz
new file mode 100644
index 00000000..106bc9c9
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/connectcases/2022-10-03/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/connectparticipant/2018-09-07/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/connectparticipant/2018-09-07/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..85e7cd44
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/connectparticipant/2018-09-07/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/connectparticipant/2018-09-07/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/connectparticipant/2018-09-07/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/connectparticipant/2018-09-07/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/connectparticipant/2018-09-07/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/connectparticipant/2018-09-07/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/connectparticipant/2018-09-07/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/connectparticipant/2018-09-07/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/connectparticipant/2018-09-07/service-2.json.gz
new file mode 100644
index 00000000..373efedc
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/connectparticipant/2018-09-07/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/controlcatalog/2018-05-10/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/controlcatalog/2018-05-10/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..4292e150
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/controlcatalog/2018-05-10/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/controlcatalog/2018-05-10/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/controlcatalog/2018-05-10/paginators-1.json
new file mode 100644
index 00000000..1926666e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/controlcatalog/2018-05-10/paginators-1.json
@@ -0,0 +1,28 @@
+{
+  "pagination": {
+    "ListCommonControls": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "CommonControls"
+    },
+    "ListDomains": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Domains"
+    },
+    "ListObjectives": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Objectives"
+    },
+    "ListControls": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Controls"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/controlcatalog/2018-05-10/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/controlcatalog/2018-05-10/service-2.json.gz
new file mode 100644
index 00000000..e0f136e6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/controlcatalog/2018-05-10/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/controlcatalog/2018-05-10/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/controlcatalog/2018-05-10/waiters-2.json
new file mode 100644
index 00000000..13f60ee6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/controlcatalog/2018-05-10/waiters-2.json
@@ -0,0 +1,5 @@
+{
+  "version": 2,
+  "waiters": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/controltower/2018-05-10/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/controltower/2018-05-10/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..57ab891a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/controltower/2018-05-10/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/controltower/2018-05-10/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/controltower/2018-05-10/paginators-1.json
new file mode 100644
index 00000000..e34843be
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/controltower/2018-05-10/paginators-1.json
@@ -0,0 +1,40 @@
+{
+  "pagination": {
+    "ListEnabledControls": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "enabledControls"
+    },
+    "ListLandingZones": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "landingZones"
+    },
+    "ListBaselines": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "baselines"
+    },
+    "ListEnabledBaselines": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "enabledBaselines"
+    },
+    "ListControlOperations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "controlOperations"
+    },
+    "ListLandingZoneOperations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "landingZoneOperations"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/controltower/2018-05-10/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/controltower/2018-05-10/service-2.json.gz
new file mode 100644
index 00000000..2910a62b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/controltower/2018-05-10/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cost-optimization-hub/2022-07-26/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cost-optimization-hub/2022-07-26/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..7f835f60
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cost-optimization-hub/2022-07-26/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cost-optimization-hub/2022-07-26/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cost-optimization-hub/2022-07-26/paginators-1.json
new file mode 100644
index 00000000..39460e68
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cost-optimization-hub/2022-07-26/paginators-1.json
@@ -0,0 +1,22 @@
+{
+  "pagination": {
+    "ListEnrollmentStatuses": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListRecommendationSummaries": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListRecommendations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cost-optimization-hub/2022-07-26/paginators-1.sdk-extras.json b/.venv/lib/python3.12/site-packages/botocore/data/cost-optimization-hub/2022-07-26/paginators-1.sdk-extras.json
new file mode 100644
index 00000000..f9c62d53
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cost-optimization-hub/2022-07-26/paginators-1.sdk-extras.json
@@ -0,0 +1,20 @@
+{
+  "version": 1.0,
+  "merge": {
+    "pagination": {
+      "ListEnrollmentStatuses": {
+        "non_aggregate_keys": [
+          "includeMemberAccounts"
+        ]
+      },
+      "ListRecommendationSummaries": {
+        "non_aggregate_keys": [
+          "groupBy",
+          "currencyCode",
+          "estimatedTotalDedupedSavings",
+          "metrics"
+        ]
+      }
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cost-optimization-hub/2022-07-26/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cost-optimization-hub/2022-07-26/service-2.json.gz
new file mode 100644
index 00000000..88ee8b2b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cost-optimization-hub/2022-07-26/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cost-optimization-hub/2022-07-26/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/cost-optimization-hub/2022-07-26/waiters-2.json
new file mode 100644
index 00000000..13f60ee6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cost-optimization-hub/2022-07-26/waiters-2.json
@@ -0,0 +1,5 @@
+{
+  "version": 2,
+  "waiters": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cur/2017-01-06/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cur/2017-01-06/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..a3cbe69f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cur/2017-01-06/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/cur/2017-01-06/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cur/2017-01-06/examples-1.json
new file mode 100644
index 00000000..d647e38b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cur/2017-01-06/examples-1.json
@@ -0,0 +1,102 @@
+{
+  "version": "1.0",
+  "examples": {
+    "DeleteReportDefinition": [
+      {
+        "input": {
+          "ReportName": "ExampleReport"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes the AWS Cost and Usage report named ExampleReport.",
+        "id": "to-delete-a-report",
+        "title": "To delete the AWS Cost and Usage report named ExampleReport."
+      }
+    ],
+    "DescribeReportDefinitions": [
+      {
+        "input": {
+          "MaxResults": 5
+        },
+        "output": {
+          "ReportDefinitions": [
+            {
+              "AdditionalArtifacts": [
+                "QUICKSIGHT"
+              ],
+              "AdditionalSchemaElements": [
+                "RESOURCES"
+              ],
+              "Compression": "GZIP",
+              "Format": "textORcsv",
+              "ReportName": "ExampleReport",
+              "S3Bucket": "example-s3-bucket",
+              "S3Prefix": "exampleprefix",
+              "S3Region": "us-east-1",
+              "TimeUnit": "HOURLY"
+            },
+            {
+              "AdditionalArtifacts": [
+                "QUICKSIGHT"
+              ],
+              "AdditionalSchemaElements": [
+                "RESOURCES"
+              ],
+              "Compression": "GZIP",
+              "Format": "textORcsv",
+              "ReportName": "ExampleReport2",
+              "S3Bucket": "example-s3-bucket",
+              "S3Prefix": "exampleprefix",
+              "S3Region": "us-east-1",
+              "TimeUnit": "HOURLY"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example lists the AWS Cost and Usage reports for the account.",
+        "id": "to-retrieve-report-definitions",
+        "title": "To list the AWS Cost and Usage reports for the account."
+      }
+    ],
+    "PutReportDefinition": [
+      {
+        "input": {
+          "ReportDefinition": {
+            "AdditionalArtifacts": [
+              "REDSHIFT",
+              "QUICKSIGHT"
+            ],
+            "AdditionalSchemaElements": [
+              "RESOURCES"
+            ],
+            "Compression": "ZIP",
+            "Format": "textORcsv",
+            "ReportName": "ExampleReport",
+            "S3Bucket": "example-s3-bucket",
+            "S3Prefix": "exampleprefix",
+            "S3Region": "us-east-1",
+            "TimeUnit": "DAILY"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example creates a AWS Cost and Usage report named ExampleReport.",
+        "id": "to-create-a-report-definitions",
+        "title": "To create a report named ExampleReport."
+      }
+    ]
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cur/2017-01-06/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/cur/2017-01-06/paginators-1.json
new file mode 100644
index 00000000..7db4dfe1
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cur/2017-01-06/paginators-1.json
@@ -0,0 +1,10 @@
+{
+  "pagination": {
+    "DescribeReportDefinitions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ReportDefinitions"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/cur/2017-01-06/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/cur/2017-01-06/service-2.json.gz
new file mode 100644
index 00000000..65bca3e6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/cur/2017-01-06/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/customer-profiles/2020-08-15/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/customer-profiles/2020-08-15/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..3dce208c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/customer-profiles/2020-08-15/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/customer-profiles/2020-08-15/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/customer-profiles/2020-08-15/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/customer-profiles/2020-08-15/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/customer-profiles/2020-08-15/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/customer-profiles/2020-08-15/paginators-1.json
new file mode 100644
index 00000000..29f92660
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/customer-profiles/2020-08-15/paginators-1.json
@@ -0,0 +1,40 @@
+{
+  "pagination": {
+    "ListEventStreams": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Items"
+    },
+    "GetSimilarProfiles": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ProfileIds"
+    },
+    "ListObjectTypeAttributes": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Items"
+    },
+    "ListRuleBasedMatches": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "MatchIds"
+    },
+    "ListSegmentDefinitions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Items"
+    },
+    "ListEventTriggers": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Items"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/customer-profiles/2020-08-15/paginators-1.sdk-extras.json b/.venv/lib/python3.12/site-packages/botocore/data/customer-profiles/2020-08-15/paginators-1.sdk-extras.json
new file mode 100644
index 00000000..15e5e318
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/customer-profiles/2020-08-15/paginators-1.sdk-extras.json
@@ -0,0 +1,15 @@
+{
+  "version": 1.0,
+  "merge": {
+    "pagination": {
+      "GetSimilarProfiles": {
+        "non_aggregate_keys": [
+          "MatchType",
+          "MatchId",
+          "RuleLevel",
+          "ConfidenceScore"
+        ]
+      }
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/customer-profiles/2020-08-15/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/customer-profiles/2020-08-15/service-2.json.gz
new file mode 100644
index 00000000..7dfdf179
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/customer-profiles/2020-08-15/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/databrew/2017-07-25/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/databrew/2017-07-25/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..b55a7c1b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/databrew/2017-07-25/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/databrew/2017-07-25/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/databrew/2017-07-25/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/databrew/2017-07-25/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/databrew/2017-07-25/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/databrew/2017-07-25/paginators-1.json
new file mode 100644
index 00000000..d18a749e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/databrew/2017-07-25/paginators-1.json
@@ -0,0 +1,52 @@
+{
+  "pagination": {
+    "ListDatasets": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Datasets"
+    },
+    "ListJobRuns": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "JobRuns"
+    },
+    "ListJobs": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Jobs"
+    },
+    "ListProjects": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Projects"
+    },
+    "ListRecipeVersions": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Recipes"
+    },
+    "ListRecipes": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Recipes"
+    },
+    "ListSchedules": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Schedules"
+    },
+    "ListRulesets": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Rulesets"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/databrew/2017-07-25/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/databrew/2017-07-25/service-2.json.gz
new file mode 100644
index 00000000..097c9ddc
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/databrew/2017-07-25/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/dataexchange/2017-07-25/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/dataexchange/2017-07-25/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..767ebab1
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/dataexchange/2017-07-25/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/dataexchange/2017-07-25/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/dataexchange/2017-07-25/paginators-1.json
new file mode 100644
index 00000000..cf704b02
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/dataexchange/2017-07-25/paginators-1.json
@@ -0,0 +1,46 @@
+{
+  "pagination": {
+    "ListDataSetRevisions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Revisions"
+    },
+    "ListDataSets": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "DataSets"
+    },
+    "ListJobs": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Jobs"
+    },
+    "ListRevisionAssets": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Assets"
+    },
+    "ListEventActions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "EventActions"
+    },
+    "ListDataGrants": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "DataGrantSummaries"
+    },
+    "ListReceivedDataGrants": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "DataGrantSummaries"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/dataexchange/2017-07-25/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/dataexchange/2017-07-25/service-2.json.gz
new file mode 100644
index 00000000..dd0d066f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/dataexchange/2017-07-25/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/dataexchange/2017-07-25/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/dataexchange/2017-07-25/waiters-2.json
new file mode 100644
index 00000000..13f60ee6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/dataexchange/2017-07-25/waiters-2.json
@@ -0,0 +1,5 @@
+{
+  "version": 2,
+  "waiters": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/datapipeline/2012-10-29/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/datapipeline/2012-10-29/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..eb1a286b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/datapipeline/2012-10-29/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/datapipeline/2012-10-29/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/datapipeline/2012-10-29/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/datapipeline/2012-10-29/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/datapipeline/2012-10-29/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/datapipeline/2012-10-29/paginators-1.json
new file mode 100644
index 00000000..c859c9fb
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/datapipeline/2012-10-29/paginators-1.json
@@ -0,0 +1,23 @@
+{
+  "pagination": {
+    "ListPipelines": {
+      "input_token": "marker",
+      "output_token": "marker",
+      "more_results": "hasMoreResults",
+      "result_key": "pipelineIdList"
+    },
+    "DescribeObjects": {
+      "input_token": "marker",
+      "output_token": "marker",
+      "more_results": "hasMoreResults",
+      "result_key": "pipelineObjects"
+    },
+    "QueryObjects": {
+      "input_token": "marker",
+      "output_token": "marker",
+      "more_results": "hasMoreResults",
+      "limit_key": "limit",
+      "result_key": "ids"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/datapipeline/2012-10-29/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/datapipeline/2012-10-29/service-2.json.gz
new file mode 100644
index 00000000..3d4e2a14
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/datapipeline/2012-10-29/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/datasync/2018-11-09/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/datasync/2018-11-09/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..579e1e3f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/datasync/2018-11-09/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/datasync/2018-11-09/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/datasync/2018-11-09/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/datasync/2018-11-09/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/datasync/2018-11-09/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/datasync/2018-11-09/paginators-1.json
new file mode 100644
index 00000000..6819b45e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/datasync/2018-11-09/paginators-1.json
@@ -0,0 +1,52 @@
+{
+  "pagination": {
+    "ListAgents": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Agents"
+    },
+    "ListLocations": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Locations"
+    },
+    "ListTagsForResource": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Tags"
+    },
+    "ListTaskExecutions": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "TaskExecutions"
+    },
+    "ListTasks": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Tasks"
+    },
+    "DescribeStorageSystemResourceMetrics": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Metrics"
+    },
+    "ListDiscoveryJobs": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "DiscoveryJobs"
+    },
+    "ListStorageSystems": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "StorageSystems"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/datasync/2018-11-09/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/datasync/2018-11-09/service-2.json.gz
new file mode 100644
index 00000000..888a69b4
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/datasync/2018-11-09/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/datazone/2018-05-10/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/datazone/2018-05-10/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..5a41ffed
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/datazone/2018-05-10/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/datazone/2018-05-10/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/datazone/2018-05-10/paginators-1.json
new file mode 100644
index 00000000..5d3e9f8a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/datazone/2018-05-10/paginators-1.json
@@ -0,0 +1,214 @@
+{
+  "pagination": {
+    "ListAssetRevisions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListDataSourceRunActivities": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListDataSourceRuns": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListDataSources": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListDomains": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListEnvironmentBlueprintConfigurations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListEnvironmentBlueprints": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListEnvironmentProfiles": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListEnvironments": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListNotifications": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "notifications"
+    },
+    "ListProjectMemberships": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "members"
+    },
+    "ListProjects": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListSubscriptionGrants": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListSubscriptionRequests": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListSubscriptionTargets": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListSubscriptions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "Search": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "SearchGroupProfiles": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "SearchListings": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "SearchTypes": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "SearchUserProfiles": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListMetadataGenerationRuns": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListTimeSeriesDataPoints": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListEnvironmentActions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListLineageNodeHistory": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "nodes"
+    },
+    "ListAssetFilters": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListDataProductRevisions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListDomainUnitsForParent": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListEntityOwners": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "owners"
+    },
+    "ListPolicyGrants": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "grantList"
+    },
+    "ListRules": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListConnections": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListJobRuns": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListLineageEvents": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListProjectProfiles": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/datazone/2018-05-10/paginators-1.sdk-extras.json b/.venv/lib/python3.12/site-packages/botocore/data/datazone/2018-05-10/paginators-1.sdk-extras.json
new file mode 100644
index 00000000..d4bc280f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/datazone/2018-05-10/paginators-1.sdk-extras.json
@@ -0,0 +1,22 @@
+{
+  "version": 1.0,
+  "merge": {
+    "pagination": {
+      "Search": {
+        "non_aggregate_keys": [
+          "totalMatchCount"
+        ]
+      },
+      "SearchListings": {
+        "non_aggregate_keys": [
+          "totalMatchCount"
+        ]
+      },
+      "SearchTypes": {
+        "non_aggregate_keys": [
+          "totalMatchCount"
+        ]
+      }
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/datazone/2018-05-10/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/datazone/2018-05-10/service-2.json.gz
new file mode 100644
index 00000000..8ca46fb5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/datazone/2018-05-10/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/dax/2017-04-19/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/dax/2017-04-19/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..85dbe3d7
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/dax/2017-04-19/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/dax/2017-04-19/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/dax/2017-04-19/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/dax/2017-04-19/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/dax/2017-04-19/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/dax/2017-04-19/paginators-1.json
new file mode 100644
index 00000000..c13b2df9
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/dax/2017-04-19/paginators-1.json
@@ -0,0 +1,45 @@
+{
+  "pagination": {
+    "DescribeClusters": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Clusters"
+    },
+    "DescribeDefaultParameters": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Parameters"
+    },
+    "DescribeEvents": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Events"
+    },
+    "DescribeParameterGroups": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ParameterGroups"
+    },
+    "DescribeParameters": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Parameters"
+    },
+    "DescribeSubnetGroups": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "SubnetGroups"
+    },
+    "ListTags": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "Tags"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/dax/2017-04-19/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/dax/2017-04-19/service-2.json.gz
new file mode 100644
index 00000000..4b8b009a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/dax/2017-04-19/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/deadline/2023-10-12/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/deadline/2023-10-12/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..299cad9f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/deadline/2023-10-12/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/deadline/2023-10-12/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/deadline/2023-10-12/paginators-1.json
new file mode 100644
index 00000000..0a87c689
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/deadline/2023-10-12/paginators-1.json
@@ -0,0 +1,178 @@
+{
+  "pagination": {
+    "GetSessionsStatisticsAggregation": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "statistics"
+    },
+    "ListAvailableMeteredProducts": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "meteredProducts"
+    },
+    "ListBudgets": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "budgets"
+    },
+    "ListFarmMembers": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "members"
+    },
+    "ListFarms": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "farms"
+    },
+    "ListFleetMembers": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "members"
+    },
+    "ListFleets": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "fleets"
+    },
+    "ListJobMembers": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "members"
+    },
+    "ListJobs": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "jobs"
+    },
+    "ListLicenseEndpoints": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "licenseEndpoints"
+    },
+    "ListMeteredProducts": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "meteredProducts"
+    },
+    "ListMonitors": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "monitors"
+    },
+    "ListQueueEnvironments": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "environments"
+    },
+    "ListQueueFleetAssociations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "queueFleetAssociations"
+    },
+    "ListQueueMembers": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "members"
+    },
+    "ListQueues": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "queues"
+    },
+    "ListSessionActions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "sessionActions"
+    },
+    "ListSessions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "sessions"
+    },
+    "ListSessionsForWorker": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "sessions"
+    },
+    "ListStepConsumers": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "consumers"
+    },
+    "ListStepDependencies": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "dependencies"
+    },
+    "ListSteps": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "steps"
+    },
+    "ListStorageProfiles": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "storageProfiles"
+    },
+    "ListStorageProfilesForQueue": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "storageProfiles"
+    },
+    "ListTasks": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "tasks"
+    },
+    "ListWorkers": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "workers"
+    },
+    "ListJobParameterDefinitions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "jobParameterDefinitions"
+    },
+    "ListLimits": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "limits"
+    },
+    "ListQueueLimitAssociations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "queueLimitAssociations"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/deadline/2023-10-12/paginators-1.sdk-extras.json b/.venv/lib/python3.12/site-packages/botocore/data/deadline/2023-10-12/paginators-1.sdk-extras.json
new file mode 100644
index 00000000..27c22e79
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/deadline/2023-10-12/paginators-1.sdk-extras.json
@@ -0,0 +1,13 @@
+ {
+   "version": 1.0,
+   "merge": {
+     "pagination": {
+       "GetSessionsStatisticsAggregation": {
+         "non_aggregate_keys": [
+           "status",
+           "statusMessage"
+         ]
+       }
+     }
+   }
+ }
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/deadline/2023-10-12/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/deadline/2023-10-12/service-2.json.gz
new file mode 100644
index 00000000..44155f2f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/deadline/2023-10-12/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/deadline/2023-10-12/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/deadline/2023-10-12/waiters-2.json
new file mode 100644
index 00000000..eb6bcc6d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/deadline/2023-10-12/waiters-2.json
@@ -0,0 +1,143 @@
+{
+  "version" : 2,
+  "waiters" : {
+    "FleetActive" : {
+      "description" : "Wait until a Fleet is activated. Use this after invoking CreateFleet or UpdateFleet.",
+      "delay" : 5,
+      "maxAttempts" : 180,
+      "operation" : "GetFleet",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "success",
+        "expected" : "ACTIVE"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "failure",
+        "expected" : "CREATE_FAILED"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "failure",
+        "expected" : "UPDATE_FAILED"
+      } ]
+    },
+    "JobCreateComplete" : {
+      "description" : "Wait until a Job is created. Use this after invoking CreateJob.",
+      "delay" : 1,
+      "maxAttempts" : 120,
+      "operation" : "GetJob",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "lifecycleStatus",
+        "state" : "success",
+        "expected" : "CREATE_COMPLETE"
+      }, {
+        "matcher" : "path",
+        "argument" : "lifecycleStatus",
+        "state" : "success",
+        "expected" : "UPDATE_IN_PROGRESS"
+      }, {
+        "matcher" : "path",
+        "argument" : "lifecycleStatus",
+        "state" : "success",
+        "expected" : "UPDATE_FAILED"
+      }, {
+        "matcher" : "path",
+        "argument" : "lifecycleStatus",
+        "state" : "success",
+        "expected" : "UPDATE_SUCCEEDED"
+      }, {
+        "matcher" : "path",
+        "argument" : "lifecycleStatus",
+        "state" : "failure",
+        "expected" : "UPLOAD_FAILED"
+      }, {
+        "matcher" : "path",
+        "argument" : "lifecycleStatus",
+        "state" : "failure",
+        "expected" : "CREATE_FAILED"
+      } ]
+    },
+    "LicenseEndpointDeleted" : {
+      "description" : "Wait until a LicenseEndpoint is Deleted. Use this after invoking DeleteLicenseEndpoint.",
+      "delay" : 10,
+      "maxAttempts" : 234,
+      "operation" : "GetLicenseEndpoint",
+      "acceptors" : [ {
+        "matcher" : "error",
+        "state" : "success",
+        "expected" : "ResourceNotFoundException"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "failure",
+        "expected" : "NOT_READY"
+      } ]
+    },
+    "LicenseEndpointValid" : {
+      "description" : "Wait until a LicenseEndpoint is Ready. Use this after invoking CreateLicenseEndpoint.",
+      "delay" : 10,
+      "maxAttempts" : 114,
+      "operation" : "GetLicenseEndpoint",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "success",
+        "expected" : "READY"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "failure",
+        "expected" : "NOT_READY"
+      } ]
+    },
+    "QueueFleetAssociationStopped" : {
+      "description" : "Wait until a QueueFleetAssociation is stopped. Use this after setting the status to STOP_SCHEDULING_AND_COMPLETE_TASKS or STOP_SCHEDULING_AND_CANCEL_TASKS to wait for a QueueFleetAssociation to reach STOPPED",
+      "delay" : 10,
+      "maxAttempts" : 60,
+      "operation" : "GetQueueFleetAssociation",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "success",
+        "expected" : "STOPPED"
+      } ]
+    },
+    "QueueLimitAssociationStopped" : {
+      "description" : "Wait until a QueueLimitAssociation is stopped. Use this after setting the status to STOP_LIMIT_USAGE_AND_COMPLETE_TASKS or STOP_LIMIT_USAGE_AND_CANCEL_TASKS to wait for a QueueLimitAssociation to reach STOPPED",
+      "delay" : 10,
+      "maxAttempts" : 60,
+      "operation" : "GetQueueLimitAssociation",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "success",
+        "expected" : "STOPPED"
+      } ]
+    },
+    "QueueScheduling" : {
+      "delay" : 10,
+      "maxAttempts" : 70,
+      "operation" : "GetQueue",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "success",
+        "expected" : "SCHEDULING"
+      } ]
+    },
+    "QueueSchedulingBlocked" : {
+      "delay" : 10,
+      "maxAttempts" : 30,
+      "operation" : "GetQueue",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "success",
+        "expected" : "SCHEDULING_BLOCKED"
+      } ]
+    }
+  }
+}
\ No newline at end of file
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/detective/2018-10-26/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/detective/2018-10-26/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..b5fc66e4
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/detective/2018-10-26/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/detective/2018-10-26/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/detective/2018-10-26/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/detective/2018-10-26/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/detective/2018-10-26/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/detective/2018-10-26/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/detective/2018-10-26/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/detective/2018-10-26/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/detective/2018-10-26/service-2.json.gz
new file mode 100644
index 00000000..af2bf747
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/detective/2018-10-26/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/devicefarm/2015-06-23/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/devicefarm/2015-06-23/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..e13efa70
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/devicefarm/2015-06-23/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/devicefarm/2015-06-23/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/devicefarm/2015-06-23/examples-1.json
new file mode 100644
index 00000000..9db4e46c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/devicefarm/2015-06-23/examples-1.json
@@ -0,0 +1,1242 @@
+{
+  "version": "1.0",
+  "examples": {
+    "CreateDevicePool": [
+      {
+        "input": {
+          "name": "MyDevicePool",
+          "description": "My Android devices",
+          "projectArn": "arn:aws:devicefarm:us-west-2:123456789101:project:EXAMPLE-GUID-123-456",
+          "rules": [
+
+          ]
+        },
+        "output": {
+          "devicePool": {
+          }
+        },
+        "comments": {
+          "input": {
+            "name": "A device pool contains related devices, such as devices that run only on Android or that run only on iOS.",
+            "projectArn": "You can get the project ARN by using the list-projects CLI command."
+          },
+          "output": {
+          }
+        },
+        "description": "The following example creates a new device pool named MyDevicePool inside an existing project.",
+        "id": "createdevicepool-example-1470862210860",
+        "title": "To create a new device pool"
+      }
+    ],
+    "CreateProject": [
+      {
+        "input": {
+          "name": "MyProject"
+        },
+        "output": {
+          "project": {
+            "name": "MyProject",
+            "arn": "arn:aws:devicefarm:us-west-2:123456789101:project:5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE",
+            "created": "1472660939.152"
+          }
+        },
+        "comments": {
+          "input": {
+            "name": "A project in Device Farm is a workspace that contains test runs. A run is a test of a single app against one or more devices."
+          },
+          "output": {
+          }
+        },
+        "description": "The following example creates a new project named MyProject.",
+        "id": "createproject-example-1470862210860",
+        "title": "To create a new project"
+      }
+    ],
+    "CreateRemoteAccessSession": [
+      {
+        "input": {
+          "name": "MySession",
+          "configuration": {
+            "billingMethod": "METERED"
+          },
+          "deviceArn": "arn:aws:devicefarm:us-west-2::device:123EXAMPLE",
+          "projectArn": "arn:aws:devicefarm:us-west-2:123456789101:project:EXAMPLE-GUID-123-456"
+        },
+        "output": {
+          "remoteAccessSession": {
+          }
+        },
+        "comments": {
+          "input": {
+            "deviceArn": "You can get the device ARN by using the list-devices CLI command.",
+            "projectArn": "You can get the project ARN by using the list-projects CLI command."
+          },
+          "output": {
+          }
+        },
+        "description": "The following example creates a remote access session named MySession.",
+        "id": "to-create-a-remote-access-session-1470970668274",
+        "title": "To create a remote access session"
+      }
+    ],
+    "CreateUpload": [
+      {
+        "input": {
+          "name": "MyAppiumPythonUpload",
+          "type": "APPIUM_PYTHON_TEST_PACKAGE",
+          "projectArn": "arn:aws:devicefarm:us-west-2:123456789101:project:EXAMPLE-GUID-123-456"
+        },
+        "output": {
+          "upload": {
+            "name": "MyAppiumPythonUpload",
+            "type": "APPIUM_PYTHON_TEST_PACKAGE",
+            "arn": "arn:aws:devicefarm:us-west-2:123456789101:upload:5e01a8c7-c861-4c0a-b1d5-5ec6e6c6dd23/b5340a65-3da7-4da6-a26e-12345EXAMPLE",
+            "created": "1472661404.186",
+            "status": "INITIALIZED",
+            "url": "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/arn%3Aaws%3Adevicefarm%3Aus-west-2%3A123456789101%3Aproject%3A5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE/uploads/arn%3Aaws%3Adevicefarm%3Aus-west-2%3A123456789101%3Aupload%3A5e01a8c7-c861-4c0a-b1d5-5ec6e6c6dd23/b5340a65-3da7-4da6-a26e-12345EXAMPLE/MyAppiumPythonUpload?AWSAccessKeyId=1234567891011EXAMPLE&Expires=1472747804&Signature=1234567891011EXAMPLE"
+          }
+        },
+        "comments": {
+          "input": {
+            "projectArn": "You can get the project ARN by using the list-projects CLI command."
+          },
+          "output": {
+          }
+        },
+        "description": "The following example creates a new Appium Python test package upload inside an existing project.",
+        "id": "createupload-example-1470864711775",
+        "title": "To create a new test package upload"
+      }
+    ],
+    "DeleteDevicePool": [
+      {
+        "input": {
+          "arn": "arn:aws:devicefarm:us-west-2::devicepool:123-456-EXAMPLE-GUID"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+            "arn": "You can get the device pool ARN by using the list-device-pools CLI command."
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes a specific device pool.",
+        "id": "deletedevicepool-example-1470866975494",
+        "title": "To delete a device pool"
+      }
+    ],
+    "DeleteProject": [
+      {
+        "input": {
+          "arn": "arn:aws:devicefarm:us-west-2:123456789101:project:EXAMPLE-GUID-123-456"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+            "arn": "You can get the project ARN by using the list-projects CLI command."
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes a specific project.",
+        "id": "deleteproject-example-1470867374212",
+        "title": "To delete a project"
+      }
+    ],
+    "DeleteRemoteAccessSession": [
+      {
+        "input": {
+          "arn": "arn:aws:devicefarm:us-west-2:123456789101:session:EXAMPLE-GUID-123-456"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+            "arn": "You can get the remote access session ARN by using the list-remote-access-sessions CLI command."
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes a specific remote access session.",
+        "id": "to-delete-a-specific-remote-access-session-1470971431677",
+        "title": "To delete a specific remote access session"
+      }
+    ],
+    "DeleteRun": [
+      {
+        "input": {
+          "arn": "arn:aws:devicefarm:us-west-2:123456789101:run:EXAMPLE-GUID-123-456"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+            "arn": "You can get the run ARN by using the list-runs CLI command."
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes a specific test run.",
+        "id": "deleterun-example-1470867905129",
+        "title": "To delete a run"
+      }
+    ],
+    "DeleteUpload": [
+      {
+        "input": {
+          "arn": "arn:aws:devicefarm:us-west-2:123456789101:upload:EXAMPLE-GUID-123-456"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+            "arn": "You can get the upload ARN by using the list-uploads CLI command."
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes a specific upload.",
+        "id": "deleteupload-example-1470868363942",
+        "title": "To delete a specific upload"
+      }
+    ],
+    "GetAccountSettings": [
+      {
+        "input": {
+        },
+        "output": {
+          "accountSettings": {
+            "awsAccountNumber": "123456789101",
+            "unmeteredDevices": {
+              "ANDROID": 1,
+              "IOS": 2
+            }
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns information about your Device Farm account settings.",
+        "id": "to-get-information-about-account-settings-1472567568189",
+        "title": "To get information about account settings"
+      }
+    ],
+    "GetDevice": [
+      {
+        "input": {
+          "arn": "arn:aws:devicefarm:us-west-2::device:123EXAMPLE"
+        },
+        "output": {
+          "device": {
+            "name": "LG G2 (Sprint)",
+            "arn": "arn:aws:devicefarm:us-west-2::device:A0E6E6E1059E45918208DF75B2B7EF6C",
+            "cpu": {
+              "architecture": "armeabi-v7a",
+              "clock": 2265.6,
+              "frequency": "MHz"
+            },
+            "formFactor": "PHONE",
+            "heapSize": 256000000,
+            "image": "75B2B7EF6C12345EXAMPLE",
+            "manufacturer": "LG",
+            "memory": 16000000000,
+            "model": "G2 (Sprint)",
+            "os": "4.2.2",
+            "platform": "ANDROID",
+            "resolution": {
+              "height": 1920,
+              "width": 1080
+            }
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns information about a specific device.",
+        "id": "getdevice-example-1470870602173",
+        "title": "To get information about a device"
+      }
+    ],
+    "GetDevicePool": [
+      {
+        "input": {
+          "arn": "arn:aws:devicefarm:us-west-2:123456789101:project:EXAMPLE-GUID-123-456"
+        },
+        "output": {
+          "devicePool": {
+          }
+        },
+        "comments": {
+          "input": {
+            "arn": "You can obtain the project ARN by using the list-projects CLI command."
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns information about a specific device pool, given a project ARN.",
+        "id": "getdevicepool-example-1470870873136",
+        "title": "To get information about a device pool"
+      }
+    ],
+    "GetDevicePoolCompatibility": [
+      {
+        "input": {
+          "appArn": "arn:aws:devicefarm:us-west-2::app:123-456-EXAMPLE-GUID",
+          "devicePoolArn": "arn:aws:devicefarm:us-west-2::devicepool:123-456-EXAMPLE-GUID",
+          "testType": "APPIUM_PYTHON"
+        },
+        "output": {
+          "compatibleDevices": [
+
+          ],
+          "incompatibleDevices": [
+
+          ]
+        },
+        "comments": {
+          "input": {
+            "devicePoolArn": "You can get the device pool ARN by using the list-device-pools CLI command."
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns information about the compatibility of a specific device pool, given its ARN.",
+        "id": "getdevicepoolcompatibility-example-1470925003466",
+        "title": "To get information about the compatibility of a device pool"
+      }
+    ],
+    "GetJob": [
+      {
+        "input": {
+          "arn": "arn:aws:devicefarm:us-west-2::job:123-456-EXAMPLE-GUID"
+        },
+        "output": {
+          "job": {
+          }
+        },
+        "comments": {
+          "input": {
+            "arn": "You can get the job ARN by using the list-jobs CLI command."
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns information about a specific job.",
+        "id": "getjob-example-1470928294268",
+        "title": "To get information about a job"
+      }
+    ],
+    "GetOfferingStatus": [
+      {
+        "input": {
+          "nextToken": "RW5DdDJkMWYwZjM2MzM2VHVpOHJIUXlDUXlhc2QzRGViYnc9SEXAMPLE="
+        },
+        "output": {
+          "current": {
+            "D68B3C05-1BA6-4360-BC69-12345EXAMPLE": {
+              "offering": {
+                "type": "RECURRING",
+                "description": "Android Remote Access Unmetered Device Slot",
+                "id": "D68B3C05-1BA6-4360-BC69-12345EXAMPLE",
+                "platform": "ANDROID"
+              },
+              "quantity": 1
+            }
+          },
+          "nextPeriod": {
+            "D68B3C05-1BA6-4360-BC69-12345EXAMPLE": {
+              "effectiveOn": "1472688000",
+              "offering": {
+                "type": "RECURRING",
+                "description": "Android Remote Access Unmetered Device Slot",
+                "id": "D68B3C05-1BA6-4360-BC69-12345EXAMPLE",
+                "platform": "ANDROID"
+              },
+              "quantity": 1
+            }
+          }
+        },
+        "comments": {
+          "input": {
+            "nextToken": "A dynamically generated value, used for paginating results."
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns information about Device Farm offerings available to your account.",
+        "id": "to-get-status-information-about-device-offerings-1472568124402",
+        "title": "To get status information about device offerings"
+      }
+    ],
+    "GetProject": [
+      {
+        "input": {
+          "arn": "arn:aws:devicefarm:us-west-2:123456789101:project:5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE"
+        },
+        "output": {
+          "project": {
+            "name": "My Project",
+            "arn": "arn:aws:devicefarm:us-west-2:123456789101:project:5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE",
+            "created": "1472660939.152"
+          }
+        },
+        "comments": {
+          "input": {
+            "arn": "You can get the project ARN by using the list-projects CLI command."
+          },
+          "output": {
+          }
+        },
+        "description": "The following example gets information about a specific project.",
+        "id": "to-get-a-project-1470975038449",
+        "title": "To get information about a project"
+      }
+    ],
+    "GetRemoteAccessSession": [
+      {
+        "input": {
+          "arn": "arn:aws:devicefarm:us-west-2:123456789101:session:EXAMPLE-GUID-123-456"
+        },
+        "output": {
+          "remoteAccessSession": {
+          }
+        },
+        "comments": {
+          "input": {
+            "arn": "You can get the remote access session ARN by using the list-remote-access-sessions CLI command."
+          },
+          "output": {
+          }
+        },
+        "description": "The following example gets a specific remote access session.",
+        "id": "to-get-a-remote-access-session-1471014119414",
+        "title": "To get a remote access session"
+      }
+    ],
+    "GetRun": [
+      {
+        "input": {
+          "arn": "arn:aws:devicefarm:us-west-2:123456789101:run:5e01a8c7-c861-4c0a-b1d5-5ec6e6c6dd23/0fcac17b-6122-44d7-ae5a-12345EXAMPLE"
+        },
+        "output": {
+          "run": {
+            "name": "My Test Run",
+            "type": "BUILTIN_EXPLORER",
+            "arn": "arn:aws:devicefarm:us-west-2:123456789101:run:5e01a8c7-c861-4c0a-b1d5-5ec6e6c6dd23/0fcac17b-6122-44d7-ae5a-12345EXAMPLE",
+            "billingMethod": "METERED",
+            "completedJobs": 0,
+            "counters": {
+              "errored": 0,
+              "failed": 0,
+              "passed": 0,
+              "skipped": 0,
+              "stopped": 0,
+              "total": 0,
+              "warned": 0
+            },
+            "created": "1472667509.852",
+            "deviceMinutes": {
+              "metered": 0.0,
+              "total": 0.0,
+              "unmetered": 0.0
+            },
+            "platform": "ANDROID",
+            "result": "PENDING",
+            "status": "RUNNING",
+            "totalJobs": 3
+          }
+        },
+        "comments": {
+          "input": {
+            "arn": "You can get the run ARN by using the list-runs CLI command."
+          },
+          "output": {
+          }
+        },
+        "description": "The following example gets information about a specific test run.",
+        "id": "to-get-a-test-run-1471015895657",
+        "title": "To get information about a test run"
+      }
+    ],
+    "GetSuite": [
+      {
+        "input": {
+          "arn": "arn:aws:devicefarm:us-west-2:123456789101:suite:EXAMPLE-GUID-123-456"
+        },
+        "output": {
+          "suite": {
+          }
+        },
+        "comments": {
+          "input": {
+            "arn": "You can get the suite ARN by using the list-suites CLI command."
+          },
+          "output": {
+          }
+        },
+        "description": "The following example gets information about a specific test suite.",
+        "id": "to-get-information-about-a-test-suite-1471016525008",
+        "title": "To get information about a test suite"
+      }
+    ],
+    "GetTest": [
+      {
+        "input": {
+          "arn": "arn:aws:devicefarm:us-west-2:123456789101:test:EXAMPLE-GUID-123-456"
+        },
+        "output": {
+          "test": {
+          }
+        },
+        "comments": {
+          "input": {
+            "arn": "You can get the test ARN by using the list-tests CLI command."
+          },
+          "output": {
+          }
+        },
+        "description": "The following example gets information about a specific test.",
+        "id": "to-get-information-about-a-specific-test-1471025744238",
+        "title": "To get information about a specific test"
+      }
+    ],
+    "GetUpload": [
+      {
+        "input": {
+          "arn": "arn:aws:devicefarm:us-west-2:123456789101:upload:EXAMPLE-GUID-123-456"
+        },
+        "output": {
+          "upload": {
+          }
+        },
+        "comments": {
+          "input": {
+            "arn": "You can get the test ARN by using the list-uploads CLI command."
+          },
+          "output": {
+          }
+        },
+        "description": "The following example gets information about a specific upload.",
+        "id": "to-get-information-about-a-specific-upload-1471025996221",
+        "title": "To get information about a specific upload"
+      }
+    ],
+    "InstallToRemoteAccessSession": [
+      {
+        "input": {
+          "appArn": "arn:aws:devicefarm:us-west-2:123456789101:app:EXAMPLE-GUID-123-456",
+          "remoteAccessSessionArn": "arn:aws:devicefarm:us-west-2:123456789101:session:EXAMPLE-GUID-123-456"
+        },
+        "output": {
+          "appUpload": {
+          }
+        },
+        "comments": {
+          "input": {
+            "remoteAccessSessionArn": "You can get the remote access session ARN by using the list-remote-access-sessions CLI command."
+          },
+          "output": {
+          }
+        },
+        "description": "The following example installs a specific app to a device in a specific remote access session.",
+        "id": "to-install-to-a-remote-access-session-1471634453818",
+        "title": "To install to a remote access session"
+      }
+    ],
+    "ListArtifacts": [
+      {
+        "input": {
+          "type": "SCREENSHOT",
+          "arn": "arn:aws:devicefarm:us-west-2:123456789101:run:EXAMPLE-GUID-123-456"
+        },
+        "comments": {
+          "input": {
+            "arn": "Can also be used to list artifacts for a Job, Suite, or Test ARN."
+          },
+          "output": {
+          }
+        },
+        "description": "The following example lists screenshot artifacts for a specific run.",
+        "id": "to-list-artifacts-for-a-resource-1471635409527",
+        "title": "To list artifacts for a resource"
+      }
+    ],
+    "ListDevicePools": [
+      {
+        "input": {
+          "type": "PRIVATE",
+          "arn": "arn:aws:devicefarm:us-west-2:123456789101:project:EXAMPLE-GUID-123-456"
+        },
+        "output": {
+          "devicePools": [
+            {
+              "name": "Top Devices",
+              "arn": "arn:aws:devicefarm:us-west-2::devicepool:082d10e5-d7d7-48a5-ba5c-12345EXAMPLE",
+              "description": "Top devices",
+              "rules": [
+                {
+                  "value": "[\"arn:aws:devicefarm:us-west-2::device:123456789EXAMPLE\",\"arn:aws:devicefarm:us-west-2::device:123456789EXAMPLE\",\"arn:aws:devicefarm:us-west-2::device:123456789EXAMPLE\",\"arn:aws:devicefarm:us-west-2::device:123456789EXAMPLE\",\"arn:aws:devicefarm:us-west-2::device:123456789EXAMPLE\",\"arn:aws:devicefarm:us-west-2::device:123456789EXAMPLE\",\"arn:aws:devicefarm:us-west-2::device:123456789EXAMPLE\",\"arn:aws:devicefarm:us-west-2::device:123456789EXAMPLE\",\"arn:aws:devicefarm:us-west-2::device:123456789EXAMPLE\",\"arn:aws:devicefarm:us-west-2::device:123456789EXAMPLE\"]",
+                  "attribute": "ARN",
+                  "operator": "IN"
+                }
+              ]
+            },
+            {
+              "name": "My Android Device Pool",
+              "arn": "arn:aws:devicefarm:us-west-2:123456789101:devicepool:5e01a8c7-c861-4c0a-b1d5-5ec6e6c6dd23/bf96e75a-28f6-4e61-b6a7-12345EXAMPLE",
+              "description": "Samsung Galaxy Android devices",
+              "rules": [
+                {
+                  "value": "[\"arn:aws:devicefarm:us-west-2::device:123456789EXAMPLE\",\"arn:aws:devicefarm:us-west-2::device:123456789EXAMPLE\",\"arn:aws:devicefarm:us-west-2::device:123456789EXAMPLE\"]",
+                  "attribute": "ARN",
+                  "operator": "IN"
+                }
+              ]
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+            "arn": "You can get the project ARN by using the list-projects CLI command."
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns information about the private device pools in a specific project.",
+        "id": "to-get-information-about-device-pools-1471635745170",
+        "title": "To get information about device pools"
+      }
+    ],
+    "ListDevices": [
+      {
+        "input": {
+          "arn": "arn:aws:devicefarm:us-west-2:123456789101:project:EXAMPLE-GUID-123-456"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+            "arn": "You can get the project ARN by using the list-projects CLI command."
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns information about the available devices in a specific project.",
+        "id": "to-get-information-about-devices-1471641699344",
+        "title": "To get information about devices"
+      }
+    ],
+    "ListJobs": [
+      {
+        "input": {
+          "arn": "arn:aws:devicefarm:us-west-2:123456789101:project:EXAMPLE-GUID-123-456"
+        },
+        "comments": {
+          "input": {
+            "arn": "You can get the project ARN by using the list-jobs CLI command."
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns information about jobs in a specific project.",
+        "id": "to-get-information-about-jobs-1471642228071",
+        "title": "To get information about jobs"
+      }
+    ],
+    "ListOfferingTransactions": [
+      {
+        "input": {
+          "nextToken": "RW5DdDJkMWYwZjM2MzM2VHVpOHJIUXlDUXlhc2QzRGViYnc9SEXAMPLE="
+        },
+        "output": {
+          "offeringTransactions": [
+            {
+              "cost": {
+                "amount": 0,
+                "currencyCode": "USD"
+              },
+              "createdOn": "1470021420",
+              "offeringStatus": {
+                "type": "RENEW",
+                "effectiveOn": "1472688000",
+                "offering": {
+                  "type": "RECURRING",
+                  "description": "Android Remote Access Unmetered Device Slot",
+                  "id": "D68B3C05-1BA6-4360-BC69-12345EXAMPLE",
+                  "platform": "ANDROID"
+                },
+                "quantity": 0
+              },
+              "transactionId": "03728003-d1ea-4851-abd6-12345EXAMPLE"
+            },
+            {
+              "cost": {
+                "amount": 250,
+                "currencyCode": "USD"
+              },
+              "createdOn": "1470021420",
+              "offeringStatus": {
+                "type": "PURCHASE",
+                "effectiveOn": "1470021420",
+                "offering": {
+                  "type": "RECURRING",
+                  "description": "Android Remote Access Unmetered Device Slot",
+                  "id": "D68B3C05-1BA6-4360-BC69-12345EXAMPLE",
+                  "platform": "ANDROID"
+                },
+                "quantity": 1
+              },
+              "transactionId": "56820b6e-06bd-473a-8ff8-12345EXAMPLE"
+            },
+            {
+              "cost": {
+                "amount": 175,
+                "currencyCode": "USD"
+              },
+              "createdOn": "1465538520",
+              "offeringStatus": {
+                "type": "PURCHASE",
+                "effectiveOn": "1465538520",
+                "offering": {
+                  "type": "RECURRING",
+                  "description": "Android Unmetered Device Slot",
+                  "id": "8980F81C-00D7-469D-8EC6-12345EXAMPLE",
+                  "platform": "ANDROID"
+                },
+                "quantity": 1
+              },
+              "transactionId": "953ae2c6-d760-4a04-9597-12345EXAMPLE"
+            },
+            {
+              "cost": {
+                "amount": 8.07,
+                "currencyCode": "USD"
+              },
+              "createdOn": "1459344300",
+              "offeringStatus": {
+                "type": "PURCHASE",
+                "effectiveOn": "1459344300",
+                "offering": {
+                  "type": "RECURRING",
+                  "description": "iOS Unmetered Device Slot",
+                  "id": "A53D4D73-A6F6-4B82-A0B0-12345EXAMPLE",
+                  "platform": "IOS"
+                },
+                "quantity": 1
+              },
+              "transactionId": "2baf9021-ae3e-47f5-ab52-12345EXAMPLE"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+            "nextToken": "A dynamically generated value, used for paginating results."
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns information about Device Farm offering transactions.",
+        "id": "to-get-information-about-device-offering-transactions-1472561712315",
+        "title": "To get information about device offering transactions"
+      }
+    ],
+    "ListOfferings": [
+      {
+        "input": {
+          "nextToken": "RW5DdDJkMWYwZjM2MzM2VHVpOHJIUXlDUXlhc2QzRGViYnc9SEXAMPLE="
+        },
+        "output": {
+          "offerings": [
+            {
+              "type": "RECURRING",
+              "description": "iOS Unmetered Device Slot",
+              "id": "A53D4D73-A6F6-4B82-A0B0-12345EXAMPLE",
+              "platform": "IOS",
+              "recurringCharges": [
+                {
+                  "cost": {
+                    "amount": 250,
+                    "currencyCode": "USD"
+                  },
+                  "frequency": "MONTHLY"
+                }
+              ]
+            },
+            {
+              "type": "RECURRING",
+              "description": "Android Unmetered Device Slot",
+              "id": "8980F81C-00D7-469D-8EC6-12345EXAMPLE",
+              "platform": "ANDROID",
+              "recurringCharges": [
+                {
+                  "cost": {
+                    "amount": 250,
+                    "currencyCode": "USD"
+                  },
+                  "frequency": "MONTHLY"
+                }
+              ]
+            },
+            {
+              "type": "RECURRING",
+              "description": "Android Remote Access Unmetered Device Slot",
+              "id": "D68B3C05-1BA6-4360-BC69-12345EXAMPLE",
+              "platform": "ANDROID",
+              "recurringCharges": [
+                {
+                  "cost": {
+                    "amount": 250,
+                    "currencyCode": "USD"
+                  },
+                  "frequency": "MONTHLY"
+                }
+              ]
+            },
+            {
+              "type": "RECURRING",
+              "description": "iOS Remote Access Unmetered Device Slot",
+              "id": "552B4DAD-A6C9-45C4-94FB-12345EXAMPLE",
+              "platform": "IOS",
+              "recurringCharges": [
+                {
+                  "cost": {
+                    "amount": 250,
+                    "currencyCode": "USD"
+                  },
+                  "frequency": "MONTHLY"
+                }
+              ]
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+            "nextToken": "A dynamically generated value, used for paginating results."
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns information about available device offerings.",
+        "id": "to-get-information-about-device-offerings-1472562810999",
+        "title": "To get information about device offerings"
+      }
+    ],
+    "ListProjects": [
+      {
+        "input": {
+          "arn": "arn:aws:devicefarm:us-west-2:123456789101:project:7ad300ed-8183-41a7-bf94-12345EXAMPLE",
+          "nextToken": "RW5DdDJkMWYwZjM2MzM2VHVpOHJIUXlDUXlhc2QzRGViYnc9SEXAMPLE"
+        },
+        "output": {
+          "projects": [
+            {
+              "name": "My Test Project",
+              "arn": "arn:aws:devicefarm:us-west-2:123456789101:project:7ad300ed-8183-41a7-bf94-12345EXAMPLE",
+              "created": "1453163262.105"
+            },
+            {
+              "name": "Hello World",
+              "arn": "arn:aws:devicefarm:us-west-2:123456789101:project:d6b087d9-56db-4e44-b9ec-12345EXAMPLE",
+              "created": "1470350112.439"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+            "nextToken": "A dynamically generated value, used for paginating results."
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns information about the specified project in Device Farm.",
+        "id": "to-get-information-about-a-device-farm-project-1472564014388",
+        "title": "To get information about a Device Farm project"
+      }
+    ],
+    "ListRemoteAccessSessions": [
+      {
+        "input": {
+          "arn": "arn:aws:devicefarm:us-west-2:123456789101:session:EXAMPLE-GUID-123-456",
+          "nextToken": "RW5DdDJkMWYwZjM2MzM2VHVpOHJIUXlDUXlhc2QzRGViYnc9SEXAMPLE="
+        },
+        "output": {
+          "remoteAccessSessions": [
+
+          ]
+        },
+        "comments": {
+          "input": {
+            "arn": "You can get the Amazon Resource Name (ARN) of the session by using the list-sessions CLI command.",
+            "nextToken": "A dynamically generated value, used for paginating results."
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns information about a specific Device Farm remote access session.",
+        "id": "to-get-information-about-a-remote-access-session-1472581144803",
+        "title": "To get information about a remote access session"
+      }
+    ],
+    "ListRuns": [
+      {
+        "input": {
+          "arn": "arn:aws:devicefarm:us-west-2:123456789101:run:5e01a8c7-c861-4c0a-b1d5-5ec6e6c6dd23/0fcac17b-6122-44d7-ae5a-12345EXAMPLE",
+          "nextToken": "RW5DdDJkMWYwZjM2MzM2VHVpOHJIUXlDUXlhc2QzRGViYnc9SEXAMPLE"
+        },
+        "output": {
+          "runs": [
+            {
+              "name": "My Test Run",
+              "type": "BUILTIN_EXPLORER",
+              "arn": "arn:aws:devicefarm:us-west-2:123456789101:run:5e01a8c7-c861-4c0a-b1d5-5ec6e6c6dd23/0fcac17b-6122-44d7-ae5a-12345EXAMPLE",
+              "billingMethod": "METERED",
+              "completedJobs": 0,
+              "counters": {
+                "errored": 0,
+                "failed": 0,
+                "passed": 0,
+                "skipped": 0,
+                "stopped": 0,
+                "total": 0,
+                "warned": 0
+              },
+              "created": "1472667509.852",
+              "deviceMinutes": {
+                "metered": 0.0,
+                "total": 0.0,
+                "unmetered": 0.0
+              },
+              "platform": "ANDROID",
+              "result": "PENDING",
+              "status": "RUNNING",
+              "totalJobs": 3
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+            "arn": "You can get the Amazon Resource Name (ARN) of the run by using the list-runs CLI command.",
+            "nextToken": "A dynamically generated value, used for paginating results."
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns information about a specific test run.",
+        "id": "to-get-information-about-test-runs-1472582711069",
+        "title": "To get information about a test run"
+      }
+    ],
+    "ListSamples": [
+      {
+        "input": {
+          "arn": "arn:aws:devicefarm:us-west-2:123456789101:project:EXAMPLE-GUID-123-456",
+          "nextToken": "RW5DdDJkMWYwZjM2MzM2VHVpOHJIUXlDUXlhc2QzRGViYnc9SEXAMPLE"
+        },
+        "output": {
+          "samples": [
+
+          ]
+        },
+        "comments": {
+          "input": {
+            "arn": "You can get the Amazon Resource Name (ARN) of the project by using the list-projects CLI command.",
+            "nextToken": "A dynamically generated value, used for paginating results."
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns information about samples, given a specific Device Farm project.",
+        "id": "to-get-information-about-samples-1472582847534",
+        "title": "To get information about samples"
+      }
+    ],
+    "ListSuites": [
+      {
+        "input": {
+          "arn": "arn:aws:devicefarm:us-west-2:123456789101:job:EXAMPLE-GUID-123-456",
+          "nextToken": "RW5DdDJkMWYwZjM2MzM2VHVpOHJIUXlDUXlhc2QzRGViYnc9SEXAMPLE"
+        },
+        "output": {
+          "suites": [
+
+          ]
+        },
+        "comments": {
+          "input": {
+            "arn": "You can get the Amazon Resource Name (ARN) of the job by using the list-jobs CLI command.",
+            "nextToken": "A dynamically generated value, used for paginating results."
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns information about suites, given a specific Device Farm job.",
+        "id": "to-get-information-about-suites-1472583038218",
+        "title": "To get information about suites"
+      }
+    ],
+    "ListTests": [
+      {
+        "input": {
+          "arn": "arn:aws:devicefarm:us-west-2:123456789101:project:EXAMPLE-GUID-123-456",
+          "nextToken": "RW5DdDJkMWYwZjM2MzM2VHVpOHJIUXlDUXlhc2QzRGViYnc9SEXAMPLE"
+        },
+        "output": {
+          "tests": [
+
+          ]
+        },
+        "comments": {
+          "input": {
+            "arn": "You can get the Amazon Resource Name (ARN) of the project by using the list-projects CLI command.",
+            "nextToken": "A dynamically generated value, used for paginating results."
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns information about tests, given a specific Device Farm project.",
+        "id": "to-get-information-about-tests-1472617372212",
+        "title": "To get information about tests"
+      }
+    ],
+    "ListUniqueProblems": [
+      {
+        "input": {
+          "arn": "arn:aws:devicefarm:us-west-2:123456789101:project:EXAMPLE-GUID-123-456",
+          "nextToken": "RW5DdDJkMWYwZjM2MzM2VHVpOHJIUXlDUXlhc2QzRGViYnc9SEXAMPLE"
+        },
+        "output": {
+          "uniqueProblems": {
+          }
+        },
+        "comments": {
+          "input": {
+            "arn": "You can get the Amazon Resource Name (ARN) of the project by using the list-projects CLI command.",
+            "nextToken": "A dynamically generated value, used for paginating results."
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns information about unique problems, given a specific Device Farm project.",
+        "id": "to-get-information-about-unique-problems-1472617781008",
+        "title": "To get information about unique problems"
+      }
+    ],
+    "ListUploads": [
+      {
+        "input": {
+          "arn": "arn:aws:devicefarm:us-west-2:123456789101:project:EXAMPLE-GUID-123-456",
+          "nextToken": "RW5DdDJkMWYwZjM2MzM2VHVpOHJIUXlDUXlhc2QzRGViYnc9SEXAMPLE"
+        },
+        "output": {
+          "uploads": [
+
+          ]
+        },
+        "comments": {
+          "input": {
+            "arn": "You can get the Amazon Resource Name (ARN) of the project by using the list-projects CLI command.",
+            "nextToken": "A dynamically generated value, used for paginating results."
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns information about uploads, given a specific Device Farm project.",
+        "id": "to-get-information-about-uploads-1472617943090",
+        "title": "To get information about uploads"
+      }
+    ],
+    "PurchaseOffering": [
+      {
+        "input": {
+          "offeringId": "D68B3C05-1BA6-4360-BC69-12345EXAMPLE",
+          "quantity": 1
+        },
+        "output": {
+          "offeringTransaction": {
+            "cost": {
+              "amount": 8.07,
+              "currencyCode": "USD"
+            },
+            "createdOn": "1472648340",
+            "offeringStatus": {
+              "type": "PURCHASE",
+              "effectiveOn": "1472648340",
+              "offering": {
+                "type": "RECURRING",
+                "description": "Android Remote Access Unmetered Device Slot",
+                "id": "D68B3C05-1BA6-4360-BC69-12345EXAMPLE",
+                "platform": "ANDROID"
+              },
+              "quantity": 1
+            },
+            "transactionId": "d30614ed-1b03-404c-9893-12345EXAMPLE"
+          }
+        },
+        "comments": {
+          "input": {
+            "offeringId": "You can get the offering ID by using the list-offerings CLI command."
+          },
+          "output": {
+          }
+        },
+        "description": "The following example purchases a specific device slot offering.",
+        "id": "to-purchase-a-device-slot-offering-1472648146343",
+        "title": "To purchase a device slot offering"
+      }
+    ],
+    "RenewOffering": [
+      {
+        "input": {
+          "offeringId": "D68B3C05-1BA6-4360-BC69-12345EXAMPLE",
+          "quantity": 1
+        },
+        "output": {
+          "offeringTransaction": {
+            "cost": {
+              "amount": 250,
+              "currencyCode": "USD"
+            },
+            "createdOn": "1472648880",
+            "offeringStatus": {
+              "type": "RENEW",
+              "effectiveOn": "1472688000",
+              "offering": {
+                "type": "RECURRING",
+                "description": "Android Remote Access Unmetered Device Slot",
+                "id": "D68B3C05-1BA6-4360-BC69-12345EXAMPLE",
+                "platform": "ANDROID"
+              },
+              "quantity": 1
+            },
+            "transactionId": "e90f1405-8c35-4561-be43-12345EXAMPLE"
+          }
+        },
+        "comments": {
+          "input": {
+            "offeringId": "You can get the offering ID by using the list-offerings CLI command."
+          },
+          "output": {
+          }
+        },
+        "description": "The following example renews a specific device slot offering.",
+        "id": "to-renew-a-device-slot-offering-1472648899785",
+        "title": "To renew a device slot offering"
+      }
+    ],
+    "ScheduleRun": [
+      {
+        "input": {
+          "name": "MyRun",
+          "devicePoolArn": "arn:aws:devicefarm:us-west-2:123456789101:pool:EXAMPLE-GUID-123-456",
+          "projectArn": "arn:aws:devicefarm:us-west-2:123456789101:project:EXAMPLE-GUID-123-456",
+          "test": {
+            "type": "APPIUM_JAVA_JUNIT",
+            "testPackageArn": "arn:aws:devicefarm:us-west-2:123456789101:test:EXAMPLE-GUID-123-456"
+          }
+        },
+        "output": {
+          "run": {
+          }
+        },
+        "comments": {
+          "input": {
+            "devicePoolArn": "You can get the Amazon Resource Name (ARN) of the device pool by using the list-pools CLI command.",
+            "projectArn": "You can get the Amazon Resource Name (ARN) of the project by using the list-projects CLI command.",
+            "testPackageArn": "You can get the Amazon Resource Name (ARN) of the test package by using the list-tests CLI command."
+          },
+          "output": {
+          }
+        },
+        "description": "The following example schedules a test run named MyRun.",
+        "id": "to-schedule-a-test-run-1472652429636",
+        "title": "To schedule a test run"
+      }
+    ],
+    "StopRun": [
+      {
+        "input": {
+          "arn": "arn:aws:devicefarm:us-west-2:123456789101:run:EXAMPLE-GUID-123-456"
+        },
+        "output": {
+          "run": {
+          }
+        },
+        "comments": {
+          "input": {
+            "arn": "You can get the Amazon Resource Name (ARN) of the test run by using the list-runs CLI command."
+          },
+          "output": {
+          }
+        },
+        "description": "The following example stops a specific test run.",
+        "id": "to-stop-a-test-run-1472653770340",
+        "title": "To stop a test run"
+      }
+    ],
+    "UpdateDevicePool": [
+      {
+        "input": {
+          "name": "NewName",
+          "arn": "arn:aws:devicefarm:us-west-2::devicepool:082d10e5-d7d7-48a5-ba5c-12345EXAMPLE",
+          "description": "NewDescription",
+          "rules": [
+            {
+              "value": "True",
+              "attribute": "REMOTE_ACCESS_ENABLED",
+              "operator": "EQUALS"
+            }
+          ]
+        },
+        "output": {
+          "devicePool": {
+          }
+        },
+        "comments": {
+          "input": {
+            "arn": "You can get the Amazon Resource Name (ARN) of the device pool by using the list-pools CLI command."
+          },
+          "output": {
+            "devicePool": "Note: you cannot update curated device pools."
+          }
+        },
+        "description": "The following example updates the specified device pool with a new name and description. It also enables remote access of devices in the device pool.",
+        "id": "to-update-a-device-pool-1472653887677",
+        "title": "To update a device pool"
+      }
+    ],
+    "UpdateProject": [
+      {
+        "input": {
+          "name": "NewName",
+          "arn": "arn:aws:devicefarm:us-west-2:123456789101:project:8f75187d-101e-4625-accc-12345EXAMPLE"
+        },
+        "output": {
+          "project": {
+            "name": "NewName",
+            "arn": "arn:aws:devicefarm:us-west-2:123456789101:project:8f75187d-101e-4625-accc-12345EXAMPLE",
+            "created": "1448400709.927"
+          }
+        },
+        "comments": {
+          "input": {
+            "arn": "You can get the Amazon Resource Name (ARN) of the project by using the list-projects CLI command."
+          },
+          "output": {
+          }
+        },
+        "description": "The following example updates the specified project with a new name.",
+        "id": "to-update-a-device-pool-1472653887677",
+        "title": "To update a device pool"
+      }
+    ]
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/devicefarm/2015-06-23/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/devicefarm/2015-06-23/paginators-1.json
new file mode 100644
index 00000000..982e07f9
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/devicefarm/2015-06-23/paginators-1.json
@@ -0,0 +1,110 @@
+{
+  "pagination": {
+    "ListArtifacts": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "artifacts"
+    },
+    "ListDevicePools": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "devicePools"
+    },
+    "ListDevices": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "devices"
+    },
+    "ListJobs": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "jobs"
+    },
+    "ListProjects": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "projects"
+    },
+    "ListRuns": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "runs"
+    },
+    "ListSamples": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "samples"
+    },
+    "ListSuites": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "suites"
+    },
+    "ListTests": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "tests"
+    },
+    "ListUniqueProblems": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "uniqueProblems"
+    },
+    "ListUploads": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "uploads"
+    },
+    "GetOfferingStatus": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": [
+        "current",
+        "nextPeriod"
+      ]
+    },
+    "ListOfferingTransactions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "offeringTransactions"
+    },
+    "ListOfferings": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "offerings"
+    },
+    "ListDeviceInstances": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "deviceInstances"
+    },
+    "ListInstanceProfiles": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "instanceProfiles"
+    },
+    "ListNetworkProfiles": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "networkProfiles"
+    },
+    "ListOfferingPromotions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "offeringPromotions"
+    },
+    "ListRemoteAccessSessions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "remoteAccessSessions"
+    },
+    "ListVPCEConfigurations": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "vpceConfigurations"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/devicefarm/2015-06-23/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/devicefarm/2015-06-23/service-2.json.gz
new file mode 100644
index 00000000..a4c7ea2b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/devicefarm/2015-06-23/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/devops-guru/2020-12-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/devops-guru/2020-12-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..965a0b10
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/devops-guru/2020-12-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/devops-guru/2020-12-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/devops-guru/2020-12-01/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/devops-guru/2020-12-01/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/devops-guru/2020-12-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/devops-guru/2020-12-01/paginators-1.json
new file mode 100644
index 00000000..d0d58717
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/devops-guru/2020-12-01/paginators-1.json
@@ -0,0 +1,125 @@
+{
+  "pagination": {
+    "DescribeResourceCollectionHealth": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": [
+        "CloudFormation",
+        "Service",
+        "Tags"
+      ]
+    },
+    "GetResourceCollection": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": [
+        "ResourceCollection.CloudFormation.StackNames",
+        "ResourceCollection.Tags"
+      ],
+      "non_aggregate_keys": [
+        "ResourceCollection"
+      ]
+    },
+    "ListAnomaliesForInsight": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": [
+        "ReactiveAnomalies",
+        "ProactiveAnomalies"
+      ]
+    },
+    "ListEvents": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Events"
+    },
+    "ListInsights": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": [
+        "ProactiveInsights",
+        "ReactiveInsights"
+      ]
+    },
+    "ListNotificationChannels": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "Channels"
+    },
+    "ListRecommendations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "Recommendations"
+    },
+    "SearchInsights": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": [
+        "ProactiveInsights",
+        "ReactiveInsights"
+      ]
+    },
+    "GetCostEstimation": {
+      "input_token": "NextToken",
+      "non_aggregate_keys": [
+        "Status",
+        "TotalCost",
+        "TimeRange",
+        "ResourceCollection"
+      ],
+      "output_token": "NextToken",
+      "result_key": [
+        "Costs"
+      ]
+    },
+    "DescribeOrganizationResourceCollectionHealth": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": [
+        "CloudFormation",
+        "Account",
+        "Service",
+        "Tags"
+      ]
+    },
+    "ListOrganizationInsights": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": [
+        "ProactiveInsights",
+        "ReactiveInsights"
+      ]
+    },
+    "SearchOrganizationInsights": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": [
+        "ProactiveInsights",
+        "ReactiveInsights"
+      ]
+    },
+    "ListAnomalousLogGroups": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": [
+        "InsightId",
+        "AnomalousLogGroups"
+      ]
+    },
+    "ListMonitoredResources": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": [
+        "MonitoredResourceIdentifiers"
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/devops-guru/2020-12-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/devops-guru/2020-12-01/service-2.json.gz
new file mode 100644
index 00000000..87f0387f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/devops-guru/2020-12-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/directconnect/2012-10-25/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/directconnect/2012-10-25/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..c811b08c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/directconnect/2012-10-25/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/directconnect/2012-10-25/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/directconnect/2012-10-25/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/directconnect/2012-10-25/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/directconnect/2012-10-25/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/directconnect/2012-10-25/paginators-1.json
new file mode 100644
index 00000000..dbca668f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/directconnect/2012-10-25/paginators-1.json
@@ -0,0 +1,22 @@
+{
+  "pagination": {
+    "DescribeDirectConnectGatewayAssociations": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "directConnectGatewayAssociations"
+    },
+    "DescribeDirectConnectGatewayAttachments": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "directConnectGatewayAttachments"
+    },
+    "DescribeDirectConnectGateways": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "directConnectGateways"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/directconnect/2012-10-25/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/directconnect/2012-10-25/service-2.json.gz
new file mode 100644
index 00000000..72888858
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/directconnect/2012-10-25/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/discovery/2015-11-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/discovery/2015-11-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..36bef9ab
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/discovery/2015-11-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/discovery/2015-11-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/discovery/2015-11-01/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/discovery/2015-11-01/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/discovery/2015-11-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/discovery/2015-11-01/paginators-1.json
new file mode 100644
index 00000000..5567a777
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/discovery/2015-11-01/paginators-1.json
@@ -0,0 +1,46 @@
+{
+  "pagination": {
+    "DescribeAgents": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "agentsInfo"
+    },
+    "DescribeContinuousExports": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "descriptions"
+    },
+    "DescribeExportConfigurations": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "exportsInfo"
+    },
+    "DescribeExportTasks": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "exportsInfo"
+    },
+    "DescribeTags": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "tags"
+    },
+    "ListConfigurations": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "configurations"
+    },
+    "DescribeImportTasks": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "tasks"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/discovery/2015-11-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/discovery/2015-11-01/service-2.json.gz
new file mode 100644
index 00000000..5852d99b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/discovery/2015-11-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/dlm/2018-01-12/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/dlm/2018-01-12/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..2e701c0d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/dlm/2018-01-12/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/dlm/2018-01-12/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/dlm/2018-01-12/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/dlm/2018-01-12/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/dlm/2018-01-12/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/dlm/2018-01-12/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/dlm/2018-01-12/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/dlm/2018-01-12/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/dlm/2018-01-12/service-2.json.gz
new file mode 100644
index 00000000..2674d76c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/dlm/2018-01-12/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/dms/2016-01-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/dms/2016-01-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..33788e9b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/dms/2016-01-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/dms/2016-01-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/dms/2016-01-01/examples-1.json
new file mode 100644
index 00000000..f9e8c4e5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/dms/2016-01-01/examples-1.json
@@ -0,0 +1,1074 @@
+{
+  "version": "1.0",
+  "examples": {
+    "AddTagsToResource": [
+      {
+        "input": {
+          "ResourceArn": "arn:aws:dms:us-east-1:123456789012:endpoint:ASXWXJZLNWNT5HTWCGV2BUJQ7E",
+          "Tags": [
+            {
+              "Key": "Acount",
+              "Value": "1633456"
+            }
+          ]
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+            "ResourceArn": "Required. Use the ARN of the resource you want to tag.",
+            "Tags": "Required. Use the Key/Value pair format."
+          },
+          "output": {
+          }
+        },
+        "description": "Adds metadata tags to an AWS DMS resource, including replication instance, endpoint, security group, and migration task. These tags can also be used with cost allocation reporting to track cost associated with AWS DMS resources, or used in a Condition statement in an IAM policy for AWS DMS.",
+        "id": "add-tags-to-resource-1481744141435",
+        "title": "Add tags to resource"
+      }
+    ],
+    "CreateEndpoint": [
+      {
+        "input": {
+          "CertificateArn": "",
+          "DatabaseName": "testdb",
+          "EndpointIdentifier": "test-endpoint-1",
+          "EndpointType": "source",
+          "EngineName": "mysql",
+          "ExtraConnectionAttributes": "",
+          "KmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/4c1731d6-5435-ed4d-be13-d53411a7cfbd",
+          "Password": "pasword",
+          "Port": 3306,
+          "ServerName": "mydb.cx1llnox7iyx.us-west-2.rds.amazonaws.com",
+          "SslMode": "require",
+          "Tags": [
+            {
+              "Key": "Acount",
+              "Value": "143327655"
+            }
+          ],
+          "Username": "username"
+        },
+        "output": {
+          "Endpoint": {
+            "EndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:RAAR3R22XSH46S3PWLC3NJAWKM",
+            "EndpointIdentifier": "test-endpoint-1",
+            "EndpointType": "source",
+            "EngineName": "mysql",
+            "KmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/4c1731d6-5435-ed4d-be13-d53411a7cfbd",
+            "Port": 3306,
+            "ServerName": "mydb.cx1llnox7iyx.us-west-2.rds.amazonaws.com",
+            "Status": "active",
+            "Username": "username"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Creates an endpoint using the provided settings.",
+        "id": "create-endpoint-1481746254348",
+        "title": "Create endpoint"
+      }
+    ],
+    "CreateReplicationInstance": [
+      {
+        "input": {
+          "AllocatedStorage": 123,
+          "AutoMinorVersionUpgrade": true,
+          "AvailabilityZone": "",
+          "EngineVersion": "",
+          "KmsKeyId": "",
+          "MultiAZ": true,
+          "PreferredMaintenanceWindow": "",
+          "PubliclyAccessible": true,
+          "ReplicationInstanceClass": "",
+          "ReplicationInstanceIdentifier": "",
+          "ReplicationSubnetGroupIdentifier": "",
+          "Tags": [
+            {
+              "Key": "string",
+              "Value": "string"
+            }
+          ],
+          "VpcSecurityGroupIds": [
+
+          ]
+        },
+        "output": {
+          "ReplicationInstance": {
+            "AllocatedStorage": 5,
+            "AutoMinorVersionUpgrade": true,
+            "EngineVersion": "1.5.0",
+            "KmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/4c1731d6-5435-ed4d-be13-d53411a7cfbd",
+            "PendingModifiedValues": {
+            },
+            "PreferredMaintenanceWindow": "sun:06:00-sun:14:00",
+            "PubliclyAccessible": true,
+            "ReplicationInstanceArn": "arn:aws:dms:us-east-1:123456789012:rep:6UTDJGBOUS3VI3SUWA66XFJCJQ",
+            "ReplicationInstanceClass": "dms.t2.micro",
+            "ReplicationInstanceIdentifier": "test-rep-1",
+            "ReplicationInstanceStatus": "creating",
+            "ReplicationSubnetGroup": {
+              "ReplicationSubnetGroupDescription": "default",
+              "ReplicationSubnetGroupIdentifier": "default",
+              "SubnetGroupStatus": "Complete",
+              "Subnets": [
+                {
+                  "SubnetAvailabilityZone": {
+                    "Name": "us-east-1d"
+                  },
+                  "SubnetIdentifier": "subnet-f6dd91af",
+                  "SubnetStatus": "Active"
+                },
+                {
+                  "SubnetAvailabilityZone": {
+                    "Name": "us-east-1b"
+                  },
+                  "SubnetIdentifier": "subnet-3605751d",
+                  "SubnetStatus": "Active"
+                },
+                {
+                  "SubnetAvailabilityZone": {
+                    "Name": "us-east-1c"
+                  },
+                  "SubnetIdentifier": "subnet-c2daefb5",
+                  "SubnetStatus": "Active"
+                },
+                {
+                  "SubnetAvailabilityZone": {
+                    "Name": "us-east-1e"
+                  },
+                  "SubnetIdentifier": "subnet-85e90cb8",
+                  "SubnetStatus": "Active"
+                }
+              ],
+              "VpcId": "vpc-6741a603"
+            }
+          }
+        },
+        "comments": {
+          "output": {
+          }
+        },
+        "description": "Creates the replication instance using the specified parameters.",
+        "id": "create-replication-instance-1481746705295",
+        "title": "Create replication instance"
+      }
+    ],
+    "CreateReplicationSubnetGroup": [
+      {
+        "input": {
+          "ReplicationSubnetGroupDescription": "US West subnet group",
+          "ReplicationSubnetGroupIdentifier": "us-west-2ab-vpc-215ds366",
+          "SubnetIds": [
+            "subnet-e145356n",
+            "subnet-58f79200"
+          ],
+          "Tags": [
+            {
+              "Key": "Acount",
+              "Value": "145235"
+            }
+          ]
+        },
+        "output": {
+          "ReplicationSubnetGroup": {
+          }
+        },
+        "comments": {
+          "output": {
+          }
+        },
+        "description": "Creates a replication subnet group given a list of the subnet IDs in a VPC.",
+        "id": "create-replication-subnet-group-1481747297930",
+        "title": "Create replication subnet group"
+      }
+    ],
+    "CreateReplicationTask": [
+      {
+        "input": {
+          "CdcStartTime": "2016-12-14T18:25:43Z",
+          "MigrationType": "full-load",
+          "ReplicationInstanceArn": "arn:aws:dms:us-east-1:123456789012:rep:6UTDJGBOUS3VI3SUWA66XFJCJQ",
+          "ReplicationTaskIdentifier": "task1",
+          "ReplicationTaskSettings": "",
+          "SourceEndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:ZW5UAN6P4E77EC7YWHK4RZZ3BE",
+          "TableMappings": "file://mappingfile.json",
+          "Tags": [
+            {
+              "Key": "Acount",
+              "Value": "24352226"
+            }
+          ],
+          "TargetEndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:ASXWXJZLNWNT5HTWCGV2BUJQ7E"
+        },
+        "output": {
+          "ReplicationTask": {
+            "MigrationType": "full-load",
+            "ReplicationInstanceArn": "arn:aws:dms:us-east-1:123456789012:rep:6UTDJGBOUS3VI3SUWA66XFJCJQ",
+            "ReplicationTaskArn": "arn:aws:dms:us-east-1:123456789012:task:OEAMB3NXSTZ6LFYZFEPPBBXPYM",
+            "ReplicationTaskCreationDate": "2016-12-14T18:25:43Z",
+            "ReplicationTaskIdentifier": "task1",
+            "ReplicationTaskSettings": "{\"TargetMetadata\":{\"TargetSchema\":\"\",\"SupportLobs\":true,\"FullLobMode\":true,\"LobChunkSize\":64,\"LimitedSizeLobMode\":false,\"LobMaxSize\":0},\"FullLoadSettings\":{\"FullLoadEnabled\":true,\"ApplyChangesEnabled\":false,\"TargetTablePrepMode\":\"DROP_AND_CREATE\",\"CreatePkAfterFullLoad\":false,\"StopTaskCachedChangesApplied\":false,\"StopTaskCachedChangesNotApplied\":false,\"ResumeEnabled\":false,\"ResumeMinTableSize\":100000,\"ResumeOnlyClusteredPKTables\":true,\"MaxFullLoadSubTasks\":8,\"TransactionConsistencyTimeout\":600,\"CommitRate\":10000},\"Logging\":{\"EnableLogging\":false}}",
+            "SourceEndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:ZW5UAN6P4E77EC7YWHK4RZZ3BE",
+            "Status": "creating",
+            "TableMappings": "file://mappingfile.json",
+            "TargetEndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:ASXWXJZLNWNT5HTWCGV2BUJQ7E"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Creates a replication task using the specified parameters.",
+        "id": "create-replication-task-1481747646288",
+        "title": "Create replication task"
+      }
+    ],
+    "DeleteCertificate": [
+      {
+        "input": {
+          "CertificateArn": "arn:aws:dms:us-east-1:123456789012:rep:6UTDJGBOUSM457DE6XFJCJQ"
+        },
+        "output": {
+          "Certificate": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Deletes the specified certificate.",
+        "id": "delete-certificate-1481751957981",
+        "title": "Delete Certificate"
+      }
+    ],
+    "DeleteConnection": [
+      {
+        "input": {
+          "EndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:RAAR3R22XSH46S3PWLC3NJAWKM",
+          "ReplicationInstanceArn": "arn:aws:dms:us-east-1:123456789012:rep:6UTDJGBOUS3VI3SUWA66XFJCJQ"
+        },
+        "output": {
+          "Connection": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Deletes the connection between the replication instance and the endpoint.",
+        "id": "delete-connection-1481751957981",
+        "title": "Delete Connection"
+      }
+    ],
+    "DeleteEndpoint": [
+      {
+        "input": {
+          "EndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:RAAR3R22XSH46S3PWLC3NJAWKM"
+        },
+        "output": {
+          "Endpoint": {
+            "EndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:RAAR3R22XSH46S3PWLC3NJAWKM",
+            "EndpointIdentifier": "test-endpoint-1",
+            "EndpointType": "source",
+            "EngineName": "mysql",
+            "KmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/4c1731d6-5435-ed4d-be13-d53411a7cfbd",
+            "Port": 3306,
+            "ServerName": "mydb.cx1llnox7iyx.us-west-2.rds.amazonaws.com",
+            "Status": "active",
+            "Username": "username"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Deletes the specified endpoint. All tasks associated with the endpoint must be deleted before you can delete the endpoint.\n",
+        "id": "delete-endpoint-1481752425530",
+        "title": "Delete Endpoint"
+      }
+    ],
+    "DeleteReplicationInstance": [
+      {
+        "input": {
+          "ReplicationInstanceArn": "arn:aws:dms:us-east-1:123456789012:rep:6UTDJGBOUS3VI3SUWA66XFJCJQ"
+        },
+        "output": {
+          "ReplicationInstance": {
+            "AllocatedStorage": 5,
+            "AutoMinorVersionUpgrade": true,
+            "EngineVersion": "1.5.0",
+            "KmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/4c1731d6-5435-ed4d-be13-d53411a7cfbd",
+            "PendingModifiedValues": {
+            },
+            "PreferredMaintenanceWindow": "sun:06:00-sun:14:00",
+            "PubliclyAccessible": true,
+            "ReplicationInstanceArn": "arn:aws:dms:us-east-1:123456789012:rep:6UTDJGBOUS3VI3SUWA66XFJCJQ",
+            "ReplicationInstanceClass": "dms.t2.micro",
+            "ReplicationInstanceIdentifier": "test-rep-1",
+            "ReplicationInstanceStatus": "creating",
+            "ReplicationSubnetGroup": {
+              "ReplicationSubnetGroupDescription": "default",
+              "ReplicationSubnetGroupIdentifier": "default",
+              "SubnetGroupStatus": "Complete",
+              "Subnets": [
+                {
+                  "SubnetAvailabilityZone": {
+                    "Name": "us-east-1d"
+                  },
+                  "SubnetIdentifier": "subnet-f6dd91af",
+                  "SubnetStatus": "Active"
+                },
+                {
+                  "SubnetAvailabilityZone": {
+                    "Name": "us-east-1b"
+                  },
+                  "SubnetIdentifier": "subnet-3605751d",
+                  "SubnetStatus": "Active"
+                },
+                {
+                  "SubnetAvailabilityZone": {
+                    "Name": "us-east-1c"
+                  },
+                  "SubnetIdentifier": "subnet-c2daefb5",
+                  "SubnetStatus": "Active"
+                },
+                {
+                  "SubnetAvailabilityZone": {
+                    "Name": "us-east-1e"
+                  },
+                  "SubnetIdentifier": "subnet-85e90cb8",
+                  "SubnetStatus": "Active"
+                }
+              ],
+              "VpcId": "vpc-6741a603"
+            }
+          }
+        },
+        "comments": {
+          "output": {
+          }
+        },
+        "description": "Deletes the specified replication instance. You must delete any migration tasks that are associated with the replication instance before you can delete it.\n\n",
+        "id": "delete-replication-instance-1481752552839",
+        "title": "Delete Replication Instance"
+      }
+    ],
+    "DeleteReplicationSubnetGroup": [
+      {
+        "input": {
+          "ReplicationSubnetGroupIdentifier": "us-west-2ab-vpc-215ds366"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Deletes a replication subnet group.",
+        "id": "delete-replication-subnet-group-1481752728597",
+        "title": "Delete Replication Subnet Group"
+      }
+    ],
+    "DeleteReplicationTask": [
+      {
+        "input": {
+          "ReplicationTaskArn": "arn:aws:dms:us-east-1:123456789012:rep:6UTDJGBOUS3VI3SUWA66XFJCJQ"
+        },
+        "output": {
+          "ReplicationTask": {
+            "MigrationType": "full-load",
+            "ReplicationInstanceArn": "arn:aws:dms:us-east-1:123456789012:rep:6UTDJGBOUS3VI3SUWA66XFJCJQ",
+            "ReplicationTaskArn": "arn:aws:dms:us-east-1:123456789012:task:OEAMB3NXSTZ6LFYZFEPPBBXPYM",
+            "ReplicationTaskCreationDate": "2016-12-14T18:25:43Z",
+            "ReplicationTaskIdentifier": "task1",
+            "ReplicationTaskSettings": "{\"TargetMetadata\":{\"TargetSchema\":\"\",\"SupportLobs\":true,\"FullLobMode\":true,\"LobChunkSize\":64,\"LimitedSizeLobMode\":false,\"LobMaxSize\":0},\"FullLoadSettings\":{\"FullLoadEnabled\":true,\"ApplyChangesEnabled\":false,\"TargetTablePrepMode\":\"DROP_AND_CREATE\",\"CreatePkAfterFullLoad\":false,\"StopTaskCachedChangesApplied\":false,\"StopTaskCachedChangesNotApplied\":false,\"ResumeEnabled\":false,\"ResumeMinTableSize\":100000,\"ResumeOnlyClusteredPKTables\":true,\"MaxFullLoadSubTasks\":8,\"TransactionConsistencyTimeout\":600,\"CommitRate\":10000},\"Logging\":{\"EnableLogging\":false}}",
+            "SourceEndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:ZW5UAN6P4E77EC7YWHK4RZZ3BE",
+            "Status": "creating",
+            "TableMappings": "file://mappingfile.json",
+            "TargetEndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:ASXWXJZLNWNT5HTWCGV2BUJQ7E"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Deletes the specified replication task.",
+        "id": "delete-replication-task-1481752903506",
+        "title": "Delete Replication Task"
+      }
+    ],
+    "DescribeAccountAttributes": [
+      {
+        "input": {
+        },
+        "output": {
+          "AccountQuotas": [
+            {
+              "AccountQuotaName": "ReplicationInstances",
+              "Max": 20,
+              "Used": 0
+            },
+            {
+              "AccountQuotaName": "AllocatedStorage",
+              "Max": 20,
+              "Used": 0
+            },
+            {
+              "AccountQuotaName": "Endpoints",
+              "Max": 20,
+              "Used": 0
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Lists all of the AWS DMS attributes for a customer account. The attributes include AWS DMS quotas for the account, such as the number of replication instances allowed. The description for a quota includes the quota name, current usage toward that quota, and the quota's maximum value. This operation does not take any parameters.",
+        "id": "describe-acount-attributes-1481753085663",
+        "title": "Describe acount attributes"
+      }
+    ],
+    "DescribeCertificates": [
+      {
+        "input": {
+          "Filters": [
+            {
+              "Name": "string",
+              "Values": [
+                "string",
+                "string"
+              ]
+            }
+          ],
+          "Marker": "",
+          "MaxRecords": 123
+        },
+        "output": {
+          "Certificates": [
+
+          ],
+          "Marker": ""
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Provides a description of the certificate.",
+        "id": "describe-certificates-1481753186244",
+        "title": "Describe certificates"
+      }
+    ],
+    "DescribeConnections": [
+      {
+        "input": {
+          "Filters": [
+            {
+              "Name": "string",
+              "Values": [
+                "string",
+                "string"
+              ]
+            }
+          ],
+          "Marker": "",
+          "MaxRecords": 123
+        },
+        "output": {
+          "Connections": [
+            {
+              "EndpointArn": "arn:aws:dms:us-east-arn:aws:dms:us-east-1:123456789012:endpoint:ZW5UAN6P4E77EC7YWHK4RZZ3BE",
+              "EndpointIdentifier": "testsrc1",
+              "ReplicationInstanceArn": "arn:aws:dms:us-east-1:123456789012:rep:6UTDJGBOUS3VI3SUWA66XFJCJQ",
+              "ReplicationInstanceIdentifier": "test",
+              "Status": "successful"
+            }
+          ],
+          "Marker": ""
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Describes the status of the connections that have been made between the replication instance and an endpoint. Connections are created when you test an endpoint.",
+        "id": "describe-connections-1481754477953",
+        "title": "Describe connections"
+      }
+    ],
+    "DescribeEndpointTypes": [
+      {
+        "input": {
+          "Filters": [
+            {
+              "Name": "string",
+              "Values": [
+                "string",
+                "string"
+              ]
+            }
+          ],
+          "Marker": "",
+          "MaxRecords": 123
+        },
+        "output": {
+          "Marker": "",
+          "SupportedEndpointTypes": [
+
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Returns information about the type of endpoints available.",
+        "id": "describe-endpoint-types-1481754742591",
+        "title": "Describe endpoint types"
+      }
+    ],
+    "DescribeEndpoints": [
+      {
+        "input": {
+          "Filters": [
+            {
+              "Name": "string",
+              "Values": [
+                "string",
+                "string"
+              ]
+            }
+          ],
+          "Marker": "",
+          "MaxRecords": 123
+        },
+        "output": {
+          "Endpoints": [
+
+          ],
+          "Marker": ""
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Returns information about the endpoints for your account in the current region.",
+        "id": "describe-endpoints-1481754926060",
+        "title": "Describe endpoints"
+      }
+    ],
+    "DescribeOrderableReplicationInstances": [
+      {
+        "input": {
+          "Marker": "",
+          "MaxRecords": 123
+        },
+        "output": {
+          "Marker": "",
+          "OrderableReplicationInstances": [
+
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Returns information about the replication instance types that can be created in the specified region.",
+        "id": "describe-orderable-replication-instances-1481755123669",
+        "title": "Describe orderable replication instances"
+      }
+    ],
+    "DescribeRefreshSchemasStatus": [
+      {
+        "input": {
+          "EndpointArn": ""
+        },
+        "output": {
+          "RefreshSchemasStatus": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Returns the status of the refresh-schemas operation.",
+        "id": "describe-refresh-schema-status-1481755303497",
+        "title": "Describe refresh schema status"
+      }
+    ],
+    "DescribeReplicationInstances": [
+      {
+        "input": {
+          "Filters": [
+            {
+              "Name": "string",
+              "Values": [
+                "string",
+                "string"
+              ]
+            }
+          ],
+          "Marker": "",
+          "MaxRecords": 123
+        },
+        "output": {
+          "Marker": "",
+          "ReplicationInstances": [
+
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Returns the status of the refresh-schemas operation.",
+        "id": "describe-replication-instances-1481755443952",
+        "title": "Describe replication instances"
+      }
+    ],
+    "DescribeReplicationSubnetGroups": [
+      {
+        "input": {
+          "Filters": [
+            {
+              "Name": "string",
+              "Values": [
+                "string",
+                "string"
+              ]
+            }
+          ],
+          "Marker": "",
+          "MaxRecords": 123
+        },
+        "output": {
+          "Marker": "",
+          "ReplicationSubnetGroups": [
+
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Returns information about the replication subnet groups.",
+        "id": "describe-replication-subnet-groups-1481755621284",
+        "title": "Describe replication subnet groups"
+      }
+    ],
+    "DescribeReplicationTasks": [
+      {
+        "input": {
+          "Filters": [
+            {
+              "Name": "string",
+              "Values": [
+                "string",
+                "string"
+              ]
+            }
+          ],
+          "Marker": "",
+          "MaxRecords": 123
+        },
+        "output": {
+          "Marker": "",
+          "ReplicationTasks": [
+
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Returns information about replication tasks for your account in the current region.",
+        "id": "describe-replication-tasks-1481755777563",
+        "title": "Describe replication tasks"
+      }
+    ],
+    "DescribeSchemas": [
+      {
+        "input": {
+          "EndpointArn": "",
+          "Marker": "",
+          "MaxRecords": 123
+        },
+        "output": {
+          "Marker": "",
+          "Schemas": [
+
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Returns information about the schema for the specified endpoint.",
+        "id": "describe-schemas-1481755933924",
+        "title": "Describe schemas"
+      }
+    ],
+    "DescribeTableStatistics": [
+      {
+        "input": {
+          "Marker": "",
+          "MaxRecords": 123,
+          "ReplicationTaskArn": ""
+        },
+        "output": {
+          "Marker": "",
+          "ReplicationTaskArn": "",
+          "TableStatistics": [
+
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Returns table statistics on the database migration task, including table name, rows inserted, rows updated, and rows deleted.",
+        "id": "describe-table-statistics-1481756071890",
+        "title": "Describe table statistics"
+      }
+    ],
+    "ImportCertificate": [
+      {
+        "input": {
+          "CertificateIdentifier": "",
+          "CertificatePem": ""
+        },
+        "output": {
+          "Certificate": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Uploads the specified certificate.",
+        "id": "import-certificate-1481756197206",
+        "title": "Import certificate"
+      }
+    ],
+    "ListTagsForResource": [
+      {
+        "input": {
+          "ResourceArn": ""
+        },
+        "output": {
+          "TagList": [
+
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Lists all tags for an AWS DMS resource.",
+        "id": "list-tags-for-resource-1481761095501",
+        "title": "List tags for resource"
+      }
+    ],
+    "ModifyEndpoint": [
+      {
+        "input": {
+          "CertificateArn": "",
+          "DatabaseName": "",
+          "EndpointArn": "",
+          "EndpointIdentifier": "",
+          "EndpointType": "source",
+          "EngineName": "",
+          "ExtraConnectionAttributes": "",
+          "Password": "",
+          "Port": 123,
+          "ServerName": "",
+          "SslMode": "require",
+          "Username": ""
+        },
+        "output": {
+          "Endpoint": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Modifies the specified endpoint.",
+        "id": "modify-endpoint-1481761649937",
+        "title": "Modify endpoint"
+      }
+    ],
+    "ModifyReplicationInstance": [
+      {
+        "input": {
+          "AllocatedStorage": 123,
+          "AllowMajorVersionUpgrade": true,
+          "ApplyImmediately": true,
+          "AutoMinorVersionUpgrade": true,
+          "EngineVersion": "1.5.0",
+          "MultiAZ": true,
+          "PreferredMaintenanceWindow": "sun:06:00-sun:14:00",
+          "ReplicationInstanceArn": "arn:aws:dms:us-east-1:123456789012:rep:6UTDJGBOUS3VI3SUWA66XFJCJQ",
+          "ReplicationInstanceClass": "dms.t2.micro",
+          "ReplicationInstanceIdentifier": "test-rep-1",
+          "VpcSecurityGroupIds": [
+
+          ]
+        },
+        "output": {
+          "ReplicationInstance": {
+            "AllocatedStorage": 5,
+            "AutoMinorVersionUpgrade": true,
+            "EngineVersion": "1.5.0",
+            "KmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/4c1731d6-5435-ed4d-be13-d53411a7cfbd",
+            "PendingModifiedValues": {
+            },
+            "PreferredMaintenanceWindow": "sun:06:00-sun:14:00",
+            "PubliclyAccessible": true,
+            "ReplicationInstanceArn": "arn:aws:dms:us-east-1:123456789012:rep:6UTDJGBOUS3VI3SUWA66XFJCJQ",
+            "ReplicationInstanceClass": "dms.t2.micro",
+            "ReplicationInstanceIdentifier": "test-rep-1",
+            "ReplicationInstanceStatus": "available",
+            "ReplicationSubnetGroup": {
+              "ReplicationSubnetGroupDescription": "default",
+              "ReplicationSubnetGroupIdentifier": "default",
+              "SubnetGroupStatus": "Complete",
+              "Subnets": [
+                {
+                  "SubnetAvailabilityZone": {
+                    "Name": "us-east-1d"
+                  },
+                  "SubnetIdentifier": "subnet-f6dd91af",
+                  "SubnetStatus": "Active"
+                },
+                {
+                  "SubnetAvailabilityZone": {
+                    "Name": "us-east-1b"
+                  },
+                  "SubnetIdentifier": "subnet-3605751d",
+                  "SubnetStatus": "Active"
+                },
+                {
+                  "SubnetAvailabilityZone": {
+                    "Name": "us-east-1c"
+                  },
+                  "SubnetIdentifier": "subnet-c2daefb5",
+                  "SubnetStatus": "Active"
+                },
+                {
+                  "SubnetAvailabilityZone": {
+                    "Name": "us-east-1e"
+                  },
+                  "SubnetIdentifier": "subnet-85e90cb8",
+                  "SubnetStatus": "Active"
+                }
+              ],
+              "VpcId": "vpc-6741a603"
+            }
+          }
+        },
+        "comments": {
+          "output": {
+          }
+        },
+        "description": "Modifies the replication instance to apply new settings. You can change one or more parameters by specifying these parameters and the new values in the request. Some settings are applied during the maintenance window.",
+        "id": "modify-replication-instance-1481761784746",
+        "title": "Modify replication instance"
+      }
+    ],
+    "ModifyReplicationSubnetGroup": [
+      {
+        "input": {
+          "ReplicationSubnetGroupDescription": "",
+          "ReplicationSubnetGroupIdentifier": "",
+          "SubnetIds": [
+
+          ]
+        },
+        "output": {
+          "ReplicationSubnetGroup": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Modifies the settings for the specified replication subnet group.",
+        "id": "modify-replication-subnet-group-1481762275392",
+        "title": "Modify replication subnet group"
+      }
+    ],
+    "RefreshSchemas": [
+      {
+        "input": {
+          "EndpointArn": "",
+          "ReplicationInstanceArn": ""
+        },
+        "output": {
+          "RefreshSchemasStatus": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Populates the schema for the specified endpoint. This is an asynchronous operation and can take several minutes. You can check the status of this operation by calling the describe-refresh-schemas-status operation.",
+        "id": "refresh-schema-1481762399111",
+        "title": "Refresh schema"
+      }
+    ],
+    "RemoveTagsFromResource": [
+      {
+        "input": {
+          "ResourceArn": "arn:aws:dms:us-east-1:123456789012:endpoint:ASXWXJZLNWNT5HTWCGV2BUJQ7E",
+          "TagKeys": [
+
+          ]
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Removes metadata tags from an AWS DMS resource.",
+        "id": "remove-tags-from-resource-1481762571330",
+        "title": "Remove tags from resource"
+      }
+    ],
+    "StartReplicationTask": [
+      {
+        "input": {
+          "CdcStartTime": "2016-12-14T13:33:20Z",
+          "ReplicationTaskArn": "arn:aws:dms:us-east-1:123456789012:rep:6UTDJGBOUS3VI3SUWA66XFJCJQ",
+          "StartReplicationTaskType": "start-replication"
+        },
+        "output": {
+          "ReplicationTask": {
+            "MigrationType": "full-load",
+            "ReplicationInstanceArn": "arn:aws:dms:us-east-1:123456789012:rep:6UTDJGBOUS3VI3SUWA66XFJCJQ",
+            "ReplicationTaskArn": "arn:aws:dms:us-east-1:123456789012:task:OEAMB3NXSTZ6LFYZFEPPBBXPYM",
+            "ReplicationTaskCreationDate": "2016-12-14T18:25:43Z",
+            "ReplicationTaskIdentifier": "task1",
+            "ReplicationTaskSettings": "{\"TargetMetadata\":{\"TargetSchema\":\"\",\"SupportLobs\":true,\"FullLobMode\":true,\"LobChunkSize\":64,\"LimitedSizeLobMode\":false,\"LobMaxSize\":0},\"FullLoadSettings\":{\"FullLoadEnabled\":true,\"ApplyChangesEnabled\":false,\"TargetTablePrepMode\":\"DROP_AND_CREATE\",\"CreatePkAfterFullLoad\":false,\"StopTaskCachedChangesApplied\":false,\"StopTaskCachedChangesNotApplied\":false,\"ResumeEnabled\":false,\"ResumeMinTableSize\":100000,\"ResumeOnlyClusteredPKTables\":true,\"MaxFullLoadSubTasks\":8,\"TransactionConsistencyTimeout\":600,\"CommitRate\":10000},\"Logging\":{\"EnableLogging\":false}}",
+            "SourceEndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:ZW5UAN6P4E77EC7YWHK4RZZ3BE",
+            "Status": "creating",
+            "TableMappings": "file://mappingfile.json",
+            "TargetEndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:ASXWXJZLNWNT5HTWCGV2BUJQ7E"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Starts the replication task.",
+        "id": "start-replication-task-1481762706778",
+        "title": "Start replication task"
+      }
+    ],
+    "StopReplicationTask": [
+      {
+        "input": {
+          "ReplicationTaskArn": "arn:aws:dms:us-east-1:123456789012:endpoint:ASXWXJZLNWNT5HTWCGV2BUJQ7E"
+        },
+        "output": {
+          "ReplicationTask": {
+            "MigrationType": "full-load",
+            "ReplicationInstanceArn": "arn:aws:dms:us-east-1:123456789012:rep:6UTDJGBOUS3VI3SUWA66XFJCJQ",
+            "ReplicationTaskArn": "arn:aws:dms:us-east-1:123456789012:task:OEAMB3NXSTZ6LFYZFEPPBBXPYM",
+            "ReplicationTaskCreationDate": "2016-12-14T18:25:43Z",
+            "ReplicationTaskIdentifier": "task1",
+            "ReplicationTaskSettings": "{\"TargetMetadata\":{\"TargetSchema\":\"\",\"SupportLobs\":true,\"FullLobMode\":true,\"LobChunkSize\":64,\"LimitedSizeLobMode\":false,\"LobMaxSize\":0},\"FullLoadSettings\":{\"FullLoadEnabled\":true,\"ApplyChangesEnabled\":false,\"TargetTablePrepMode\":\"DROP_AND_CREATE\",\"CreatePkAfterFullLoad\":false,\"StopTaskCachedChangesApplied\":false,\"StopTaskCachedChangesNotApplied\":false,\"ResumeEnabled\":false,\"ResumeMinTableSize\":100000,\"ResumeOnlyClusteredPKTables\":true,\"MaxFullLoadSubTasks\":8,\"TransactionConsistencyTimeout\":600,\"CommitRate\":10000},\"Logging\":{\"EnableLogging\":false}}",
+            "SourceEndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:ZW5UAN6P4E77EC7YWHK4RZZ3BE",
+            "Status": "creating",
+            "TableMappings": "file://mappingfile.json",
+            "TargetEndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:ASXWXJZLNWNT5HTWCGV2BUJQ7E"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Stops the replication task.",
+        "id": "stop-replication-task-1481762924947",
+        "title": "Stop replication task"
+      }
+    ],
+    "TestConnection": [
+      {
+        "input": {
+          "EndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:RAAR3R22XSH46S3PWLC3NJAWKM",
+          "ReplicationInstanceArn": "arn:aws:dms:us-east-1:123456789012:rep:6UTDJGBOUS3VI3SUWA66XFJCJQ"
+        },
+        "output": {
+          "Connection": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Tests the connection between the replication instance and the endpoint.",
+        "id": "test-conection-1481763017636",
+        "title": "Test conection"
+      }
+    ]
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/dms/2016-01-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/dms/2016-01-01/paginators-1.json
new file mode 100644
index 00000000..054b79c2
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/dms/2016-01-01/paginators-1.json
@@ -0,0 +1,88 @@
+{
+  "pagination": {
+    "DescribeSchemas": {
+      "result_key": "Schemas",
+      "output_token": "Marker",
+      "input_token": "Marker",
+      "limit_key": "MaxRecords"
+    },
+    "DescribeCertificates": {
+      "result_key": "Certificates",
+      "output_token": "Marker",
+      "input_token": "Marker",
+      "limit_key": "MaxRecords"
+    },
+    "DescribeEndpoints": {
+      "result_key": "Endpoints",
+      "output_token": "Marker",
+      "input_token": "Marker",
+      "limit_key": "MaxRecords"
+    },
+    "DescribeEventSubscriptions": {
+      "result_key": "EventSubscriptionsList",
+      "output_token": "Marker",
+      "input_token": "Marker",
+      "limit_key": "MaxRecords"
+    },
+    "DescribeEndpointTypes": {
+      "result_key": "SupportedEndpointTypes",
+      "output_token": "Marker",
+      "input_token": "Marker",
+      "limit_key": "MaxRecords"
+    },
+    "DescribeReplicationInstances": {
+      "result_key": "ReplicationInstances",
+      "output_token": "Marker",
+      "input_token": "Marker",
+      "limit_key": "MaxRecords"
+    },
+    "DescribeTableStatistics": {
+      "result_key": "TableStatistics",
+      "output_token": "Marker",
+      "input_token": "Marker",
+      "limit_key": "MaxRecords"
+    },
+    "DescribeConnections": {
+      "result_key": "Connections",
+      "output_token": "Marker",
+      "input_token": "Marker",
+      "limit_key": "MaxRecords"
+    },
+    "DescribeReplicationTaskAssessmentResults": {
+      "result_key": "ReplicationTaskAssessmentResults",
+      "output_token": "Marker",
+      "input_token": "Marker",
+      "limit_key": "MaxRecords"
+    },
+    "DescribeEvents": {
+      "result_key": "Events",
+      "output_token": "Marker",
+      "input_token": "Marker",
+      "limit_key": "MaxRecords"
+    },
+    "DescribeOrderableReplicationInstances": {
+      "result_key": "OrderableReplicationInstances",
+      "output_token": "Marker",
+      "input_token": "Marker",
+      "limit_key": "MaxRecords"
+    },
+    "DescribeReplicationSubnetGroups": {
+      "result_key": "ReplicationSubnetGroups",
+      "output_token": "Marker",
+      "input_token": "Marker",
+      "limit_key": "MaxRecords"
+    },
+    "DescribeReplicationTasks": {
+      "result_key": "ReplicationTasks",
+      "output_token": "Marker",
+      "input_token": "Marker",
+      "limit_key": "MaxRecords"
+    },
+    "DescribeDataMigrations": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "DataMigrations"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/dms/2016-01-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/dms/2016-01-01/service-2.json.gz
new file mode 100644
index 00000000..49f8d86f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/dms/2016-01-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/dms/2016-01-01/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/dms/2016-01-01/waiters-2.json
new file mode 100644
index 00000000..73fba510
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/dms/2016-01-01/waiters-2.json
@@ -0,0 +1,330 @@
+{ 
+    "version":2,
+    "waiters":{
+        "TestConnectionSucceeds":{
+            "acceptors":[
+                {
+                    "argument":"Connections[].Status",
+                    "expected":"successful",
+                    "matcher":"pathAll",
+                    "state":"success"
+                },
+                {
+                    "argument":"Connections[].Status",
+                    "expected":"failed",
+                    "matcher":"pathAny",
+                    "state":"failure"
+                }
+            ],
+            "delay":5,
+            "description":"Wait until testing connection succeeds.",
+            "maxAttempts":60,
+            "operation":"DescribeConnections"
+        },
+        "EndpointDeleted":{
+            "acceptors":[
+                {
+                    "expected":"ResourceNotFoundFault",
+                    "matcher":"error",
+                    "state":"success"
+                },
+                {
+                    "argument":"Endpoints[].Status",
+                    "expected":"active",
+                    "matcher":"pathAny",
+                    "state":"failure"
+                },
+                {
+                    "argument":"Endpoints[].Status",
+                    "expected":"creating",
+                    "matcher":"pathAny",
+                    "state":"failure"
+                }
+            ],
+            "delay":5,
+            "description":"Wait until testing endpoint is deleted.",
+            "maxAttempts":60,
+            "operation":"DescribeEndpoints"
+        },
+        "ReplicationInstanceAvailable":{
+            "acceptors":[
+                {
+                    "argument":"ReplicationInstances[].ReplicationInstanceStatus",
+                    "expected":"available",
+                    "matcher":"pathAll",
+                    "state":"success"
+                },
+                {
+                    "argument":"ReplicationInstances[].ReplicationInstanceStatus",
+                    "expected":"deleting",
+                    "matcher":"pathAny",
+                    "state":"failure"
+                },
+                {
+                    "argument":"ReplicationInstances[].ReplicationInstanceStatus",
+                    "expected":"incompatible-credentials",
+                    "matcher":"pathAny",
+                    "state":"failure"
+                },
+                {
+                    "argument":"ReplicationInstances[].ReplicationInstanceStatus",
+                    "expected":"incompatible-network",
+                    "matcher":"pathAny",
+                    "state":"failure"
+                },
+                {
+                    "argument":"ReplicationInstances[].ReplicationInstanceStatus",
+                    "expected":"inaccessible-encryption-credentials",
+                    "matcher":"pathAny",
+                    "state":"failure"
+                }
+            ],
+            "delay":60,
+            "description":"Wait until DMS replication instance is available.",
+            "maxAttempts":60,
+            "operation":"DescribeReplicationInstances"
+        },
+        "ReplicationInstanceDeleted":{
+            "acceptors":[
+                {
+                    "argument":"ReplicationInstances[].ReplicationInstanceStatus",
+                    "expected":"available",
+                    "matcher":"pathAny",
+                    "state":"failure"
+                },
+                {
+                    "expected":"ResourceNotFoundFault",
+                    "matcher":"error",
+                    "state":"success"
+                }
+            ],
+            "delay":15,
+            "description":"Wait until DMS replication instance is deleted.",
+            "maxAttempts":60,
+            "operation":"DescribeReplicationInstances"
+        },
+        "ReplicationTaskReady":{
+            "acceptors":[
+                {
+                    "argument":"ReplicationTasks[].Status",
+                    "expected":"ready",
+                    "matcher":"pathAll",
+                    "state":"success"
+                },
+                {
+                    "argument":"ReplicationTasks[].Status",
+                    "expected":"starting",
+                    "matcher":"pathAny",
+                    "state":"failure"
+                },
+                {
+                    "argument":"ReplicationTasks[].Status",
+                    "expected":"running",
+                    "matcher":"pathAny",
+                    "state":"failure"
+                },
+                {
+                    "argument":"ReplicationTasks[].Status",
+                    "expected":"stopping",
+                    "matcher":"pathAny",
+                    "state":"failure"
+                },
+                {
+                    "argument":"ReplicationTasks[].Status",
+                    "expected":"stopped",
+                    "matcher":"pathAny",
+                    "state":"failure"
+                },
+                {
+                    "argument":"ReplicationTasks[].Status",
+                    "expected":"failed",
+                    "matcher":"pathAny",
+                    "state":"failure"
+                },
+                {
+                    "argument":"ReplicationTasks[].Status",
+                    "expected":"modifying",
+                    "matcher":"pathAny",
+                    "state":"failure"
+                },
+                {
+                    "argument":"ReplicationTasks[].Status",
+                    "expected":"testing",
+                    "matcher":"pathAny",
+                    "state":"failure"
+                },
+                {
+                    "argument":"ReplicationTasks[].Status",
+                    "expected":"deleting",
+                    "matcher":"pathAny",
+                    "state":"failure"
+                }
+            ],
+            "delay":15,
+            "description":"Wait until DMS replication task is ready.",
+            "maxAttempts":60,
+            "operation":"DescribeReplicationTasks"
+        },
+        "ReplicationTaskStopped":{
+            "acceptors":[
+                {
+                    "argument":"ReplicationTasks[].Status",
+                    "expected":"stopped",
+                    "matcher":"pathAll",
+                    "state":"success"
+                },
+                {
+                    "argument":"ReplicationTasks[].Status",
+                    "expected":"ready",
+                    "matcher":"pathAny",
+                    "state":"failure"
+                },
+                {
+                    "argument":"ReplicationTasks[].Status",
+                    "expected":"creating",
+                    "matcher":"pathAny",
+                    "state":"failure"
+                },
+                {
+                    "argument":"ReplicationTasks[].Status",
+                    "expected":"starting",
+                    "matcher":"pathAny",
+                    "state":"failure"
+                },
+                {
+                    "argument":"ReplicationTasks[].Status",
+                    "expected":"failed",
+                    "matcher":"pathAny",
+                    "state":"failure"
+                },
+                {
+                    "argument":"ReplicationTasks[].Status",
+                    "expected":"modifying",
+                    "matcher":"pathAny",
+                    "state":"failure"
+                },
+                {
+                    "argument":"ReplicationTasks[].Status",
+                    "expected":"testing",
+                    "matcher":"pathAny",
+                    "state":"failure"
+                },
+                {
+                    "argument":"ReplicationTasks[].Status",
+                    "expected":"deleting",
+                    "matcher":"pathAny",
+                    "state":"failure"
+                }
+            ],
+            "delay":15,
+            "description":"Wait until DMS replication task is stopped.",
+            "maxAttempts":60,
+            "operation":"DescribeReplicationTasks"
+        },
+        "ReplicationTaskRunning":{
+            "acceptors":[
+                {
+                    "argument":"ReplicationTasks[].Status",
+                    "expected":"running",
+                    "matcher":"pathAll",
+                    "state":"success"
+                },
+                {
+                    "argument":"ReplicationTasks[].Status",
+                    "expected":"ready",
+                    "matcher":"pathAny",
+                    "state":"failure"
+                },
+                {
+                    "argument":"ReplicationTasks[].Status",
+                    "expected":"creating",
+                    "matcher":"pathAny",
+                    "state":"failure"
+                },
+                {
+                    "argument":"ReplicationTasks[].Status",
+                    "expected":"stopping",
+                    "matcher":"pathAny",
+                    "state":"failure"
+                },
+                {
+                    "argument":"ReplicationTasks[].Status",
+                    "expected":"stopped",
+                    "matcher":"pathAny",
+                    "state":"failure"
+                },
+                {
+                    "argument":"ReplicationTasks[].Status",
+                    "expected":"failed",
+                    "matcher":"pathAny",
+                    "state":"failure"
+                },
+                {
+                    "argument":"ReplicationTasks[].Status",
+                    "expected":"modifying",
+                    "matcher":"pathAny",
+                    "state":"failure"
+                },
+                {
+                    "argument":"ReplicationTasks[].Status",
+                    "expected":"testing",
+                    "matcher":"pathAny",
+                    "state":"failure"
+                },
+                {
+                    "argument":"ReplicationTasks[].Status",
+                    "expected":"deleting",
+                    "matcher":"pathAny",
+                    "state":"failure"
+                }
+            ],
+            "delay":15,
+            "description":"Wait until DMS replication task is running.",
+            "maxAttempts":60,
+            "operation":"DescribeReplicationTasks"
+        },
+        "ReplicationTaskDeleted":{
+            "acceptors":[
+                {
+                    "argument":"ReplicationTasks[].Status",
+                    "expected":"ready",
+                    "matcher":"pathAny",
+                    "state":"failure"
+                },
+                {
+                    "argument":"ReplicationTasks[].Status",
+                    "expected":"creating",
+                    "matcher":"pathAny",
+                    "state":"failure"
+                },
+                {
+                    "argument":"ReplicationTasks[].Status",
+                    "expected":"stopped",
+                    "matcher":"pathAny",
+                    "state":"failure"
+                },
+                {
+                    "argument":"ReplicationTasks[].Status",
+                    "expected":"running",
+                    "matcher":"pathAny",
+                    "state":"failure"
+                },
+                {
+                    "argument":"ReplicationTasks[].Status",
+                    "expected":"failed",
+                    "matcher":"pathAny",
+                    "state":"failure"
+                },
+                {
+                    "expected":"ResourceNotFoundFault",
+                    "matcher":"error",
+                    "state":"success"
+                }
+            ],
+            "delay":15,
+            "description":"Wait until DMS replication task is deleted.",
+            "maxAttempts":60,
+            "operation":"DescribeReplicationTasks"
+        }
+    }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/docdb-elastic/2022-11-28/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/docdb-elastic/2022-11-28/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..7f1f2353
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/docdb-elastic/2022-11-28/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/docdb-elastic/2022-11-28/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/docdb-elastic/2022-11-28/paginators-1.json
new file mode 100644
index 00000000..bed516d0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/docdb-elastic/2022-11-28/paginators-1.json
@@ -0,0 +1,22 @@
+{
+  "pagination": {
+    "ListClusterSnapshots": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "snapshots"
+    },
+    "ListClusters": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "clusters"
+    },
+    "ListPendingMaintenanceActions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "resourcePendingMaintenanceActions"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/docdb-elastic/2022-11-28/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/docdb-elastic/2022-11-28/service-2.json.gz
new file mode 100644
index 00000000..6891eef2
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/docdb-elastic/2022-11-28/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/docdb/2014-10-31/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/docdb/2014-10-31/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..5bff65a6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/docdb/2014-10-31/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/docdb/2014-10-31/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/docdb/2014-10-31/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/docdb/2014-10-31/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/docdb/2014-10-31/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/docdb/2014-10-31/paginators-1.json
new file mode 100644
index 00000000..cc1a2f17
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/docdb/2014-10-31/paginators-1.json
@@ -0,0 +1,82 @@
+{
+  "pagination": {
+    "DescribeCertificates": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "Certificates"
+    },
+    "DescribeDBClusterParameterGroups": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "DBClusterParameterGroups"
+    },
+    "DescribeDBClusterParameters": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "Parameters"
+    },
+    "DescribeDBClusterSnapshots": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "DBClusterSnapshots"
+    },
+    "DescribeDBClusters": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "DBClusters"
+    },
+    "DescribeDBEngineVersions": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "DBEngineVersions"
+    },
+    "DescribeDBInstances": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "DBInstances"
+    },
+    "DescribeDBSubnetGroups": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "DBSubnetGroups"
+    },
+    "DescribeEvents": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "Events"
+    },
+    "DescribeOrderableDBInstanceOptions": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "OrderableDBInstanceOptions"
+    },
+    "DescribePendingMaintenanceActions": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "PendingMaintenanceActions"
+    },
+    "DescribeEventSubscriptions": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "EventSubscriptionsList"
+    },
+    "DescribeGlobalClusters": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "GlobalClusters"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/docdb/2014-10-31/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/docdb/2014-10-31/service-2.json.gz
new file mode 100644
index 00000000..ce619b2d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/docdb/2014-10-31/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/docdb/2014-10-31/service-2.sdk-extras.json b/.venv/lib/python3.12/site-packages/botocore/data/docdb/2014-10-31/service-2.sdk-extras.json
new file mode 100644
index 00000000..85e8a104
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/docdb/2014-10-31/service-2.sdk-extras.json
@@ -0,0 +1,23 @@
+ {
+  "version": 1.0,
+  "merge": {
+    "shapes": {
+      "CopyDBClusterSnapshotMessage": {
+        "members": {
+          "SourceRegion": {
+            "shape": "String",
+            "documentation": "<p>The ID of the region that contains the snapshot to be copied.</p>"
+          }
+        }
+      },
+      "CreateDBClusterMessage": {
+        "members": {
+          "SourceRegion": {
+            "shape": "String",
+            "documentation": "<p>The ID of the region that contains the source for the db cluster.</p>"
+          }
+        }
+      }
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/docdb/2014-10-31/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/docdb/2014-10-31/waiters-2.json
new file mode 100644
index 00000000..e75f03b2
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/docdb/2014-10-31/waiters-2.json
@@ -0,0 +1,90 @@
+{
+  "version": 2,
+  "waiters": {
+    "DBInstanceAvailable": {
+      "delay": 30,
+      "operation": "DescribeDBInstances",
+      "maxAttempts": 60,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "DBInstances[].DBInstanceStatus"
+        },
+        {
+          "expected": "deleted",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBInstances[].DBInstanceStatus"
+        },
+        {
+          "expected": "deleting",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBInstances[].DBInstanceStatus"
+        },
+        {
+          "expected": "failed",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBInstances[].DBInstanceStatus"
+        },
+        {
+          "expected": "incompatible-restore",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBInstances[].DBInstanceStatus"
+        },
+        {
+          "expected": "incompatible-parameters",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBInstances[].DBInstanceStatus"
+        }
+      ]
+    },
+    "DBInstanceDeleted": {
+      "delay": 30,
+      "operation": "DescribeDBInstances",
+      "maxAttempts": 60,
+      "acceptors": [
+        {
+          "expected": "deleted",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "DBInstances[].DBInstanceStatus"
+        },
+        {
+          "expected": "DBInstanceNotFound",
+          "matcher": "error",
+          "state": "success"
+        },
+        {
+          "expected": "creating",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBInstances[].DBInstanceStatus"
+        },
+        {
+          "expected": "modifying",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBInstances[].DBInstanceStatus"
+        },
+        {
+          "expected": "rebooting",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBInstances[].DBInstanceStatus"
+        },
+        {
+          "expected": "resetting-master-credentials",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBInstances[].DBInstanceStatus"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/drs/2020-02-26/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/drs/2020-02-26/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..309cb67b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/drs/2020-02-26/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/drs/2020-02-26/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/drs/2020-02-26/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/drs/2020-02-26/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/drs/2020-02-26/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/drs/2020-02-26/paginators-1.json
new file mode 100644
index 00000000..cfe134c7
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/drs/2020-02-26/paginators-1.json
@@ -0,0 +1,70 @@
+{
+  "pagination": {
+    "DescribeJobLogItems": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "DescribeJobs": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "DescribeRecoveryInstances": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "DescribeRecoverySnapshots": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "DescribeReplicationConfigurationTemplates": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "DescribeSourceServers": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListExtensibleSourceServers": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListStagingAccounts": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "accounts"
+    },
+    "DescribeLaunchConfigurationTemplates": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "DescribeSourceNetworks": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListLaunchActions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/drs/2020-02-26/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/drs/2020-02-26/service-2.json.gz
new file mode 100644
index 00000000..67191dde
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/drs/2020-02-26/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ds-data/2023-05-31/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ds-data/2023-05-31/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..f0448712
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ds-data/2023-05-31/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ds-data/2023-05-31/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/ds-data/2023-05-31/paginators-1.json
new file mode 100644
index 00000000..50381355
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ds-data/2023-05-31/paginators-1.json
@@ -0,0 +1,40 @@
+{
+  "pagination": {
+    "ListGroupMembers": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Members"
+    },
+    "ListGroups": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Groups"
+    },
+    "ListGroupsForMember": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Groups"
+    },
+    "ListUsers": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Users"
+    },
+    "SearchGroups": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Groups"
+    },
+    "SearchUsers": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Users"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ds-data/2023-05-31/paginators-1.sdk-extras.json b/.venv/lib/python3.12/site-packages/botocore/data/ds-data/2023-05-31/paginators-1.sdk-extras.json
new file mode 100644
index 00000000..35f9e238
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ds-data/2023-05-31/paginators-1.sdk-extras.json
@@ -0,0 +1,46 @@
+{
+    "version": 1.0,
+    "merge": {
+      "pagination": {
+        "ListGroupMembers": {
+          "non_aggregate_keys": [
+            "DirectoryId",
+            "MemberRealm",
+            "Realm"
+          ]
+        },
+        "ListGroups": {
+            "non_aggregate_keys": [
+              "DirectoryId",
+              "Realm"
+            ]
+        },
+        "ListGroupsForMember": {
+            "non_aggregate_keys": [
+              "DirectoryId",
+              "MemberRealm",
+              "Realm"
+            ]
+        },
+        "ListUsers": {
+            "non_aggregate_keys": [
+              "DirectoryId",
+              "Realm"
+            ]
+        },
+        "SearchGroups": {
+            "non_aggregate_keys": [
+              "DirectoryId",
+              "Realm"
+            ]
+        },
+        "SearchUsers": {
+            "non_aggregate_keys": [
+              "DirectoryId",
+              "Realm"
+            ]
+        }
+      }
+    }
+  }
+  
\ No newline at end of file
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ds-data/2023-05-31/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ds-data/2023-05-31/service-2.json.gz
new file mode 100644
index 00000000..68b283ab
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ds-data/2023-05-31/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ds/2015-04-16/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ds/2015-04-16/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..1b234094
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ds/2015-04-16/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ds/2015-04-16/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/ds/2015-04-16/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ds/2015-04-16/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ds/2015-04-16/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/ds/2015-04-16/paginators-1.json
new file mode 100644
index 00000000..fd7f0b9e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ds/2015-04-16/paginators-1.json
@@ -0,0 +1,86 @@
+{
+  "pagination": {
+    "DescribeDomainControllers": {
+      "result_key": "DomainControllers",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "Limit"
+    },
+    "DescribeDirectories": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "DirectoryDescriptions"
+    },
+    "DescribeSharedDirectories": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "SharedDirectories"
+    },
+    "DescribeSnapshots": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "Snapshots"
+    },
+    "DescribeTrusts": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "Trusts"
+    },
+    "ListIpRoutes": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "IpRoutesInfo"
+    },
+    "ListLogSubscriptions": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "LogSubscriptions"
+    },
+    "ListSchemaExtensions": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "SchemaExtensionsInfo"
+    },
+    "ListTagsForResource": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "Tags"
+    },
+    "DescribeClientAuthenticationSettings": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "ClientAuthenticationSettingsInfo"
+    },
+    "DescribeLDAPSSettings": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "LDAPSSettingsInfo"
+    },
+    "DescribeRegions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "RegionsDescription"
+    },
+    "DescribeUpdateDirectory": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "UpdateActivities"
+    },
+    "ListCertificates": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "CertificatesInfo"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ds/2015-04-16/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ds/2015-04-16/service-2.json.gz
new file mode 100644
index 00000000..7515c9b1
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ds/2015-04-16/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/dsql/2018-05-10/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/dsql/2018-05-10/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..8c656f24
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/dsql/2018-05-10/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/dsql/2018-05-10/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/dsql/2018-05-10/paginators-1.json
new file mode 100644
index 00000000..c9cfb66e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/dsql/2018-05-10/paginators-1.json
@@ -0,0 +1,10 @@
+{
+  "pagination": {
+    "ListClusters": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "clusters"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/dsql/2018-05-10/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/dsql/2018-05-10/service-2.json.gz
new file mode 100644
index 00000000..1a36cef0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/dsql/2018-05-10/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/dsql/2018-05-10/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/dsql/2018-05-10/waiters-2.json
new file mode 100644
index 00000000..69cd9baa
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/dsql/2018-05-10/waiters-2.json
@@ -0,0 +1,28 @@
+{
+  "version" : 2,
+  "waiters" : {
+    "ClusterActive" : {
+      "description" : "Wait until a Cluster is ACTIVE",
+      "delay" : 2,
+      "maxAttempts" : 60,
+      "operation" : "GetCluster",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "success",
+        "expected" : "ACTIVE"
+      } ]
+    },
+    "ClusterNotExists" : {
+      "description" : "Wait until a Cluster is gone",
+      "delay" : 2,
+      "maxAttempts" : 60,
+      "operation" : "GetCluster",
+      "acceptors" : [ {
+        "matcher" : "error",
+        "state" : "success",
+        "expected" : "ResourceNotFoundException"
+      } ]
+    }
+  }
+}
\ No newline at end of file
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/dynamodb/2011-12-05/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/dynamodb/2011-12-05/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..425488c1
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/dynamodb/2011-12-05/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/dynamodb/2011-12-05/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/dynamodb/2011-12-05/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/dynamodb/2011-12-05/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/dynamodb/2012-08-10/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/dynamodb/2012-08-10/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..b67860fa
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/dynamodb/2012-08-10/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/dynamodb/2012-08-10/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/dynamodb/2012-08-10/examples-1.json
new file mode 100644
index 00000000..bbc763c9
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/dynamodb/2012-08-10/examples-1.json
@@ -0,0 +1,631 @@
+{
+  "version": "1.0",
+  "examples": {
+    "BatchGetItem": [
+      {
+        "input": {
+          "RequestItems": {
+            "Music": {
+              "Keys": [
+                {
+                  "Artist": {
+                    "S": "No One You Know"
+                  },
+                  "SongTitle": {
+                    "S": "Call Me Today"
+                  }
+                },
+                {
+                  "Artist": {
+                    "S": "Acme Band"
+                  },
+                  "SongTitle": {
+                    "S": "Happy Day"
+                  }
+                },
+                {
+                  "Artist": {
+                    "S": "No One You Know"
+                  },
+                  "SongTitle": {
+                    "S": "Scared of My Shadow"
+                  }
+                }
+              ],
+              "ProjectionExpression": "AlbumTitle"
+            }
+          }
+        },
+        "output": {
+          "Responses": {
+            "Music": [
+              {
+                "AlbumTitle": {
+                  "S": "Somewhat Famous"
+                }
+              },
+              {
+                "AlbumTitle": {
+                  "S": "Blue Sky Blues"
+                }
+              },
+              {
+                "AlbumTitle": {
+                  "S": "Louder Than Ever"
+                }
+              }
+            ]
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example reads multiple items from the Music table using a batch of three GetItem requests.  Only the AlbumTitle attribute is returned.",
+        "id": "to-retrieve-multiple-items-from-a-table-1476118438992",
+        "title": "To retrieve multiple items from a table"
+      }
+    ],
+    "BatchWriteItem": [
+      {
+        "input": {
+          "RequestItems": {
+            "Music": [
+              {
+                "PutRequest": {
+                  "Item": {
+                    "AlbumTitle": {
+                      "S": "Somewhat Famous"
+                    },
+                    "Artist": {
+                      "S": "No One You Know"
+                    },
+                    "SongTitle": {
+                      "S": "Call Me Today"
+                    }
+                  }
+                }
+              },
+              {
+                "PutRequest": {
+                  "Item": {
+                    "AlbumTitle": {
+                      "S": "Songs About Life"
+                    },
+                    "Artist": {
+                      "S": "Acme Band"
+                    },
+                    "SongTitle": {
+                      "S": "Happy Day"
+                    }
+                  }
+                }
+              },
+              {
+                "PutRequest": {
+                  "Item": {
+                    "AlbumTitle": {
+                      "S": "Blue Sky Blues"
+                    },
+                    "Artist": {
+                      "S": "No One You Know"
+                    },
+                    "SongTitle": {
+                      "S": "Scared of My Shadow"
+                    }
+                  }
+                }
+              }
+            ]
+          }
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example adds three new items to the Music table using a batch of three PutItem requests.",
+        "id": "to-add-multiple-items-to-a-table-1476118519747",
+        "title": "To add multiple items to a table"
+      }
+    ],
+    "CreateTable": [
+      {
+        "input": {
+          "AttributeDefinitions": [
+            {
+              "AttributeName": "Artist",
+              "AttributeType": "S"
+            },
+            {
+              "AttributeName": "SongTitle",
+              "AttributeType": "S"
+            }
+          ],
+          "KeySchema": [
+            {
+              "AttributeName": "Artist",
+              "KeyType": "HASH"
+            },
+            {
+              "AttributeName": "SongTitle",
+              "KeyType": "RANGE"
+            }
+          ],
+          "ProvisionedThroughput": {
+            "ReadCapacityUnits": 5,
+            "WriteCapacityUnits": 5
+          },
+          "TableName": "Music"
+        },
+        "output": {
+          "TableDescription": {
+            "AttributeDefinitions": [
+              {
+                "AttributeName": "Artist",
+                "AttributeType": "S"
+              },
+              {
+                "AttributeName": "SongTitle",
+                "AttributeType": "S"
+              }
+            ],
+            "CreationDateTime": "1421866952.062",
+            "ItemCount": 0,
+            "KeySchema": [
+              {
+                "AttributeName": "Artist",
+                "KeyType": "HASH"
+              },
+              {
+                "AttributeName": "SongTitle",
+                "KeyType": "RANGE"
+              }
+            ],
+            "ProvisionedThroughput": {
+              "ReadCapacityUnits": 5,
+              "WriteCapacityUnits": 5
+            },
+            "TableName": "Music",
+            "TableSizeBytes": 0,
+            "TableStatus": "CREATING"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a table named Music.",
+        "id": "to-create-a-table-1476116291743",
+        "title": "To create a table"
+      }
+    ],
+    "DeleteItem": [
+      {
+        "input": {
+          "Key": {
+            "Artist": {
+              "S": "No One You Know"
+            },
+            "SongTitle": {
+              "S": "Scared of My Shadow"
+            }
+          },
+          "TableName": "Music"
+        },
+        "output": {
+          "ConsumedCapacity": {
+            "CapacityUnits": 1,
+            "TableName": "Music"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes an item from the Music table.",
+        "id": "to-delete-an-item-1475884573758",
+        "title": "To delete an item"
+      }
+    ],
+    "DeleteTable": [
+      {
+        "input": {
+          "TableName": "Music"
+        },
+        "output": {
+          "TableDescription": {
+            "ItemCount": 0,
+            "ProvisionedThroughput": {
+              "NumberOfDecreasesToday": 1,
+              "ReadCapacityUnits": 5,
+              "WriteCapacityUnits": 5
+            },
+            "TableName": "Music",
+            "TableSizeBytes": 0,
+            "TableStatus": "DELETING"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the Music table.",
+        "id": "to-delete-a-table-1475884368755",
+        "title": "To delete a table"
+      }
+    ],
+    "DescribeLimits": [
+      {
+        "input": {
+        },
+        "output": {
+          "AccountMaxReadCapacityUnits": 20000,
+          "AccountMaxWriteCapacityUnits": 20000,
+          "TableMaxReadCapacityUnits": 10000,
+          "TableMaxWriteCapacityUnits": 10000
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns the maximum read and write capacity units per table, and for the AWS account, in the current AWS region.",
+        "id": "to-determine-capacity-limits-per-table-and-account-in-the-current-aws-region-1475884162064",
+        "title": "To determine capacity limits per table and account, in the current AWS region"
+      }
+    ],
+    "DescribeTable": [
+      {
+        "input": {
+          "TableName": "Music"
+        },
+        "output": {
+          "Table": {
+            "AttributeDefinitions": [
+              {
+                "AttributeName": "Artist",
+                "AttributeType": "S"
+              },
+              {
+                "AttributeName": "SongTitle",
+                "AttributeType": "S"
+              }
+            ],
+            "CreationDateTime": "1421866952.062",
+            "ItemCount": 0,
+            "KeySchema": [
+              {
+                "AttributeName": "Artist",
+                "KeyType": "HASH"
+              },
+              {
+                "AttributeName": "SongTitle",
+                "KeyType": "RANGE"
+              }
+            ],
+            "ProvisionedThroughput": {
+              "NumberOfDecreasesToday": 1,
+              "ReadCapacityUnits": 5,
+              "WriteCapacityUnits": 5
+            },
+            "TableName": "Music",
+            "TableSizeBytes": 0,
+            "TableStatus": "ACTIVE"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the Music table.",
+        "id": "to-describe-a-table-1475884440502",
+        "title": "To describe a table"
+      }
+    ],
+    "GetItem": [
+      {
+        "input": {
+          "Key": {
+            "Artist": {
+              "S": "Acme Band"
+            },
+            "SongTitle": {
+              "S": "Happy Day"
+            }
+          },
+          "TableName": "Music"
+        },
+        "output": {
+          "Item": {
+            "AlbumTitle": {
+              "S": "Songs About Life"
+            },
+            "Artist": {
+              "S": "Acme Band"
+            },
+            "SongTitle": {
+              "S": "Happy Day"
+            }
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example retrieves an item from the Music table. The table has a partition key and a sort key (Artist and SongTitle), so you must specify both of these attributes.",
+        "id": "to-read-an-item-from-a-table-1475884258350",
+        "title": "To read an item from a table"
+      }
+    ],
+    "ListTables": [
+      {
+        "input": {
+        },
+        "output": {
+          "TableNames": [
+            "Forum",
+            "ProductCatalog",
+            "Reply",
+            "Thread"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example lists all of the tables associated with the current AWS account and endpoint.",
+        "id": "to-list-tables-1475884741238",
+        "title": "To list tables"
+      }
+    ],
+    "PutItem": [
+      {
+        "input": {
+          "Item": {
+            "AlbumTitle": {
+              "S": "Somewhat Famous"
+            },
+            "Artist": {
+              "S": "No One You Know"
+            },
+            "SongTitle": {
+              "S": "Call Me Today"
+            }
+          },
+          "ReturnConsumedCapacity": "TOTAL",
+          "TableName": "Music"
+        },
+        "output": {
+          "ConsumedCapacity": {
+            "CapacityUnits": 1,
+            "TableName": "Music"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example adds a new item to the Music table.",
+        "id": "to-add-an-item-to-a-table-1476116191110",
+        "title": "To add an item to a table"
+      }
+    ],
+    "Query": [
+      {
+        "input": {
+          "ExpressionAttributeValues": {
+            ":v1": {
+              "S": "No One You Know"
+            }
+          },
+          "KeyConditionExpression": "Artist = :v1",
+          "ProjectionExpression": "SongTitle",
+          "TableName": "Music"
+        },
+        "output": {
+          "ConsumedCapacity": {
+          },
+          "Count": 2,
+          "Items": [
+            {
+              "SongTitle": {
+                "S": "Call Me Today"
+              }
+            }
+          ],
+          "ScannedCount": 2
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example queries items in the Music table. The table has a partition key and sort key (Artist and SongTitle), but this query only specifies the partition key value. It returns song titles by the artist named \"No One You Know\".",
+        "id": "to-query-an-item-1475883874631",
+        "title": "To query an item"
+      }
+    ],
+    "Scan": [
+      {
+        "input": {
+          "ExpressionAttributeNames": {
+            "#AT": "AlbumTitle",
+            "#ST": "SongTitle"
+          },
+          "ExpressionAttributeValues": {
+            ":a": {
+              "S": "No One You Know"
+            }
+          },
+          "FilterExpression": "Artist = :a",
+          "ProjectionExpression": "#ST, #AT",
+          "TableName": "Music"
+        },
+        "output": {
+          "ConsumedCapacity": {
+          },
+          "Count": 2,
+          "Items": [
+            {
+              "AlbumTitle": {
+                "S": "Somewhat Famous"
+              },
+              "SongTitle": {
+                "S": "Call Me Today"
+              }
+            },
+            {
+              "AlbumTitle": {
+                "S": "Blue Sky Blues"
+              },
+              "SongTitle": {
+                "S": "Scared of My Shadow"
+              }
+            }
+          ],
+          "ScannedCount": 3
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example scans the entire Music table, and then narrows the results to songs by the artist \"No One You Know\". For each item, only the album title and song title are returned.",
+        "id": "to-scan-a-table-1475883652470",
+        "title": "To scan a table"
+      }
+    ],
+    "UpdateItem": [
+      {
+        "input": {
+          "ExpressionAttributeNames": {
+            "#AT": "AlbumTitle",
+            "#Y": "Year"
+          },
+          "ExpressionAttributeValues": {
+            ":t": {
+              "S": "Louder Than Ever"
+            },
+            ":y": {
+              "N": "2015"
+            }
+          },
+          "Key": {
+            "Artist": {
+              "S": "Acme Band"
+            },
+            "SongTitle": {
+              "S": "Happy Day"
+            }
+          },
+          "ReturnValues": "ALL_NEW",
+          "TableName": "Music",
+          "UpdateExpression": "SET #Y = :y, #AT = :t"
+        },
+        "output": {
+          "Attributes": {
+            "AlbumTitle": {
+              "S": "Louder Than Ever"
+            },
+            "Artist": {
+              "S": "Acme Band"
+            },
+            "SongTitle": {
+              "S": "Happy Day"
+            },
+            "Year": {
+              "N": "2015"
+            }
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example updates an item in the Music table. It adds a new attribute (Year) and modifies the AlbumTitle attribute.  All of the attributes in the item, as they appear after the update, are returned in the response.",
+        "id": "to-update-an-item-in-a-table-1476118250055",
+        "title": "To update an item in a table"
+      }
+    ],
+    "UpdateTable": [
+      {
+        "input": {
+          "ProvisionedThroughput": {
+            "ReadCapacityUnits": 10,
+            "WriteCapacityUnits": 10
+          },
+          "TableName": "MusicCollection"
+        },
+        "output": {
+          "TableDescription": {
+            "AttributeDefinitions": [
+              {
+                "AttributeName": "Artist",
+                "AttributeType": "S"
+              },
+              {
+                "AttributeName": "SongTitle",
+                "AttributeType": "S"
+              }
+            ],
+            "CreationDateTime": "1421866952.062",
+            "ItemCount": 0,
+            "KeySchema": [
+              {
+                "AttributeName": "Artist",
+                "KeyType": "HASH"
+              },
+              {
+                "AttributeName": "SongTitle",
+                "KeyType": "RANGE"
+              }
+            ],
+            "ProvisionedThroughput": {
+              "LastIncreaseDateTime": "1421874759.194",
+              "NumberOfDecreasesToday": 1,
+              "ReadCapacityUnits": 1,
+              "WriteCapacityUnits": 1
+            },
+            "TableName": "MusicCollection",
+            "TableSizeBytes": 0,
+            "TableStatus": "UPDATING"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example increases the provisioned read and write capacity on the Music table.",
+        "id": "to-modify-a-tables-provisioned-throughput-1476118076147",
+        "title": "To modify a table's provisioned throughput"
+      }
+    ]
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/dynamodb/2012-08-10/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/dynamodb/2012-08-10/paginators-1.json
new file mode 100644
index 00000000..8e10a0c7
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/dynamodb/2012-08-10/paginators-1.json
@@ -0,0 +1,47 @@
+{
+  "pagination": {
+    "ListBackups": {
+      "input_token": "ExclusiveStartBackupArn",
+      "output_token": "LastEvaluatedBackupArn",
+      "limit_key": "Limit",
+      "result_key": "BackupSummaries"
+    },
+    "ListTables": {
+      "input_token": "ExclusiveStartTableName",
+      "output_token": "LastEvaluatedTableName",
+      "limit_key": "Limit",
+      "result_key": "TableNames"
+    },
+    "Query": {
+      "input_token": "ExclusiveStartKey",
+      "output_token": "LastEvaluatedKey",
+      "limit_key": "Limit",
+      "result_key": [
+        "Items",
+        "Count",
+        "ScannedCount"
+      ],
+      "non_aggregate_keys": [
+        "ConsumedCapacity"
+      ]
+    },
+    "Scan": {
+      "input_token": "ExclusiveStartKey",
+      "output_token": "LastEvaluatedKey",
+      "limit_key": "Limit",
+      "result_key": [
+        "Items",
+        "Count",
+        "ScannedCount"
+      ],
+      "non_aggregate_keys": [
+        "ConsumedCapacity"
+      ]
+    },
+    "ListTagsOfResource": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "Tags"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/dynamodb/2012-08-10/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/dynamodb/2012-08-10/service-2.json.gz
new file mode 100644
index 00000000..18eb114a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/dynamodb/2012-08-10/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/dynamodb/2012-08-10/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/dynamodb/2012-08-10/waiters-2.json
new file mode 100644
index 00000000..43a55ca7
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/dynamodb/2012-08-10/waiters-2.json
@@ -0,0 +1,35 @@
+{
+  "version": 2,
+  "waiters": {
+    "TableExists": {
+      "delay": 20,
+      "operation": "DescribeTable",
+      "maxAttempts": 25,
+      "acceptors": [
+        {
+          "expected": "ACTIVE",
+          "matcher": "path",
+          "state": "success",
+          "argument": "Table.TableStatus"
+        },
+        {
+          "expected": "ResourceNotFoundException",
+          "matcher": "error",
+          "state": "retry"
+        }
+      ]
+    },
+    "TableNotExists": {
+      "delay": 20,
+      "operation": "DescribeTable",
+      "maxAttempts": 25,
+      "acceptors": [
+        {
+          "expected": "ResourceNotFoundException",
+          "matcher": "error",
+          "state": "success"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/dynamodbstreams/2012-08-10/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/dynamodbstreams/2012-08-10/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..99fd0035
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/dynamodbstreams/2012-08-10/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/dynamodbstreams/2012-08-10/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/dynamodbstreams/2012-08-10/examples-1.json
new file mode 100644
index 00000000..8287e2c4
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/dynamodbstreams/2012-08-10/examples-1.json
@@ -0,0 +1,212 @@
+{
+  "version": "1.0",
+  "examples": {
+    "DescribeStream": [
+      {
+        "input": {
+          "StreamArn": "arn:aws:dynamodb:us-west-2:111122223333:table/Forum/stream/2015-05-20T20:51:10.252"
+        },
+        "output": {
+          "StreamDescription": {
+            "CreationRequestDateTime": "Wed May 20 13:51:10 PDT 2015",
+            "KeySchema": [
+              {
+                "AttributeName": "ForumName",
+                "KeyType": "HASH"
+              },
+              {
+                "AttributeName": "Subject",
+                "KeyType": "RANGE"
+              }
+            ],
+            "Shards": [
+              {
+                "SequenceNumberRange": {
+                  "EndingSequenceNumber": "20500000000000000910398",
+                  "StartingSequenceNumber": "20500000000000000910398"
+                },
+                "ShardId": "shardId-00000001414562045508-2bac9cd2"
+              },
+              {
+                "ParentShardId": "shardId-00000001414562045508-2bac9cd2",
+                "SequenceNumberRange": {
+                  "EndingSequenceNumber": "820400000000000001192334",
+                  "StartingSequenceNumber": "820400000000000001192334"
+                },
+                "ShardId": "shardId-00000001414576573621-f55eea83"
+              },
+              {
+                "ParentShardId": "shardId-00000001414576573621-f55eea83",
+                "SequenceNumberRange": {
+                  "EndingSequenceNumber": "1683700000000000001135967",
+                  "StartingSequenceNumber": "1683700000000000001135967"
+                },
+                "ShardId": "shardId-00000001414592258131-674fd923"
+              },
+              {
+                "ParentShardId": "shardId-00000001414592258131-674fd923",
+                "SequenceNumberRange": {
+                  "StartingSequenceNumber": "2574600000000000000935255"
+                },
+                "ShardId": "shardId-00000001414608446368-3a1afbaf"
+              }
+            ],
+            "StreamArn": "arn:aws:dynamodb:us-west-2:111122223333:table/Forum/stream/2015-05-20T20:51:10.252",
+            "StreamLabel": "2015-05-20T20:51:10.252",
+            "StreamStatus": "ENABLED",
+            "StreamViewType": "NEW_AND_OLD_IMAGES",
+            "TableName": "Forum"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example describes a stream with a given stream ARN.",
+        "id": "to-describe-a-stream-with-a-given-stream-arn-1473457835200",
+        "title": "To describe a stream with a given stream ARN"
+      }
+    ],
+    "GetRecords": [
+      {
+        "input": {
+          "ShardIterator": "arn:aws:dynamodb:us-west-2:111122223333:table/Forum/stream/2015-05-20T20:51:10.252|1|AAAAAAAAAAEvJp6D+zaQ...  <remaining characters omitted> ..."
+        },
+        "output": {
+          "NextShardIterator": "arn:aws:dynamodb:us-west-2:111122223333:table/Forum/stream/2015-05-20T20:51:10.252|1|AAAAAAAAAAGQBYshYDEe ... <remaining characters omitted> ...",
+          "Records": [
+            {
+              "awsRegion": "us-west-2",
+              "dynamodb": {
+                "ApproximateCreationDateTime": "1.46480646E9",
+                "Keys": {
+                  "ForumName": {
+                    "S": "DynamoDB"
+                  },
+                  "Subject": {
+                    "S": "DynamoDB Thread 3"
+                  }
+                },
+                "SequenceNumber": "300000000000000499659",
+                "SizeBytes": 41,
+                "StreamViewType": "KEYS_ONLY"
+              },
+              "eventID": "e2fd9c34eff2d779b297b26f5fef4206",
+              "eventName": "INSERT",
+              "eventSource": "aws:dynamodb",
+              "eventVersion": "1.0"
+            },
+            {
+              "awsRegion": "us-west-2",
+              "dynamodb": {
+                "ApproximateCreationDateTime": "1.46480527E9",
+                "Keys": {
+                  "ForumName": {
+                    "S": "DynamoDB"
+                  },
+                  "Subject": {
+                    "S": "DynamoDB Thread 1"
+                  }
+                },
+                "SequenceNumber": "400000000000000499660",
+                "SizeBytes": 41,
+                "StreamViewType": "KEYS_ONLY"
+              },
+              "eventID": "4b25bd0da9a181a155114127e4837252",
+              "eventName": "MODIFY",
+              "eventSource": "aws:dynamodb",
+              "eventVersion": "1.0"
+            },
+            {
+              "awsRegion": "us-west-2",
+              "dynamodb": {
+                "ApproximateCreationDateTime": "1.46480646E9",
+                "Keys": {
+                  "ForumName": {
+                    "S": "DynamoDB"
+                  },
+                  "Subject": {
+                    "S": "DynamoDB Thread 2"
+                  }
+                },
+                "SequenceNumber": "500000000000000499661",
+                "SizeBytes": 41,
+                "StreamViewType": "KEYS_ONLY"
+              },
+              "eventID": "740280c73a3df7842edab3548a1b08ad",
+              "eventName": "REMOVE",
+              "eventSource": "aws:dynamodb",
+              "eventVersion": "1.0"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example retrieves all the stream records from a shard.",
+        "id": "to-retrieve-all-the-stream-records-from-a-shard-1473707781419",
+        "title": "To retrieve all the stream records from a shard"
+      }
+    ],
+    "GetShardIterator": [
+      {
+        "input": {
+          "ShardId": "00000001414576573621-f55eea83",
+          "ShardIteratorType": "TRIM_HORIZON",
+          "StreamArn": "arn:aws:dynamodb:us-west-2:111122223333:table/Forum/stream/2015-05-20T20:51:10.252"
+        },
+        "output": {
+          "ShardIterator": "arn:aws:dynamodb:us-west-2:111122223333:table/Forum/stream/2015-05-20T20:51:10.252|1|AAAAAAAAAAEvJp6D+zaQ...  <remaining characters omitted> ..."
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns a shard iterator for the provided stream ARN and shard ID.",
+        "id": "to-obtain-a-shard-iterator-for-the-provided-stream-arn-and-shard-id-1473459941476",
+        "title": "To obtain a shard iterator for the provided stream ARN and shard ID"
+      }
+    ],
+    "ListStreams": [
+      {
+        "input": {
+        },
+        "output": {
+          "Streams": [
+            {
+              "StreamArn": "arn:aws:dynamodb:us-wesst-2:111122223333:table/Forum/stream/2015-05-20T20:51:10.252",
+              "StreamLabel": "2015-05-20T20:51:10.252",
+              "TableName": "Forum"
+            },
+            {
+              "StreamArn": "arn:aws:dynamodb:us-west-2:111122223333:table/Forum/stream/2015-05-20T20:50:02.714",
+              "StreamLabel": "2015-05-20T20:50:02.714",
+              "TableName": "Forum"
+            },
+            {
+              "StreamArn": "arn:aws:dynamodb:us-west-2:111122223333:table/Forum/stream/2015-05-19T23:03:50.641",
+              "StreamLabel": "2015-05-19T23:03:50.641",
+              "TableName": "Forum"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example lists all of the stream ARNs.",
+        "id": "to-list-all-of-the-stream-arns--1473459534285",
+        "title": "To list all of the stream ARNs "
+      }
+    ]
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/dynamodbstreams/2012-08-10/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/dynamodbstreams/2012-08-10/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/dynamodbstreams/2012-08-10/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/dynamodbstreams/2012-08-10/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/dynamodbstreams/2012-08-10/service-2.json.gz
new file mode 100644
index 00000000..2e361a1f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/dynamodbstreams/2012-08-10/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ebs/2019-11-02/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ebs/2019-11-02/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..2cb17c07
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ebs/2019-11-02/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ebs/2019-11-02/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/ebs/2019-11-02/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ebs/2019-11-02/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ebs/2019-11-02/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/ebs/2019-11-02/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ebs/2019-11-02/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ebs/2019-11-02/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ebs/2019-11-02/service-2.json.gz
new file mode 100644
index 00000000..b295a63c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ebs/2019-11-02/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ec2-instance-connect/2018-04-02/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ec2-instance-connect/2018-04-02/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..a32bb787
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ec2-instance-connect/2018-04-02/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ec2-instance-connect/2018-04-02/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/ec2-instance-connect/2018-04-02/examples-1.json
new file mode 100644
index 00000000..c5c60013
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ec2-instance-connect/2018-04-02/examples-1.json
@@ -0,0 +1,34 @@
+{
+  "version": "1.0",
+  "examples": {
+    "SendSSHPublicKey": [
+      {
+        "input": {
+          "AvailabilityZone": "us-west-2a",
+          "InstanceId": "i-abcd1234",
+          "InstanceOSUser": "ec2-user",
+          "SSHPublicKey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3FlHqj2eqCdrGHuA6dRjfZXQ4HX5lXEIRHaNbxEwE5Te7xNF7StwhrDtiV7IdT5fDqbRyGw/szPj3xGkNTVoElCZ2dDFb2qYZ1WLIpZwj/UhO9l2mgfjR56UojjQut5Jvn2KZ1OcyrNO0J83kCaJCV7JoVbXY79FBMUccYNY45zmv9+1FMCfY6i2jdIhwR6+yLk8oubL8lIPyq7X+6b9S0yKCkB7Peml1DvghlybpAIUrC9vofHt6XP4V1i0bImw1IlljQS+DUmULRFSccATDscCX9ajnj7Crhm0HAZC0tBPXpFdHkPwL3yzYo546SCS9LKEwz62ymxxbL9k7h09t"
+        },
+        "output": {
+          "RequestId": "abcd1234-abcd-1234-abcd-1234abcd1234",
+          "Success": true
+        },
+        "comments": {
+          "input": {
+            "AvailabilityZone": "The zone where the instance was launched",
+            "InstanceId": "The instance ID to publish the key to.",
+            "InstanceOSUser": "This should be the user you wish to be when ssh-ing to the instance (eg, ec2-user@[instance IP])",
+            "SSHPublicKey": "This should be in standard OpenSSH format (ssh-rsa [key body])"
+          },
+          "output": {
+            "RequestId": "This request ID should be provided when contacting AWS Support.",
+            "Success": "Should be true if the service does not return an error response."
+          }
+        },
+        "description": "The following example pushes a sample SSH public key to the EC2 instance i-abcd1234 in AZ us-west-2b for use by the instance OS user ec2-user.",
+        "id": "send-ssh-key-to-an-ec2-instance-1518124883100",
+        "title": "To push an SSH key to an EC2 instance"
+      }
+    ]
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ec2-instance-connect/2018-04-02/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/ec2-instance-connect/2018-04-02/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ec2-instance-connect/2018-04-02/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ec2-instance-connect/2018-04-02/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ec2-instance-connect/2018-04-02/service-2.json.gz
new file mode 100644
index 00000000..64ec3fd0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ec2-instance-connect/2018-04-02/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ec2/2014-09-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2014-09-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..aa666da0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2014-09-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ec2/2014-09-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2014-09-01/paginators-1.json
new file mode 100644
index 00000000..b643e696
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2014-09-01/paginators-1.json
@@ -0,0 +1,45 @@
+{
+  "pagination": {
+    "DescribeInstanceStatus": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "InstanceStatuses"
+    },
+    "DescribeInstances": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Reservations"
+    },
+    "DescribeReservedInstancesModifications": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "ReservedInstancesModifications"
+    },
+    "DescribeReservedInstancesOfferings": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ReservedInstancesOfferings"
+    },
+    "DescribeSpotPriceHistory": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "SpotPriceHistory"
+    },
+    "DescribeTags": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Tags"
+    },
+    "DescribeVolumeStatus": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "VolumeStatuses"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ec2/2014-09-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2014-09-01/service-2.json.gz
new file mode 100644
index 00000000..b920e12b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2014-09-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ec2/2014-09-01/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2014-09-01/waiters-2.json
new file mode 100644
index 00000000..fb8c16bd
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2014-09-01/waiters-2.json
@@ -0,0 +1,341 @@
+{
+  "version": 2,
+  "waiters": {
+    "BundleTaskComplete": {
+      "delay": 15,
+      "operation": "DescribeBundleTasks",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "complete",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "BundleTasks[].State"
+        },
+        {
+          "expected": "failed",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "BundleTasks[].State"
+        }
+      ]
+    },
+    "ConversionTaskCancelled": {
+      "delay": 15,
+      "operation": "DescribeConversionTasks",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "cancelled",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "ConversionTasks[].State"
+        }
+      ]
+    },
+    "ConversionTaskCompleted": {
+      "delay": 15,
+      "operation": "DescribeConversionTasks",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "completed",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "ConversionTasks[].State"
+        },
+        {
+          "expected": "cancelled",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "ConversionTasks[].State"
+        },
+        {
+          "expected": "cancelling",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "ConversionTasks[].State"
+        }
+      ]
+    },
+    "ConversionTaskDeleted": {
+      "delay": 15,
+      "operation": "DescribeConversionTasks",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "deleted",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "ConversionTasks[].State"
+        }
+      ]
+    },
+    "CustomerGatewayAvailable": {
+      "delay": 15,
+      "operation": "DescribeCustomerGateways",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "CustomerGateways[].State"
+        },
+        {
+          "expected": "deleted",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "CustomerGateways[].State"
+        },
+        {
+          "expected": "deleting",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "CustomerGateways[].State"
+        }
+      ]
+    },
+    "ExportTaskCancelled": {
+      "delay": 15,
+      "operation": "DescribeExportTasks",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "cancelled",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "ExportTasks[].State"
+        }
+      ]
+    },
+    "ExportTaskCompleted": {
+      "delay": 15,
+      "operation": "DescribeExportTasks",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "completed",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "ExportTasks[].State"
+        }
+      ]
+    },
+    "InstanceRunning": {
+      "delay": 15,
+      "operation": "DescribeInstances",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "running",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "shutting-down",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "terminated",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "stopping",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        }
+      ]
+    },
+    "InstanceStopped": {
+      "delay": 15,
+      "operation": "DescribeInstances",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "stopped",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "pending",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "terminated",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        }
+      ]
+    },
+    "InstanceTerminated": {
+      "delay": 15,
+      "operation": "DescribeInstances",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "terminated",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "pending",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "stopping",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        }
+      ]
+    },
+    "SnapshotCompleted": {
+      "delay": 15,
+      "operation": "DescribeSnapshots",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "completed",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Snapshots[].State"
+        }
+      ]
+    },
+    "SubnetAvailable": {
+      "delay": 15,
+      "operation": "DescribeSubnets",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Subnets[].State"
+        }
+      ]
+    },
+    "VolumeAvailable": {
+      "delay": 15,
+      "operation": "DescribeVolumes",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Volumes[].State"
+        },
+        {
+          "expected": "deleted",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Volumes[].State"
+        }
+      ]
+    },
+    "VolumeDeleted": {
+      "delay": 15,
+      "operation": "DescribeVolumes",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "deleted",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Volumes[].State"
+        }
+      ]
+    },
+    "VolumeInUse": {
+      "delay": 15,
+      "operation": "DescribeVolumes",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "in-use",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Volumes[].State"
+        },
+        {
+          "expected": "deleted",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Volumes[].State"
+        }
+      ]
+    },
+    "VpcAvailable": {
+      "delay": 15,
+      "operation": "DescribeVpcs",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Vpcs[].State"
+        }
+      ]
+    },
+    "VpnConnectionAvailable": {
+      "delay": 15,
+      "operation": "DescribeVpnConnections",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "VpnConnections[].State"
+        },
+        {
+          "expected": "deleting",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "VpnConnections[].State"
+        },
+        {
+          "expected": "deleted",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "VpnConnections[].State"
+        }
+      ]
+    },
+    "VpnConnectionDeleted": {
+      "delay": 15,
+      "operation": "DescribeVpnConnections",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "deleted",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "VpnConnections[].State"
+        },
+        {
+          "expected": "pending",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "VpnConnections[].State"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ec2/2014-10-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2014-10-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..aa666da0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2014-10-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ec2/2014-10-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2014-10-01/paginators-1.json
new file mode 100644
index 00000000..ca7a8767
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2014-10-01/paginators-1.json
@@ -0,0 +1,51 @@
+{
+  "pagination": {
+    "DescribeInstanceStatus": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "InstanceStatuses"
+    },
+    "DescribeInstances": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Reservations"
+    },
+    "DescribeReservedInstancesModifications": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "ReservedInstancesModifications"
+    },
+    "DescribeReservedInstancesOfferings": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ReservedInstancesOfferings"
+    },
+    "DescribeSpotPriceHistory": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "SpotPriceHistory"
+    },
+    "DescribeTags": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Tags"
+    },
+    "DescribeVolumeStatus": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "VolumeStatuses"
+    },
+    "DescribeSnapshots": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Snapshots"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ec2/2014-10-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2014-10-01/service-2.json.gz
new file mode 100644
index 00000000..5d6997ad
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2014-10-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ec2/2014-10-01/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2014-10-01/waiters-2.json
new file mode 100644
index 00000000..17f08705
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2014-10-01/waiters-2.json
@@ -0,0 +1,436 @@
+{
+  "version": 2,
+  "waiters": {
+    "BundleTaskComplete": {
+      "delay": 15,
+      "operation": "DescribeBundleTasks",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "complete",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "BundleTasks[].State"
+        },
+        {
+          "expected": "failed",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "BundleTasks[].State"
+        }
+      ]
+    },
+    "ConversionTaskCancelled": {
+      "delay": 15,
+      "operation": "DescribeConversionTasks",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "cancelled",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "ConversionTasks[].State"
+        }
+      ]
+    },
+    "ConversionTaskCompleted": {
+      "delay": 15,
+      "operation": "DescribeConversionTasks",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "completed",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "ConversionTasks[].State"
+        },
+        {
+          "expected": "cancelled",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "ConversionTasks[].State"
+        },
+        {
+          "expected": "cancelling",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "ConversionTasks[].State"
+        }
+      ]
+    },
+    "ConversionTaskDeleted": {
+      "delay": 15,
+      "operation": "DescribeConversionTasks",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "deleted",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "ConversionTasks[].State"
+        }
+      ]
+    },
+    "CustomerGatewayAvailable": {
+      "delay": 15,
+      "operation": "DescribeCustomerGateways",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "CustomerGateways[].State"
+        },
+        {
+          "expected": "deleted",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "CustomerGateways[].State"
+        },
+        {
+          "expected": "deleting",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "CustomerGateways[].State"
+        }
+      ]
+    },
+    "ExportTaskCancelled": {
+      "delay": 15,
+      "operation": "DescribeExportTasks",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "cancelled",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "ExportTasks[].State"
+        }
+      ]
+    },
+    "ExportTaskCompleted": {
+      "delay": 15,
+      "operation": "DescribeExportTasks",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "completed",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "ExportTasks[].State"
+        }
+      ]
+    },
+    "ImageAvailable": {
+      "operation": "DescribeImages",
+      "maxAttempts": 40,
+      "delay": 15,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "pathAll",
+          "argument": "Images[].State",
+          "expected": "available"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "Images[].State",
+          "expected": "failed"
+        }
+      ]
+    },
+    "InstanceRunning": {
+      "delay": 15,
+      "operation": "DescribeInstances",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "running",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "shutting-down",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "terminated",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "stopping",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        }
+      ]
+    },
+    "InstanceStatusOk": {
+      "operation": "DescribeInstanceStatus",
+      "maxAttempts": 40,
+      "delay": 15,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "pathAll",
+          "argument": "InstanceStatuses[].InstanceStatus.Status",
+          "expected": "ok"
+        }
+      ]
+    },
+    "InstanceStopped": {
+      "delay": 15,
+      "operation": "DescribeInstances",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "stopped",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "pending",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "terminated",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        }
+      ]
+    },
+    "InstanceTerminated": {
+      "delay": 15,
+      "operation": "DescribeInstances",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "terminated",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "pending",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "stopping",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        }
+      ]
+    },
+    "PasswordDataAvailable": {
+      "operation": "GetPasswordData",
+      "maxAttempts": 40,
+      "delay": 15,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "path",
+          "argument": "length(PasswordData) > `0`",
+          "expected": true
+        }
+      ]
+    },
+    "SnapshotCompleted": {
+      "delay": 15,
+      "operation": "DescribeSnapshots",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "completed",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Snapshots[].State"
+        }
+      ]
+    },
+    "SpotInstanceRequestFulfilled": {
+      "operation": "DescribeSpotInstanceRequests",
+      "maxAttempts": 40,
+      "delay": 15,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "pathAll",
+          "argument": "SpotInstanceRequests[].Status.Code",
+          "expected": "fulfilled"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "SpotInstanceRequests[].Status.Code",
+          "expected": "schedule-expired"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "SpotInstanceRequests[].Status.Code",
+          "expected": "canceled-before-fulfillment"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "SpotInstanceRequests[].Status.Code",
+          "expected": "bad-parameters"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "SpotInstanceRequests[].Status.Code",
+          "expected": "system-error"
+        }
+      ]
+    },
+    "SubnetAvailable": {
+      "delay": 15,
+      "operation": "DescribeSubnets",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Subnets[].State"
+        }
+      ]
+    },
+    "SystemStatusOk": {
+      "operation": "DescribeInstanceStatus",
+      "maxAttempts": 40,
+      "delay": 15,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "pathAll",
+          "argument": "InstanceStatuses[].SystemStatus.Status",
+          "expected": "ok"
+        }
+      ]
+    },
+    "VolumeAvailable": {
+      "delay": 15,
+      "operation": "DescribeVolumes",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Volumes[].State"
+        },
+        {
+          "expected": "deleted",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Volumes[].State"
+        }
+      ]
+    },
+    "VolumeDeleted": {
+      "delay": 15,
+      "operation": "DescribeVolumes",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "deleted",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Volumes[].State"
+        }
+      ]
+    },
+    "VolumeInUse": {
+      "delay": 15,
+      "operation": "DescribeVolumes",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "in-use",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Volumes[].State"
+        },
+        {
+          "expected": "deleted",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Volumes[].State"
+        }
+      ]
+    },
+    "VpcAvailable": {
+      "delay": 15,
+      "operation": "DescribeVpcs",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Vpcs[].State"
+        }
+      ]
+    },
+    "VpnConnectionAvailable": {
+      "delay": 15,
+      "operation": "DescribeVpnConnections",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "VpnConnections[].State"
+        },
+        {
+          "expected": "deleting",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "VpnConnections[].State"
+        },
+        {
+          "expected": "deleted",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "VpnConnections[].State"
+        }
+      ]
+    },
+    "VpnConnectionDeleted": {
+      "delay": 15,
+      "operation": "DescribeVpnConnections",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "deleted",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "VpnConnections[].State"
+        },
+        {
+          "expected": "pending",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "VpnConnections[].State"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-03-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-03-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..aa666da0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-03-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-03-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-03-01/paginators-1.json
new file mode 100644
index 00000000..ca7a8767
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-03-01/paginators-1.json
@@ -0,0 +1,51 @@
+{
+  "pagination": {
+    "DescribeInstanceStatus": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "InstanceStatuses"
+    },
+    "DescribeInstances": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Reservations"
+    },
+    "DescribeReservedInstancesModifications": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "ReservedInstancesModifications"
+    },
+    "DescribeReservedInstancesOfferings": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ReservedInstancesOfferings"
+    },
+    "DescribeSpotPriceHistory": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "SpotPriceHistory"
+    },
+    "DescribeTags": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Tags"
+    },
+    "DescribeVolumeStatus": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "VolumeStatuses"
+    },
+    "DescribeSnapshots": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Snapshots"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-03-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-03-01/service-2.json.gz
new file mode 100644
index 00000000..5df71c20
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-03-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-03-01/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-03-01/waiters-2.json
new file mode 100644
index 00000000..17f08705
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-03-01/waiters-2.json
@@ -0,0 +1,436 @@
+{
+  "version": 2,
+  "waiters": {
+    "BundleTaskComplete": {
+      "delay": 15,
+      "operation": "DescribeBundleTasks",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "complete",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "BundleTasks[].State"
+        },
+        {
+          "expected": "failed",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "BundleTasks[].State"
+        }
+      ]
+    },
+    "ConversionTaskCancelled": {
+      "delay": 15,
+      "operation": "DescribeConversionTasks",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "cancelled",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "ConversionTasks[].State"
+        }
+      ]
+    },
+    "ConversionTaskCompleted": {
+      "delay": 15,
+      "operation": "DescribeConversionTasks",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "completed",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "ConversionTasks[].State"
+        },
+        {
+          "expected": "cancelled",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "ConversionTasks[].State"
+        },
+        {
+          "expected": "cancelling",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "ConversionTasks[].State"
+        }
+      ]
+    },
+    "ConversionTaskDeleted": {
+      "delay": 15,
+      "operation": "DescribeConversionTasks",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "deleted",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "ConversionTasks[].State"
+        }
+      ]
+    },
+    "CustomerGatewayAvailable": {
+      "delay": 15,
+      "operation": "DescribeCustomerGateways",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "CustomerGateways[].State"
+        },
+        {
+          "expected": "deleted",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "CustomerGateways[].State"
+        },
+        {
+          "expected": "deleting",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "CustomerGateways[].State"
+        }
+      ]
+    },
+    "ExportTaskCancelled": {
+      "delay": 15,
+      "operation": "DescribeExportTasks",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "cancelled",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "ExportTasks[].State"
+        }
+      ]
+    },
+    "ExportTaskCompleted": {
+      "delay": 15,
+      "operation": "DescribeExportTasks",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "completed",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "ExportTasks[].State"
+        }
+      ]
+    },
+    "ImageAvailable": {
+      "operation": "DescribeImages",
+      "maxAttempts": 40,
+      "delay": 15,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "pathAll",
+          "argument": "Images[].State",
+          "expected": "available"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "Images[].State",
+          "expected": "failed"
+        }
+      ]
+    },
+    "InstanceRunning": {
+      "delay": 15,
+      "operation": "DescribeInstances",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "running",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "shutting-down",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "terminated",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "stopping",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        }
+      ]
+    },
+    "InstanceStatusOk": {
+      "operation": "DescribeInstanceStatus",
+      "maxAttempts": 40,
+      "delay": 15,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "pathAll",
+          "argument": "InstanceStatuses[].InstanceStatus.Status",
+          "expected": "ok"
+        }
+      ]
+    },
+    "InstanceStopped": {
+      "delay": 15,
+      "operation": "DescribeInstances",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "stopped",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "pending",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "terminated",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        }
+      ]
+    },
+    "InstanceTerminated": {
+      "delay": 15,
+      "operation": "DescribeInstances",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "terminated",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "pending",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "stopping",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        }
+      ]
+    },
+    "PasswordDataAvailable": {
+      "operation": "GetPasswordData",
+      "maxAttempts": 40,
+      "delay": 15,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "path",
+          "argument": "length(PasswordData) > `0`",
+          "expected": true
+        }
+      ]
+    },
+    "SnapshotCompleted": {
+      "delay": 15,
+      "operation": "DescribeSnapshots",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "completed",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Snapshots[].State"
+        }
+      ]
+    },
+    "SpotInstanceRequestFulfilled": {
+      "operation": "DescribeSpotInstanceRequests",
+      "maxAttempts": 40,
+      "delay": 15,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "pathAll",
+          "argument": "SpotInstanceRequests[].Status.Code",
+          "expected": "fulfilled"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "SpotInstanceRequests[].Status.Code",
+          "expected": "schedule-expired"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "SpotInstanceRequests[].Status.Code",
+          "expected": "canceled-before-fulfillment"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "SpotInstanceRequests[].Status.Code",
+          "expected": "bad-parameters"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "SpotInstanceRequests[].Status.Code",
+          "expected": "system-error"
+        }
+      ]
+    },
+    "SubnetAvailable": {
+      "delay": 15,
+      "operation": "DescribeSubnets",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Subnets[].State"
+        }
+      ]
+    },
+    "SystemStatusOk": {
+      "operation": "DescribeInstanceStatus",
+      "maxAttempts": 40,
+      "delay": 15,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "pathAll",
+          "argument": "InstanceStatuses[].SystemStatus.Status",
+          "expected": "ok"
+        }
+      ]
+    },
+    "VolumeAvailable": {
+      "delay": 15,
+      "operation": "DescribeVolumes",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Volumes[].State"
+        },
+        {
+          "expected": "deleted",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Volumes[].State"
+        }
+      ]
+    },
+    "VolumeDeleted": {
+      "delay": 15,
+      "operation": "DescribeVolumes",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "deleted",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Volumes[].State"
+        }
+      ]
+    },
+    "VolumeInUse": {
+      "delay": 15,
+      "operation": "DescribeVolumes",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "in-use",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Volumes[].State"
+        },
+        {
+          "expected": "deleted",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Volumes[].State"
+        }
+      ]
+    },
+    "VpcAvailable": {
+      "delay": 15,
+      "operation": "DescribeVpcs",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Vpcs[].State"
+        }
+      ]
+    },
+    "VpnConnectionAvailable": {
+      "delay": 15,
+      "operation": "DescribeVpnConnections",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "VpnConnections[].State"
+        },
+        {
+          "expected": "deleting",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "VpnConnections[].State"
+        },
+        {
+          "expected": "deleted",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "VpnConnections[].State"
+        }
+      ]
+    },
+    "VpnConnectionDeleted": {
+      "delay": 15,
+      "operation": "DescribeVpnConnections",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "deleted",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "VpnConnections[].State"
+        },
+        {
+          "expected": "pending",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "VpnConnections[].State"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-04-15/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-04-15/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..aa666da0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-04-15/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-04-15/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-04-15/paginators-1.json
new file mode 100644
index 00000000..ca7a8767
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-04-15/paginators-1.json
@@ -0,0 +1,51 @@
+{
+  "pagination": {
+    "DescribeInstanceStatus": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "InstanceStatuses"
+    },
+    "DescribeInstances": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Reservations"
+    },
+    "DescribeReservedInstancesModifications": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "ReservedInstancesModifications"
+    },
+    "DescribeReservedInstancesOfferings": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ReservedInstancesOfferings"
+    },
+    "DescribeSpotPriceHistory": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "SpotPriceHistory"
+    },
+    "DescribeTags": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Tags"
+    },
+    "DescribeVolumeStatus": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "VolumeStatuses"
+    },
+    "DescribeSnapshots": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Snapshots"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-04-15/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-04-15/service-2.json.gz
new file mode 100644
index 00000000..2bb28427
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-04-15/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-04-15/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-04-15/waiters-2.json
new file mode 100644
index 00000000..5a6dbbc9
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-04-15/waiters-2.json
@@ -0,0 +1,458 @@
+{
+  "version": 2,
+  "waiters": {
+    "InstanceExists": {
+      "delay": 5,
+      "maxAttempts": 40,
+      "operation": "DescribeInstances",
+      "acceptors": [
+        {
+          "matcher": "status",
+          "expected": 200,
+          "state": "success"
+        },
+        {
+          "matcher": "error",
+          "expected": "InvalidInstanceIDNotFound",
+          "state": "retry"
+        }
+      ]
+    },
+    "BundleTaskComplete": {
+      "delay": 15,
+      "operation": "DescribeBundleTasks",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "complete",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "BundleTasks[].State"
+        },
+        {
+          "expected": "failed",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "BundleTasks[].State"
+        }
+      ]
+    },
+    "ConversionTaskCancelled": {
+      "delay": 15,
+      "operation": "DescribeConversionTasks",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "cancelled",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "ConversionTasks[].State"
+        }
+      ]
+    },
+    "ConversionTaskCompleted": {
+      "delay": 15,
+      "operation": "DescribeConversionTasks",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "completed",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "ConversionTasks[].State"
+        },
+        {
+          "expected": "cancelled",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "ConversionTasks[].State"
+        },
+        {
+          "expected": "cancelling",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "ConversionTasks[].State"
+        }
+      ]
+    },
+    "ConversionTaskDeleted": {
+      "delay": 15,
+      "operation": "DescribeConversionTasks",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "deleted",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "ConversionTasks[].State"
+        }
+      ]
+    },
+    "CustomerGatewayAvailable": {
+      "delay": 15,
+      "operation": "DescribeCustomerGateways",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "CustomerGateways[].State"
+        },
+        {
+          "expected": "deleted",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "CustomerGateways[].State"
+        },
+        {
+          "expected": "deleting",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "CustomerGateways[].State"
+        }
+      ]
+    },
+    "ExportTaskCancelled": {
+      "delay": 15,
+      "operation": "DescribeExportTasks",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "cancelled",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "ExportTasks[].State"
+        }
+      ]
+    },
+    "ExportTaskCompleted": {
+      "delay": 15,
+      "operation": "DescribeExportTasks",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "completed",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "ExportTasks[].State"
+        }
+      ]
+    },
+    "ImageAvailable": {
+      "operation": "DescribeImages",
+      "maxAttempts": 40,
+      "delay": 15,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "pathAll",
+          "argument": "Images[].State",
+          "expected": "available"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "Images[].State",
+          "expected": "failed"
+        }
+      ]
+    },
+    "InstanceRunning": {
+      "delay": 15,
+      "operation": "DescribeInstances",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "running",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "shutting-down",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "terminated",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "stopping",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        }
+      ]
+    },
+    "InstanceStatusOk": {
+      "operation": "DescribeInstanceStatus",
+      "maxAttempts": 40,
+      "delay": 15,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "pathAll",
+          "argument": "InstanceStatuses[].InstanceStatus.Status",
+          "expected": "ok"
+        }
+      ]
+    },
+    "InstanceStopped": {
+      "delay": 15,
+      "operation": "DescribeInstances",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "stopped",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "pending",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "terminated",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        }
+      ]
+    },
+    "InstanceTerminated": {
+      "delay": 15,
+      "operation": "DescribeInstances",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "terminated",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "pending",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "stopping",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        }
+      ]
+    },
+    "PasswordDataAvailable": {
+      "operation": "GetPasswordData",
+      "maxAttempts": 40,
+      "delay": 15,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "path",
+          "argument": "length(PasswordData) > `0`",
+          "expected": true
+        }
+      ]
+    },
+    "SnapshotCompleted": {
+      "delay": 15,
+      "operation": "DescribeSnapshots",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "completed",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Snapshots[].State"
+        }
+      ]
+    },
+    "SpotInstanceRequestFulfilled": {
+      "operation": "DescribeSpotInstanceRequests",
+      "maxAttempts": 40,
+      "delay": 15,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "pathAll",
+          "argument": "SpotInstanceRequests[].Status.Code",
+          "expected": "fulfilled"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "SpotInstanceRequests[].Status.Code",
+          "expected": "schedule-expired"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "SpotInstanceRequests[].Status.Code",
+          "expected": "canceled-before-fulfillment"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "SpotInstanceRequests[].Status.Code",
+          "expected": "bad-parameters"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "SpotInstanceRequests[].Status.Code",
+          "expected": "system-error"
+        }
+      ]
+    },
+    "SubnetAvailable": {
+      "delay": 15,
+      "operation": "DescribeSubnets",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Subnets[].State"
+        }
+      ]
+    },
+    "SystemStatusOk": {
+      "operation": "DescribeInstanceStatus",
+      "maxAttempts": 40,
+      "delay": 15,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "pathAll",
+          "argument": "InstanceStatuses[].SystemStatus.Status",
+          "expected": "ok"
+        }
+      ]
+    },
+    "VolumeAvailable": {
+      "delay": 15,
+      "operation": "DescribeVolumes",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Volumes[].State"
+        },
+        {
+          "expected": "deleted",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Volumes[].State"
+        }
+      ]
+    },
+    "VolumeDeleted": {
+      "delay": 15,
+      "operation": "DescribeVolumes",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "deleted",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Volumes[].State"
+        },
+        {
+          "matcher": "error",
+          "expected": "InvalidVolumeNotFound",
+          "state": "success"
+        }
+      ]
+    },
+    "VolumeInUse": {
+      "delay": 15,
+      "operation": "DescribeVolumes",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "in-use",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Volumes[].State"
+        },
+        {
+          "expected": "deleted",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Volumes[].State"
+        }
+      ]
+    },
+    "VpcAvailable": {
+      "delay": 15,
+      "operation": "DescribeVpcs",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Vpcs[].State"
+        }
+      ]
+    },
+    "VpnConnectionAvailable": {
+      "delay": 15,
+      "operation": "DescribeVpnConnections",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "VpnConnections[].State"
+        },
+        {
+          "expected": "deleting",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "VpnConnections[].State"
+        },
+        {
+          "expected": "deleted",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "VpnConnections[].State"
+        }
+      ]
+    },
+    "VpnConnectionDeleted": {
+      "delay": 15,
+      "operation": "DescribeVpnConnections",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "deleted",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "VpnConnections[].State"
+        },
+        {
+          "expected": "pending",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "VpnConnections[].State"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-10-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-10-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..5c789e5a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-10-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-10-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-10-01/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-10-01/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-10-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-10-01/paginators-1.json
new file mode 100644
index 00000000..2bd01ad5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-10-01/paginators-1.json
@@ -0,0 +1,63 @@
+{
+  "pagination": {
+    "DescribeInstanceStatus": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "InstanceStatuses"
+    },
+    "DescribeInstances": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Reservations"
+    },
+    "DescribeReservedInstancesOfferings": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ReservedInstancesOfferings"
+    },
+    "DescribeReservedInstancesModifications": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "ReservedInstancesModifications"
+    },
+    "DescribeSnapshots": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Snapshots"
+    },
+    "DescribeSpotFleetRequests": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "SpotFleetRequestConfigs"
+    },
+    "DescribeSpotPriceHistory": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "SpotPriceHistory"
+    },
+    "DescribeTags": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Tags"
+    },
+    "DescribeVolumeStatus": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "VolumeStatuses"
+    },
+    "DescribeVolumes": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Volumes"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-10-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-10-01/service-2.json.gz
new file mode 100644
index 00000000..c887c99b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-10-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-10-01/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-10-01/waiters-2.json
new file mode 100644
index 00000000..652a8cad
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2015-10-01/waiters-2.json
@@ -0,0 +1,589 @@
+{
+  "version": 2,
+  "waiters": {
+    "InstanceExists": {
+      "delay": 5,
+      "maxAttempts": 40,
+      "operation": "DescribeInstances",
+      "acceptors": [
+        {
+          "matcher": "path",
+          "expected": true,
+          "argument": "length(Reservations[]) > `0`",
+          "state": "success"
+        },
+        {
+          "matcher": "error",
+          "expected": "InvalidInstanceID.NotFound",
+          "state": "retry"
+        }
+      ]
+    },
+    "BundleTaskComplete": {
+      "delay": 15,
+      "operation": "DescribeBundleTasks",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "complete",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "BundleTasks[].State"
+        },
+        {
+          "expected": "failed",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "BundleTasks[].State"
+        }
+      ]
+    },
+    "ConsoleOutputAvailable": {
+      "operation": "GetConsoleOutput",
+      "maxAttempts": 40,
+      "delay": 15,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "path",
+          "argument": "length(Output || '') > `0`",
+          "expected": true
+        }
+      ]
+    },
+    "ConversionTaskCancelled": {
+      "delay": 15,
+      "operation": "DescribeConversionTasks",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "cancelled",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "ConversionTasks[].State"
+        }
+      ]
+    },
+    "ConversionTaskCompleted": {
+      "delay": 15,
+      "operation": "DescribeConversionTasks",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "completed",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "ConversionTasks[].State"
+        },
+        {
+          "expected": "cancelled",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "ConversionTasks[].State"
+        },
+        {
+          "expected": "cancelling",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "ConversionTasks[].State"
+        }
+      ]
+    },
+    "ConversionTaskDeleted": {
+      "delay": 15,
+      "operation": "DescribeConversionTasks",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "deleted",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "ConversionTasks[].State"
+        }
+      ]
+    },
+    "CustomerGatewayAvailable": {
+      "delay": 15,
+      "operation": "DescribeCustomerGateways",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "CustomerGateways[].State"
+        },
+        {
+          "expected": "deleted",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "CustomerGateways[].State"
+        },
+        {
+          "expected": "deleting",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "CustomerGateways[].State"
+        }
+      ]
+    },
+    "ExportTaskCancelled": {
+      "delay": 15,
+      "operation": "DescribeExportTasks",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "cancelled",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "ExportTasks[].State"
+        }
+      ]
+    },
+    "ExportTaskCompleted": {
+      "delay": 15,
+      "operation": "DescribeExportTasks",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "completed",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "ExportTasks[].State"
+        }
+      ]
+    },
+    "ImageExists": {
+      "operation": "DescribeImages",
+      "maxAttempts": 40,
+      "delay": 15,
+      "acceptors": [
+        {
+          "matcher": "path",
+          "expected": true,
+          "argument": "length(Images[]) > `0`",
+          "state": "success"
+        },
+        {
+          "matcher": "error",
+          "expected": "InvalidAMIID.NotFound",
+          "state": "retry"
+        }
+      ]
+    },
+    "ImageAvailable": {
+      "operation": "DescribeImages",
+      "maxAttempts": 40,
+      "delay": 15,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "pathAll",
+          "argument": "Images[].State",
+          "expected": "available"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "Images[].State",
+          "expected": "failed"
+        }
+      ]
+    },
+    "InstanceRunning": {
+      "delay": 15,
+      "operation": "DescribeInstances",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "running",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "shutting-down",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "terminated",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "stopping",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "matcher": "error",
+          "expected": "InvalidInstanceID.NotFound",
+          "state": "retry"
+        }
+      ]
+    },
+    "InstanceStatusOk": {
+      "operation": "DescribeInstanceStatus",
+      "maxAttempts": 40,
+      "delay": 15,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "pathAll",
+          "argument": "InstanceStatuses[].InstanceStatus.Status",
+          "expected": "ok"
+        },
+        {
+          "matcher": "error",
+          "expected": "InvalidInstanceID.NotFound",
+          "state": "retry"
+        }
+      ]
+    },
+    "InstanceStopped": {
+      "delay": 15,
+      "operation": "DescribeInstances",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "stopped",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "pending",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "terminated",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        }
+      ]
+    },
+    "InstanceTerminated": {
+      "delay": 15,
+      "operation": "DescribeInstances",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "terminated",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "pending",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "stopping",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        }
+      ]
+    },
+    "KeyPairExists": {
+      "operation": "DescribeKeyPairs",
+      "delay": 5,
+      "maxAttempts": 6,
+      "acceptors": [
+        {
+          "expected": true,
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "length(KeyPairs[].KeyName) > `0`"
+        },
+        {
+          "expected": "InvalidKeyPair.NotFound",
+          "matcher": "error",
+          "state": "retry"
+        }
+      ]
+    },
+    "NatGatewayAvailable": {
+      "operation": "DescribeNatGateways",
+      "delay": 15,
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "pathAll",
+          "argument": "NatGateways[].State",
+          "expected": "available"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "NatGateways[].State",
+          "expected": "failed"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "NatGateways[].State",
+          "expected": "deleting"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "NatGateways[].State",
+          "expected": "deleted"
+        },
+        {
+          "state": "retry",
+          "matcher": "error",
+          "expected": "NatGatewayNotFound"
+        }
+      ]
+    },
+    "NetworkInterfaceAvailable": {
+      "operation": "DescribeNetworkInterfaces",
+      "delay": 20,
+      "maxAttempts": 10,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "NetworkInterfaces[].Status"
+        },
+        {
+          "expected": "InvalidNetworkInterfaceID.NotFound",
+          "matcher": "error",
+          "state": "failure"
+        }
+      ]
+    },
+    "PasswordDataAvailable": {
+      "operation": "GetPasswordData",
+      "maxAttempts": 40,
+      "delay": 15,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "path",
+          "argument": "length(PasswordData) > `0`",
+          "expected": true
+        }
+      ]
+    },
+    "SnapshotCompleted": {
+      "delay": 15,
+      "operation": "DescribeSnapshots",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "completed",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Snapshots[].State"
+        }
+      ]
+    },
+    "SpotInstanceRequestFulfilled": {
+      "operation": "DescribeSpotInstanceRequests",
+      "maxAttempts": 40,
+      "delay": 15,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "pathAll",
+          "argument": "SpotInstanceRequests[].Status.Code",
+          "expected": "fulfilled"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "SpotInstanceRequests[].Status.Code",
+          "expected": "schedule-expired"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "SpotInstanceRequests[].Status.Code",
+          "expected": "canceled-before-fulfillment"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "SpotInstanceRequests[].Status.Code",
+          "expected": "bad-parameters"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "SpotInstanceRequests[].Status.Code",
+          "expected": "system-error"
+        }
+      ]
+    },
+    "SubnetAvailable": {
+      "delay": 15,
+      "operation": "DescribeSubnets",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Subnets[].State"
+        }
+      ]
+    },
+    "SystemStatusOk": {
+      "operation": "DescribeInstanceStatus",
+      "maxAttempts": 40,
+      "delay": 15,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "pathAll",
+          "argument": "InstanceStatuses[].SystemStatus.Status",
+          "expected": "ok"
+        }
+      ]
+    },
+    "VolumeAvailable": {
+      "delay": 15,
+      "operation": "DescribeVolumes",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Volumes[].State"
+        },
+        {
+          "expected": "deleted",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Volumes[].State"
+        }
+      ]
+    },
+    "VolumeDeleted": {
+      "delay": 15,
+      "operation": "DescribeVolumes",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "deleted",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Volumes[].State"
+        },
+        {
+          "matcher": "error",
+          "expected": "InvalidVolume.NotFound",
+          "state": "success"
+        }
+      ]
+    },
+    "VolumeInUse": {
+      "delay": 15,
+      "operation": "DescribeVolumes",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "in-use",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Volumes[].State"
+        },
+        {
+          "expected": "deleted",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Volumes[].State"
+        }
+      ]
+    },
+    "VpcAvailable": {
+      "delay": 15,
+      "operation": "DescribeVpcs",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Vpcs[].State"
+        }
+      ]
+    },
+    "VpnConnectionAvailable": {
+      "delay": 60,
+      "operation": "DescribeVpnConnections",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "VpnConnections[].State"
+        },
+        {
+          "expected": "deleting",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "VpnConnections[].State"
+        },
+        {
+          "expected": "deleted",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "VpnConnections[].State"
+        }
+      ]
+    },
+    "VpnConnectionDeleted": {
+      "delay": 15,
+      "operation": "DescribeVpnConnections",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "deleted",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "VpnConnections[].State"
+        },
+        {
+          "expected": "pending",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "VpnConnections[].State"
+        }
+      ]
+    },
+    "VpcPeeringConnectionExists": {
+      "delay": 15,
+      "operation": "DescribeVpcPeeringConnections",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "matcher": "status",
+          "expected": 200,
+          "state": "success"
+        },
+        {
+          "matcher": "error",
+          "expected": "InvalidVpcPeeringConnectionID.NotFound",
+          "state": "retry"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-04-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-04-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..5c789e5a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-04-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-04-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-04-01/examples-1.json
new file mode 100644
index 00000000..3f584e9f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-04-01/examples-1.json
@@ -0,0 +1,3729 @@
+{
+  "version": "1.0",
+  "examples": {
+    "AllocateAddress": [
+      {
+        "input": {
+          "Domain": "vpc"
+        },
+        "output": {
+          "AllocationId": "eipalloc-64d5890a",
+          "Domain": "vpc",
+          "PublicIp": "203.0.113.0"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example allocates an Elastic IP address to use with an instance in a VPC.",
+        "id": "ec2-allocate-address-1",
+        "title": "To allocate an Elastic IP address for EC2-VPC"
+      },
+      {
+        "output": {
+          "Domain": "standard",
+          "PublicIp": "198.51.100.0"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example allocates an Elastic IP address to use with an instance in EC2-Classic.",
+        "id": "ec2-allocate-address-2",
+        "title": "To allocate an Elastic IP address for EC2-Classic"
+      }
+    ],
+    "AssignPrivateIpAddresses": [
+      {
+        "input": {
+          "NetworkInterfaceId": "eni-e5aa89a3",
+          "PrivateIpAddresses": [
+            "10.0.0.82"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example assigns the specified secondary private IP address to the specified network interface.",
+        "id": "ec2-assign-private-ip-addresses-1",
+        "title": "To assign a specific secondary private IP address to an interface"
+      },
+      {
+        "input": {
+          "NetworkInterfaceId": "eni-e5aa89a3",
+          "SecondaryPrivateIpAddressCount": 2
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example assigns two secondary private IP addresses to the specified network interface. Amazon EC2 automatically assigns these IP addresses from the available IP addresses in the CIDR block range of the subnet the network interface is associated with.",
+        "id": "ec2-assign-private-ip-addresses-2",
+        "title": "To assign secondary private IP addresses that Amazon EC2 selects to an interface"
+      }
+    ],
+    "AssociateAddress": [
+      {
+        "input": {
+          "AllocationId": "eipalloc-64d5890a",
+          "InstanceId": "i-0b263919b6498b123"
+        },
+        "output": {
+          "AssociationId": "eipassoc-2bebb745"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example associates the specified Elastic IP address with the specified instance in a VPC.",
+        "id": "ec2-associate-address-1",
+        "title": "To associate an Elastic IP address in EC2-VPC"
+      },
+      {
+        "input": {
+          "AllocationId": "eipalloc-64d5890a",
+          "NetworkInterfaceId": "eni-1a2b3c4d"
+        },
+        "output": {
+          "AssociationId": "eipassoc-2bebb745"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example associates the specified Elastic IP address with the specified network interface.",
+        "id": "ec2-associate-address-2",
+        "title": "To associate an Elastic IP address with a network interface"
+      },
+      {
+        "input": {
+          "InstanceId": "i-07ffe74c7330ebf53",
+          "PublicIp": "198.51.100.0"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example associates an Elastic IP address with an instance in EC2-Classic.",
+        "id": "ec2-associate-address-3",
+        "title": "To associate an Elastic IP address in EC2-Classic"
+      }
+    ],
+    "AssociateDhcpOptions": [
+      {
+        "input": {
+          "DhcpOptionsId": "dopt-d9070ebb",
+          "VpcId": "vpc-a01106c2"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example associates the specified DHCP options set with the specified VPC.",
+        "id": "ec2-associate-dhcp-options-1",
+        "title": "To associate a DHCP options set with a VPC"
+      },
+      {
+        "input": {
+          "DhcpOptionsId": "default",
+          "VpcId": "vpc-a01106c2"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example associates the default DHCP options set with the specified VPC.",
+        "id": "ec2-associate-dhcp-options-2",
+        "title": "To associate the default DHCP options set with a VPC"
+      }
+    ],
+    "AssociateRouteTable": [
+      {
+        "input": {
+          "RouteTableId": "rtb-22574640",
+          "SubnetId": "subnet-9d4a7b6"
+        },
+        "output": {
+          "AssociationId": "rtbassoc-781d0d1a"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example associates the specified route table with the specified subnet.",
+        "id": "ec2-associate-route-table-1",
+        "title": "To associate a route table with a subnet"
+      }
+    ],
+    "AttachInternetGateway": [
+      {
+        "input": {
+          "InternetGatewayId": "igw-c0a643a9",
+          "VpcId": "vpc-a01106c2"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example attaches the specified Internet gateway to the specified VPC.",
+        "id": "ec2-attach-internet-gateway-1",
+        "title": "To attach an Internet gateway to a VPC"
+      }
+    ],
+    "AttachNetworkInterface": [
+      {
+        "input": {
+          "DeviceIndex": 1,
+          "InstanceId": "i-1234567890abcdef0",
+          "NetworkInterfaceId": "eni-e5aa89a3"
+        },
+        "output": {
+          "AttachmentId": "eni-attach-66c4350a"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example attaches the specified network interface to the specified instance.",
+        "id": "ec2-attach-network-interface-1",
+        "title": "To attach a network interface to an instance"
+      }
+    ],
+    "AttachVolume": [
+      {
+        "input": {
+          "Device": "/dev/sdf",
+          "InstanceId": "i-01474ef662b89480",
+          "VolumeId": "vol-1234567890abcdef0"
+        },
+        "output": {
+          "AttachTime": "2016-08-29T18:52:32.724Z",
+          "Device": "/dev/sdf",
+          "InstanceId": "i-01474ef662b89480",
+          "State": "attaching",
+          "VolumeId": "vol-1234567890abcdef0"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example attaches a volume (``vol-1234567890abcdef0``) to an instance (``i-01474ef662b89480``) as ``/dev/sdf``.",
+        "id": "to-attach-a-volume-to-an-instance-1472499213109",
+        "title": "To attach a volume to an instance"
+      }
+    ],
+    "CancelSpotFleetRequests": [
+      {
+        "input": {
+          "SpotFleetRequestIds": [
+            "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE"
+          ],
+          "TerminateInstances": true
+        },
+        "output": {
+          "SuccessfulFleetRequests": [
+            {
+              "CurrentSpotFleetRequestState": "cancelled_running",
+              "PreviousSpotFleetRequestState": "active",
+              "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example cancels the specified Spot fleet request and terminates its associated Spot Instances.",
+        "id": "ec2-cancel-spot-fleet-requests-1",
+        "title": "To cancel a Spot fleet request"
+      },
+      {
+        "input": {
+          "SpotFleetRequestIds": [
+            "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE"
+          ],
+          "TerminateInstances": false
+        },
+        "output": {
+          "SuccessfulFleetRequests": [
+            {
+              "CurrentSpotFleetRequestState": "cancelled_terminating",
+              "PreviousSpotFleetRequestState": "active",
+              "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example cancels the specified Spot fleet request without terminating its associated Spot Instances.",
+        "id": "ec2-cancel-spot-fleet-requests-2",
+        "title": "To cancel a Spot fleet request without terminating its Spot Instances"
+      }
+    ],
+    "CancelSpotInstanceRequests": [
+      {
+        "input": {
+          "SpotInstanceRequestIds": [
+            "sir-08b93456"
+          ]
+        },
+        "output": {
+          "CancelledSpotInstanceRequests": [
+            {
+              "SpotInstanceRequestId": "sir-08b93456",
+              "State": "cancelled"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example cancels a Spot Instance request.",
+        "id": "ec2-cancel-spot-instance-requests-1",
+        "title": "To cancel Spot Instance requests"
+      }
+    ],
+    "ConfirmProductInstance": [
+      {
+        "input": {
+          "InstanceId": "i-1234567890abcdef0",
+          "ProductCode": "774F4FF8"
+        },
+        "output": {
+          "OwnerId": "123456789012"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example determines whether the specified product code is associated with the specified instance.",
+        "id": "to-confirm-the-product-instance-1472712108494",
+        "title": "To confirm the product instance"
+      }
+    ],
+    "CopySnapshot": [
+      {
+        "input": {
+          "Description": "This is my copied snapshot.",
+          "DestinationRegion": "us-east-1",
+          "SourceRegion": "us-west-2",
+          "SourceSnapshotId": "snap-066877671789bd71b"
+        },
+        "output": {
+          "SnapshotId": "snap-066877671789bd71b"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example copies a snapshot with the snapshot ID of ``snap-066877671789bd71b`` from the ``us-west-2`` region to the ``us-east-1`` region and adds a short description to identify the snapshot.",
+        "id": "to-copy-a-snapshot-1472502259774",
+        "title": "To copy a snapshot"
+      }
+    ],
+    "CreateCustomerGateway": [
+      {
+        "input": {
+          "BgpAsn": 65534,
+          "PublicIp": "12.1.2.3",
+          "Type": "ipsec.1"
+        },
+        "output": {
+          "CustomerGateway": {
+            "BgpAsn": "65534",
+            "CustomerGatewayId": "cgw-0e11f167",
+            "IpAddress": "12.1.2.3",
+            "State": "available",
+            "Type": "ipsec.1"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a customer gateway with the specified IP address for its outside interface.",
+        "id": "ec2-create-customer-gateway-1",
+        "title": "To create a customer gateway"
+      }
+    ],
+    "CreateDhcpOptions": [
+      {
+        "input": {
+          "DhcpConfigurations": [
+            {
+              "Key": "domain-name-servers",
+              "Values": [
+                "10.2.5.1",
+                "10.2.5.2"
+              ]
+            }
+          ]
+        },
+        "output": {
+          "DhcpOptions": {
+            "DhcpConfigurations": [
+              {
+                "Key": "domain-name-servers",
+                "Values": [
+                  "10.2.5.2",
+                  "10.2.5.1"
+                ]
+              }
+            ],
+            "DhcpOptionsId": "dopt-d9070ebb"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a DHCP options set.",
+        "id": "ec2-create-dhcp-options-1",
+        "title": "To create a DHCP options set"
+      }
+    ],
+    "CreateInternetGateway": [
+      {
+        "output": {
+          "InternetGateway": {
+            "Attachments": [
+
+            ],
+            "InternetGatewayId": "igw-c0a643a9",
+            "Tags": [
+
+            ]
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates an Internet gateway.",
+        "id": "ec2-create-internet-gateway-1",
+        "title": "To create an Internet gateway"
+      }
+    ],
+    "CreateKeyPair": [
+      {
+        "input": {
+          "KeyName": "my-key-pair"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a key pair named my-key-pair.",
+        "id": "ec2-create-key-pair-1",
+        "title": "To create a key pair"
+      }
+    ],
+    "CreateNatGateway": [
+      {
+        "input": {
+          "AllocationId": "eipalloc-37fc1a52",
+          "SubnetId": "subnet-1a2b3c4d"
+        },
+        "output": {
+          "NatGateway": {
+            "CreateTime": "2015-12-17T12:45:26.732Z",
+            "NatGatewayAddresses": [
+              {
+                "AllocationId": "eipalloc-37fc1a52"
+              }
+            ],
+            "NatGatewayId": "nat-08d48af2a8e83edfd",
+            "State": "pending",
+            "SubnetId": "subnet-1a2b3c4d",
+            "VpcId": "vpc-1122aabb"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a NAT gateway in subnet subnet-1a2b3c4d and associates an Elastic IP address with the allocation ID eipalloc-37fc1a52 with the NAT gateway.",
+        "id": "ec2-create-nat-gateway-1",
+        "title": "To create a NAT gateway"
+      }
+    ],
+    "CreateNetworkAcl": [
+      {
+        "input": {
+          "VpcId": "vpc-a01106c2"
+        },
+        "output": {
+          "NetworkAcl": {
+            "Associations": [
+
+            ],
+            "Entries": [
+              {
+                "CidrBlock": "0.0.0.0/0",
+                "Egress": true,
+                "Protocol": "-1",
+                "RuleAction": "deny",
+                "RuleNumber": 32767
+              },
+              {
+                "CidrBlock": "0.0.0.0/0",
+                "Egress": false,
+                "Protocol": "-1",
+                "RuleAction": "deny",
+                "RuleNumber": 32767
+              }
+            ],
+            "IsDefault": false,
+            "NetworkAclId": "acl-5fb85d36",
+            "Tags": [
+
+            ],
+            "VpcId": "vpc-a01106c2"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a network ACL for the specified VPC.",
+        "id": "ec2-create-network-acl-1",
+        "title": "To create a network ACL"
+      }
+    ],
+    "CreateNetworkAclEntry": [
+      {
+        "input": {
+          "CidrBlock": "0.0.0.0/0",
+          "Egress": false,
+          "NetworkAclId": "acl-5fb85d36",
+          "PortRange": {
+            "From": 53,
+            "To": 53
+          },
+          "Protocol": "udp",
+          "RuleAction": "allow",
+          "RuleNumber": 100
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates an entry for the specified network ACL. The rule allows ingress traffic from anywhere (0.0.0.0/0) on UDP port 53 (DNS) into any associated subnet.",
+        "id": "ec2-create-network-acl-entry-1",
+        "title": "To create a network ACL entry"
+      }
+    ],
+    "CreateNetworkInterface": [
+      {
+        "input": {
+          "Description": "my network interface",
+          "Groups": [
+            "sg-903004f8"
+          ],
+          "PrivateIpAddress": "10.0.2.17",
+          "SubnetId": "subnet-9d4a7b6c"
+        },
+        "output": {
+          "NetworkInterface": {
+            "AvailabilityZone": "us-east-1d",
+            "Description": "my network interface",
+            "Groups": [
+              {
+                "GroupId": "sg-903004f8",
+                "GroupName": "default"
+              }
+            ],
+            "MacAddress": "02:1a:80:41:52:9c",
+            "NetworkInterfaceId": "eni-e5aa89a3",
+            "OwnerId": "123456789012",
+            "PrivateIpAddress": "10.0.2.17",
+            "PrivateIpAddresses": [
+              {
+                "Primary": true,
+                "PrivateIpAddress": "10.0.2.17"
+              }
+            ],
+            "RequesterManaged": false,
+            "SourceDestCheck": true,
+            "Status": "pending",
+            "SubnetId": "subnet-9d4a7b6c",
+            "TagSet": [
+
+            ],
+            "VpcId": "vpc-a01106c2"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a network interface for the specified subnet.",
+        "id": "ec2-create-network-interface-1",
+        "title": "To create a network interface"
+      }
+    ],
+    "CreatePlacementGroup": [
+      {
+        "input": {
+          "GroupName": "my-cluster",
+          "Strategy": "cluster"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a placement group with the specified name.",
+        "id": "to-create-a-placement-group-1472712245768",
+        "title": "To create a placement group"
+      }
+    ],
+    "CreateRoute": [
+      {
+        "input": {
+          "DestinationCidrBlock": "0.0.0.0/0",
+          "GatewayId": "igw-c0a643a9",
+          "RouteTableId": "rtb-22574640"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a route for the specified route table. The route matches all traffic (0.0.0.0/0) and routes it to the specified Internet gateway.",
+        "id": "ec2-create-route-1",
+        "title": "To create a route"
+      }
+    ],
+    "CreateRouteTable": [
+      {
+        "input": {
+          "VpcId": "vpc-a01106c2"
+        },
+        "output": {
+          "RouteTable": {
+            "Associations": [
+
+            ],
+            "PropagatingVgws": [
+
+            ],
+            "RouteTableId": "rtb-22574640",
+            "Routes": [
+              {
+                "DestinationCidrBlock": "10.0.0.0/16",
+                "GatewayId": "local",
+                "State": "active"
+              }
+            ],
+            "Tags": [
+
+            ],
+            "VpcId": "vpc-a01106c2"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a route table for the specified VPC.",
+        "id": "ec2-create-route-table-1",
+        "title": "To create a route table"
+      }
+    ],
+    "CreateSnapshot": [
+      {
+        "input": {
+          "Description": "This is my root volume snapshot.",
+          "VolumeId": "vol-1234567890abcdef0"
+        },
+        "output": {
+          "Description": "This is my root volume snapshot.",
+          "OwnerId": "012345678910",
+          "SnapshotId": "snap-066877671789bd71b",
+          "StartTime": "2014-02-28T21:06:01.000Z",
+          "State": "pending",
+          "Tags": [
+
+          ],
+          "VolumeId": "vol-1234567890abcdef0",
+          "VolumeSize": 8
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a snapshot of the volume with a volume ID of ``vol-1234567890abcdef0`` and a short description to identify the snapshot.",
+        "id": "to-create-a-snapshot-1472502529790",
+        "title": "To create a snapshot"
+      }
+    ],
+    "CreateSpotDatafeedSubscription": [
+      {
+        "input": {
+          "Bucket": "my-s3-bucket",
+          "Prefix": "spotdata"
+        },
+        "output": {
+          "SpotDatafeedSubscription": {
+            "Bucket": "my-s3-bucket",
+            "OwnerId": "123456789012",
+            "Prefix": "spotdata",
+            "State": "Active"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a Spot Instance data feed for your AWS account.",
+        "id": "ec2-create-spot-datafeed-subscription-1",
+        "title": "To create a Spot Instance datafeed"
+      }
+    ],
+    "CreateSubnet": [
+      {
+        "input": {
+          "CidrBlock": "10.0.1.0/24",
+          "VpcId": "vpc-a01106c2"
+        },
+        "output": {
+          "Subnet": {
+            "AvailabilityZone": "us-west-2c",
+            "AvailableIpAddressCount": 251,
+            "CidrBlock": "10.0.1.0/24",
+            "State": "pending",
+            "SubnetId": "subnet-9d4a7b6c",
+            "VpcId": "vpc-a01106c2"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a subnet in the specified VPC with the specified CIDR block. We recommend that you let us select an Availability Zone for you.",
+        "id": "ec2-create-subnet-1",
+        "title": "To create a subnet"
+      }
+    ],
+    "CreateTags": [
+      {
+        "input": {
+          "Resources": [
+            "ami-78a54011"
+          ],
+          "Tags": [
+            {
+              "Key": "Stack",
+              "Value": "production"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example adds the tag Stack=production to the specified image, or overwrites an existing tag for the AMI where the tag key is Stack.",
+        "id": "ec2-create-tags-1",
+        "title": "To add a tag to a resource"
+      }
+    ],
+    "CreateVolume": [
+      {
+        "input": {
+          "AvailabilityZone": "us-east-1a",
+          "Size": 80,
+          "VolumeType": "gp2"
+        },
+        "output": {
+          "AvailabilityZone": "us-east-1a",
+          "CreateTime": "2016-08-29T18:52:32.724Z",
+          "Encrypted": false,
+          "Iops": 240,
+          "Size": 80,
+          "SnapshotId": "",
+          "State": "creating",
+          "VolumeId": "vol-6b60b7c7",
+          "VolumeType": "gp2"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates an 80 GiB General Purpose (SSD) volume in the Availability Zone ``us-east-1a``.",
+        "id": "to-create-a-new-volume-1472496724296",
+        "title": "To create a new volume"
+      },
+      {
+        "input": {
+          "AvailabilityZone": "us-east-1a",
+          "Iops": 1000,
+          "SnapshotId": "snap-066877671789bd71b",
+          "VolumeType": "io1"
+        },
+        "output": {
+          "Attachments": [
+
+          ],
+          "AvailabilityZone": "us-east-1a",
+          "CreateTime": "2016-08-29T18:52:32.724Z",
+          "Iops": 1000,
+          "Size": 500,
+          "SnapshotId": "snap-066877671789bd71b",
+          "State": "creating",
+          "Tags": [
+
+          ],
+          "VolumeId": "vol-1234567890abcdef0",
+          "VolumeType": "io1"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a new Provisioned IOPS (SSD) volume with 1000 provisioned IOPS from a snapshot in the Availability Zone ``us-east-1a``.",
+        "id": "to-create-a-new-provisioned-iops-ssd-volume-from-a-snapshot-1472498975176",
+        "title": "To create a new Provisioned IOPS (SSD) volume from a snapshot"
+      }
+    ],
+    "CreateVpc": [
+      {
+        "input": {
+          "CidrBlock": "10.0.0.0/16"
+        },
+        "output": {
+          "Vpc": {
+            "CidrBlock": "10.0.0.0/16",
+            "DhcpOptionsId": "dopt-7a8b9c2d",
+            "InstanceTenancy": "default",
+            "State": "pending",
+            "VpcId": "vpc-a01106c2"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a VPC with the specified CIDR block.",
+        "id": "ec2-create-vpc-1",
+        "title": "To create a VPC"
+      }
+    ],
+    "DeleteCustomerGateway": [
+      {
+        "input": {
+          "CustomerGatewayId": "cgw-0e11f167"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified customer gateway.",
+        "id": "ec2-delete-customer-gateway-1",
+        "title": "To delete a customer gateway"
+      }
+    ],
+    "DeleteDhcpOptions": [
+      {
+        "input": {
+          "DhcpOptionsId": "dopt-d9070ebb"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified DHCP options set.",
+        "id": "ec2-delete-dhcp-options-1",
+        "title": "To delete a DHCP options set"
+      }
+    ],
+    "DeleteInternetGateway": [
+      {
+        "input": {
+          "InternetGatewayId": "igw-c0a643a9"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified Internet gateway.",
+        "id": "ec2-delete-internet-gateway-1",
+        "title": "To delete an Internet gateway"
+      }
+    ],
+    "DeleteKeyPair": [
+      {
+        "input": {
+          "KeyName": "my-key-pair"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified key pair.",
+        "id": "ec2-delete-key-pair-1",
+        "title": "To delete a key pair"
+      }
+    ],
+    "DeleteNatGateway": [
+      {
+        "input": {
+          "NatGatewayId": "nat-04ae55e711cec5680"
+        },
+        "output": {
+          "NatGatewayId": "nat-04ae55e711cec5680"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified NAT gateway.",
+        "id": "ec2-delete-nat-gateway-1",
+        "title": "To delete a NAT gateway"
+      }
+    ],
+    "DeleteNetworkAcl": [
+      {
+        "input": {
+          "NetworkAclId": "acl-5fb85d36"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified network ACL.",
+        "id": "ec2-delete-network-acl-1",
+        "title": "To delete a network ACL"
+      }
+    ],
+    "DeleteNetworkAclEntry": [
+      {
+        "input": {
+          "Egress": true,
+          "NetworkAclId": "acl-5fb85d36",
+          "RuleNumber": 100
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes ingress rule number 100 from the specified network ACL.",
+        "id": "ec2-delete-network-acl-entry-1",
+        "title": "To delete a network ACL entry"
+      }
+    ],
+    "DeleteNetworkInterface": [
+      {
+        "input": {
+          "NetworkInterfaceId": "eni-e5aa89a3"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified network interface.",
+        "id": "ec2-delete-network-interface-1",
+        "title": "To delete a network interface"
+      }
+    ],
+    "DeletePlacementGroup": [
+      {
+        "input": {
+          "GroupName": "my-cluster"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified placement group.\n",
+        "id": "to-delete-a-placement-group-1472712349959",
+        "title": "To delete a placement group"
+      }
+    ],
+    "DeleteRoute": [
+      {
+        "input": {
+          "DestinationCidrBlock": "0.0.0.0/0",
+          "RouteTableId": "rtb-22574640"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified route from the specified route table.",
+        "id": "ec2-delete-route-1",
+        "title": "To delete a route"
+      }
+    ],
+    "DeleteRouteTable": [
+      {
+        "input": {
+          "RouteTableId": "rtb-22574640"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified route table.",
+        "id": "ec2-delete-route-table-1",
+        "title": "To delete a route table"
+      }
+    ],
+    "DeleteSnapshot": [
+      {
+        "input": {
+          "SnapshotId": "snap-1234567890abcdef0"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes a snapshot with the snapshot ID of ``snap-1234567890abcdef0``. If the command succeeds, no output is returned.",
+        "id": "to-delete-a-snapshot-1472503042567",
+        "title": "To delete a snapshot"
+      }
+    ],
+    "DeleteSpotDatafeedSubscription": [
+      {
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes a Spot data feed subscription for the account.",
+        "id": "ec2-delete-spot-datafeed-subscription-1",
+        "title": "To cancel a Spot Instance data feed subscription"
+      }
+    ],
+    "DeleteSubnet": [
+      {
+        "input": {
+          "SubnetId": "subnet-9d4a7b6c"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified subnet.",
+        "id": "ec2-delete-subnet-1",
+        "title": "To delete a subnet"
+      }
+    ],
+    "DeleteTags": [
+      {
+        "input": {
+          "Resources": [
+            "ami-78a54011"
+          ],
+          "Tags": [
+            {
+              "Key": "Stack",
+              "Value": "test"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the tag Stack=test from the specified image.",
+        "id": "ec2-delete-tags-1",
+        "title": "To delete a tag from a resource"
+      }
+    ],
+    "DeleteVolume": [
+      {
+        "input": {
+          "VolumeId": "vol-049df61146c4d7901"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes an available volume with the volume ID of ``vol-049df61146c4d7901``. If the command succeeds, no output is returned.",
+        "id": "to-delete-a-volume-1472503111160",
+        "title": "To delete a volume"
+      }
+    ],
+    "DeleteVpc": [
+      {
+        "input": {
+          "VpcId": "vpc-a01106c2"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified VPC.",
+        "id": "ec2-delete-vpc-1",
+        "title": "To delete a VPC"
+      }
+    ],
+    "DescribeAccountAttributes": [
+      {
+        "input": {
+          "AttributeNames": [
+            "supported-platforms"
+          ]
+        },
+        "output": {
+          "AccountAttributes": [
+            {
+              "AttributeName": "supported-platforms",
+              "AttributeValues": [
+                {
+                  "AttributeValue": "EC2"
+                },
+                {
+                  "AttributeValue": "VPC"
+                }
+              ]
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the supported-platforms attribute for your AWS account.",
+        "id": "ec2-describe-account-attributes-1",
+        "title": "To describe a single attribute for your AWS account"
+      },
+      {
+        "output": {
+          "AccountAttributes": [
+            {
+              "AttributeName": "supported-platforms",
+              "AttributeValues": [
+                {
+                  "AttributeValue": "EC2"
+                },
+                {
+                  "AttributeValue": "VPC"
+                }
+              ]
+            },
+            {
+              "AttributeName": "vpc-max-security-groups-per-interface",
+              "AttributeValues": [
+                {
+                  "AttributeValue": "5"
+                }
+              ]
+            },
+            {
+              "AttributeName": "max-elastic-ips",
+              "AttributeValues": [
+                {
+                  "AttributeValue": "5"
+                }
+              ]
+            },
+            {
+              "AttributeName": "max-instances",
+              "AttributeValues": [
+                {
+                  "AttributeValue": "20"
+                }
+              ]
+            },
+            {
+              "AttributeName": "vpc-max-elastic-ips",
+              "AttributeValues": [
+                {
+                  "AttributeValue": "5"
+                }
+              ]
+            },
+            {
+              "AttributeName": "default-vpc",
+              "AttributeValues": [
+                {
+                  "AttributeValue": "none"
+                }
+              ]
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the attributes for your AWS account.",
+        "id": "ec2-describe-account-attributes-2",
+        "title": "To describe all attributes for your AWS account"
+      }
+    ],
+    "DescribeAddresses": [
+      {
+        "output": {
+          "Addresses": [
+            {
+              "Domain": "standard",
+              "InstanceId": "i-1234567890abcdef0",
+              "PublicIp": "198.51.100.0"
+            },
+            {
+              "AllocationId": "eipalloc-12345678",
+              "AssociationId": "eipassoc-12345678",
+              "Domain": "vpc",
+              "InstanceId": "i-1234567890abcdef0",
+              "NetworkInterfaceId": "eni-12345678",
+              "NetworkInterfaceOwnerId": "123456789012",
+              "PrivateIpAddress": "10.0.1.241",
+              "PublicIp": "203.0.113.0"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes your Elastic IP addresses.",
+        "id": "ec2-describe-addresses-1",
+        "title": "To describe your Elastic IP addresses"
+      },
+      {
+        "input": {
+          "Filters": [
+            {
+              "Name": "domain",
+              "Values": [
+                "vpc"
+              ]
+            }
+          ]
+        },
+        "output": {
+          "Addresses": [
+            {
+              "AllocationId": "eipalloc-12345678",
+              "AssociationId": "eipassoc-12345678",
+              "Domain": "vpc",
+              "InstanceId": "i-1234567890abcdef0",
+              "NetworkInterfaceId": "eni-12345678",
+              "NetworkInterfaceOwnerId": "123456789012",
+              "PrivateIpAddress": "10.0.1.241",
+              "PublicIp": "203.0.113.0"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes your Elastic IP addresses for use with instances in a VPC.",
+        "id": "ec2-describe-addresses-2",
+        "title": "To describe your Elastic IP addresses for EC2-VPC"
+      },
+      {
+        "input": {
+          "Filters": [
+            {
+              "Name": "domain",
+              "Values": [
+                "standard"
+              ]
+            }
+          ]
+        },
+        "output": {
+          "Addresses": [
+            {
+              "Domain": "standard",
+              "InstanceId": "i-1234567890abcdef0",
+              "PublicIp": "198.51.100.0"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes your Elastic IP addresses for use with instances in EC2-Classic.",
+        "id": "ec2-describe-addresses-3",
+        "title": "To describe your Elastic IP addresses for EC2-Classic"
+      }
+    ],
+    "DescribeAvailabilityZones": [
+      {
+        "output": {
+          "AvailabilityZones": [
+            {
+              "Messages": [
+
+              ],
+              "RegionName": "us-east-1",
+              "State": "available",
+              "ZoneName": "us-east-1b"
+            },
+            {
+              "Messages": [
+
+              ],
+              "RegionName": "us-east-1",
+              "State": "available",
+              "ZoneName": "us-east-1c"
+            },
+            {
+              "Messages": [
+
+              ],
+              "RegionName": "us-east-1",
+              "State": "available",
+              "ZoneName": "us-east-1d"
+            },
+            {
+              "Messages": [
+
+              ],
+              "RegionName": "us-east-1",
+              "State": "available",
+              "ZoneName": "us-east-1e"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the Availability Zones that are available to you. The response includes Availability Zones only for the current region.",
+        "id": "ec2-describe-availability-zones-1",
+        "title": "To describe your Availability Zones"
+      }
+    ],
+    "DescribeCustomerGateways": [
+      {
+        "input": {
+          "CustomerGatewayIds": [
+            "cgw-0e11f167"
+          ]
+        },
+        "output": {
+          "CustomerGateways": [
+            {
+              "BgpAsn": "65534",
+              "CustomerGatewayId": "cgw-0e11f167",
+              "IpAddress": "12.1.2.3",
+              "State": "available",
+              "Type": "ipsec.1"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the specified customer gateway.",
+        "id": "ec2-describe-customer-gateways-1",
+        "title": "To describe a customer gateway"
+      }
+    ],
+    "DescribeDhcpOptions": [
+      {
+        "input": {
+          "DhcpOptionsIds": [
+            "dopt-d9070ebb"
+          ]
+        },
+        "output": {
+          "DhcpOptions": [
+            {
+              "DhcpConfigurations": [
+                {
+                  "Key": "domain-name-servers",
+                  "Values": [
+                    "10.2.5.2",
+                    "10.2.5.1"
+                  ]
+                }
+              ],
+              "DhcpOptionsId": "dopt-d9070ebb"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the specified DHCP options set.",
+        "id": "ec2-describe-dhcp-options-1",
+        "title": "To describe a DHCP options set"
+      }
+    ],
+    "DescribeInstanceAttribute": [
+      {
+        "input": {
+          "Attribute": "instanceType",
+          "InstanceId": "i-1234567890abcdef0"
+        },
+        "output": {
+          "InstanceId": "i-1234567890abcdef0",
+          "InstanceType": {
+            "Value": "t1.micro"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the instance type of the specified instance.\n",
+        "id": "to-describe-the-instance-type-1472712432132",
+        "title": "To describe the instance type"
+      },
+      {
+        "input": {
+          "Attribute": "disableApiTermination",
+          "InstanceId": "i-1234567890abcdef0"
+        },
+        "output": {
+          "DisableApiTermination": {
+            "Value": "false"
+          },
+          "InstanceId": "i-1234567890abcdef0"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the ``disableApiTermination`` attribute of the specified instance.\n",
+        "id": "to-describe-the-disableapitermination-attribute-1472712533466",
+        "title": "To describe the disableApiTermination attribute"
+      },
+      {
+        "input": {
+          "Attribute": "blockDeviceMapping",
+          "InstanceId": "i-1234567890abcdef0"
+        },
+        "output": {
+          "BlockDeviceMappings": [
+            {
+              "DeviceName": "/dev/sda1",
+              "Ebs": {
+                "AttachTime": "2013-05-17T22:42:34.000Z",
+                "DeleteOnTermination": true,
+                "Status": "attached",
+                "VolumeId": "vol-049df61146c4d7901"
+              }
+            },
+            {
+              "DeviceName": "/dev/sdf",
+              "Ebs": {
+                "AttachTime": "2013-09-10T23:07:00.000Z",
+                "DeleteOnTermination": false,
+                "Status": "attached",
+                "VolumeId": "vol-049df61146c4d7901"
+              }
+            }
+          ],
+          "InstanceId": "i-1234567890abcdef0"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the ``blockDeviceMapping`` attribute of the specified instance.\n",
+        "id": "to-describe-the-block-device-mapping-for-an-instance-1472712645423",
+        "title": "To describe the block device mapping for an instance"
+      }
+    ],
+    "DescribeInternetGateways": [
+      {
+        "input": {
+          "Filters": [
+            {
+              "Name": "attachment.vpc-id",
+              "Values": [
+                "vpc-a01106c2"
+              ]
+            }
+          ]
+        },
+        "output": {
+          "InternetGateways": [
+            {
+              "Attachments": [
+                {
+                  "State": "available",
+                  "VpcId": "vpc-a01106c2"
+                }
+              ],
+              "InternetGatewayId": "igw-c0a643a9",
+              "Tags": [
+
+              ]
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the Internet gateway for the specified VPC.",
+        "id": "ec2-describe-internet-gateways-1",
+        "title": "To describe the Internet gateway for a VPC"
+      }
+    ],
+    "DescribeKeyPairs": [
+      {
+        "input": {
+          "KeyNames": [
+            "my-key-pair"
+          ]
+        },
+        "output": {
+          "KeyPairs": [
+            {
+              "KeyFingerprint": "1f:51:ae:28:bf:89:e9:d8:1f:25:5d:37:2d:7d:b8:ca:9f:f5:f1:6f",
+              "KeyName": "my-key-pair"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example displays the fingerprint for the specified key.",
+        "id": "ec2-describe-key-pairs-1",
+        "title": "To display a key pair"
+      }
+    ],
+    "DescribeMovingAddresses": [
+      {
+        "output": {
+          "MovingAddressStatuses": [
+            {
+              "MoveStatus": "MovingToVpc",
+              "PublicIp": "198.51.100.0"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes all of your moving Elastic IP addresses.",
+        "id": "ec2-describe-moving-addresses-1",
+        "title": "To describe your moving addresses"
+      }
+    ],
+    "DescribeNatGateways": [
+      {
+        "input": {
+          "Filters": [
+            {
+              "Name": "vpc-id",
+              "Values": [
+                "vpc-1a2b3c4d"
+              ]
+            }
+          ]
+        },
+        "output": {
+          "NatGateways": [
+            {
+              "CreateTime": "2015-12-01T12:26:55.983Z",
+              "NatGatewayAddresses": [
+                {
+                  "AllocationId": "eipalloc-89c620ec",
+                  "NetworkInterfaceId": "eni-9dec76cd",
+                  "PrivateIp": "10.0.0.149",
+                  "PublicIp": "198.11.222.333"
+                }
+              ],
+              "NatGatewayId": "nat-05dba92075d71c408",
+              "State": "available",
+              "SubnetId": "subnet-847e4dc2",
+              "VpcId": "vpc-1a2b3c4d"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the NAT gateway for the specified VPC.",
+        "id": "ec2-describe-nat-gateways-1",
+        "title": "To describe a NAT gateway"
+      }
+    ],
+    "DescribeNetworkAcls": [
+      {
+        "input": {
+          "NetworkAclIds": [
+            "acl-5fb85d36"
+          ]
+        },
+        "output": {
+          "NetworkAcls": [
+            {
+              "Associations": [
+                {
+                  "NetworkAclAssociationId": "aclassoc-66ea5f0b",
+                  "NetworkAclId": "acl-9aeb5ef7",
+                  "SubnetId": "subnet-65ea5f08"
+                }
+              ],
+              "Entries": [
+                {
+                  "CidrBlock": "0.0.0.0/0",
+                  "Egress": true,
+                  "Protocol": "-1",
+                  "RuleAction": "deny",
+                  "RuleNumber": 32767
+                },
+                {
+                  "CidrBlock": "0.0.0.0/0",
+                  "Egress": false,
+                  "Protocol": "-1",
+                  "RuleAction": "deny",
+                  "RuleNumber": 32767
+                }
+              ],
+              "IsDefault": false,
+              "NetworkAclId": "acl-5fb85d36",
+              "Tags": [
+
+              ],
+              "VpcId": "vpc-a01106c2"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the specified network ACL.",
+        "id": "ec2-",
+        "title": "To describe a network ACL"
+      }
+    ],
+    "DescribeNetworkInterfaceAttribute": [
+      {
+        "input": {
+          "Attribute": "attachment",
+          "NetworkInterfaceId": "eni-686ea200"
+        },
+        "output": {
+          "Attachment": {
+            "AttachTime": "2015-05-21T20:02:20.000Z",
+            "AttachmentId": "eni-attach-43348162",
+            "DeleteOnTermination": true,
+            "DeviceIndex": 0,
+            "InstanceId": "i-1234567890abcdef0",
+            "InstanceOwnerId": "123456789012",
+            "Status": "attached"
+          },
+          "NetworkInterfaceId": "eni-686ea200"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the attachment attribute of the specified network interface.",
+        "id": "ec2-describe-network-interface-attribute-1",
+        "title": "To describe the attachment attribute of a network interface"
+      },
+      {
+        "input": {
+          "Attribute": "description",
+          "NetworkInterfaceId": "eni-686ea200"
+        },
+        "output": {
+          "Description": {
+            "Value": "My description"
+          },
+          "NetworkInterfaceId": "eni-686ea200"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the description attribute of the specified network interface.",
+        "id": "ec2-describe-network-interface-attribute-2",
+        "title": "To describe the description attribute of a network interface"
+      },
+      {
+        "input": {
+          "Attribute": "groupSet",
+          "NetworkInterfaceId": "eni-686ea200"
+        },
+        "output": {
+          "Groups": [
+            {
+              "GroupId": "sg-903004f8",
+              "GroupName": "my-security-group"
+            }
+          ],
+          "NetworkInterfaceId": "eni-686ea200"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the groupSet attribute of the specified network interface.",
+        "id": "ec2-describe-network-interface-attribute-3",
+        "title": "To describe the groupSet attribute of a network interface"
+      },
+      {
+        "input": {
+          "Attribute": "sourceDestCheck",
+          "NetworkInterfaceId": "eni-686ea200"
+        },
+        "output": {
+          "NetworkInterfaceId": "eni-686ea200",
+          "SourceDestCheck": {
+            "Value": true
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the sourceDestCheck attribute of the specified network interface.",
+        "id": "ec2-describe-network-interface-attribute-4",
+        "title": "To describe the sourceDestCheck attribute of a network interface"
+      }
+    ],
+    "DescribeNetworkInterfaces": [
+      {
+        "input": {
+          "NetworkInterfaceIds": [
+            "eni-e5aa89a3"
+          ]
+        },
+        "output": {
+          "NetworkInterfaces": [
+            {
+              "Association": {
+                "AssociationId": "eipassoc-0fbb766a",
+                "IpOwnerId": "123456789012",
+                "PublicDnsName": "ec2-203-0-113-12.compute-1.amazonaws.com",
+                "PublicIp": "203.0.113.12"
+              },
+              "Attachment": {
+                "AttachTime": "2013-11-30T23:36:42.000Z",
+                "AttachmentId": "eni-attach-66c4350a",
+                "DeleteOnTermination": false,
+                "DeviceIndex": 1,
+                "InstanceId": "i-1234567890abcdef0",
+                "InstanceOwnerId": "123456789012",
+                "Status": "attached"
+              },
+              "AvailabilityZone": "us-east-1d",
+              "Description": "my network interface",
+              "Groups": [
+                {
+                  "GroupId": "sg-8637d3e3",
+                  "GroupName": "default"
+                }
+              ],
+              "MacAddress": "02:2f:8f:b0:cf:75",
+              "NetworkInterfaceId": "eni-e5aa89a3",
+              "OwnerId": "123456789012",
+              "PrivateDnsName": "ip-10-0-1-17.ec2.internal",
+              "PrivateIpAddress": "10.0.1.17",
+              "PrivateIpAddresses": [
+                {
+                  "Association": {
+                    "AssociationId": "eipassoc-0fbb766a",
+                    "IpOwnerId": "123456789012",
+                    "PublicDnsName": "ec2-203-0-113-12.compute-1.amazonaws.com",
+                    "PublicIp": "203.0.113.12"
+                  },
+                  "Primary": true,
+                  "PrivateDnsName": "ip-10-0-1-17.ec2.internal",
+                  "PrivateIpAddress": "10.0.1.17"
+                }
+              ],
+              "RequesterManaged": false,
+              "SourceDestCheck": true,
+              "Status": "in-use",
+              "SubnetId": "subnet-b61f49f0",
+              "TagSet": [
+
+              ],
+              "VpcId": "vpc-a01106c2"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "",
+        "id": "ec2-describe-network-interfaces-1",
+        "title": "To describe a network interface"
+      }
+    ],
+    "DescribeRegions": [
+      {
+        "output": {
+          "Regions": [
+            {
+              "Endpoint": "ec2.ap-south-1.amazonaws.com",
+              "RegionName": "ap-south-1"
+            },
+            {
+              "Endpoint": "ec2.eu-west-1.amazonaws.com",
+              "RegionName": "eu-west-1"
+            },
+            {
+              "Endpoint": "ec2.ap-southeast-1.amazonaws.com",
+              "RegionName": "ap-southeast-1"
+            },
+            {
+              "Endpoint": "ec2.ap-southeast-2.amazonaws.com",
+              "RegionName": "ap-southeast-2"
+            },
+            {
+              "Endpoint": "ec2.eu-central-1.amazonaws.com",
+              "RegionName": "eu-central-1"
+            },
+            {
+              "Endpoint": "ec2.ap-northeast-2.amazonaws.com",
+              "RegionName": "ap-northeast-2"
+            },
+            {
+              "Endpoint": "ec2.ap-northeast-1.amazonaws.com",
+              "RegionName": "ap-northeast-1"
+            },
+            {
+              "Endpoint": "ec2.us-east-1.amazonaws.com",
+              "RegionName": "us-east-1"
+            },
+            {
+              "Endpoint": "ec2.sa-east-1.amazonaws.com",
+              "RegionName": "sa-east-1"
+            },
+            {
+              "Endpoint": "ec2.us-west-1.amazonaws.com",
+              "RegionName": "us-west-1"
+            },
+            {
+              "Endpoint": "ec2.us-west-2.amazonaws.com",
+              "RegionName": "us-west-2"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes all the regions that are available to you.",
+        "id": "ec2-describe-regions-1",
+        "title": "To describe your regions"
+      }
+    ],
+    "DescribeRouteTables": [
+      {
+        "input": {
+          "RouteTableIds": [
+            "rtb-1f382e7d"
+          ]
+        },
+        "output": {
+          "RouteTables": [
+            {
+              "Associations": [
+                {
+                  "Main": true,
+                  "RouteTableAssociationId": "rtbassoc-d8ccddba",
+                  "RouteTableId": "rtb-1f382e7d"
+                }
+              ],
+              "PropagatingVgws": [
+
+              ],
+              "RouteTableId": "rtb-1f382e7d",
+              "Routes": [
+                {
+                  "DestinationCidrBlock": "10.0.0.0/16",
+                  "GatewayId": "local",
+                  "State": "active"
+                }
+              ],
+              "Tags": [
+
+              ],
+              "VpcId": "vpc-a01106c2"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the specified route table.",
+        "id": "ec2-describe-route-tables-1",
+        "title": "To describe a route table"
+      }
+    ],
+    "DescribeScheduledInstanceAvailability": [
+      {
+        "input": {
+          "FirstSlotStartTimeRange": {
+            "EarliestTime": "2016-01-31T00:00:00Z",
+            "LatestTime": "2016-01-31T04:00:00Z"
+          },
+          "Recurrence": {
+            "Frequency": "Weekly",
+            "Interval": 1,
+            "OccurrenceDays": [
+              1
+            ]
+          }
+        },
+        "output": {
+          "ScheduledInstanceAvailabilitySet": [
+            {
+              "AvailabilityZone": "us-west-2b",
+              "AvailableInstanceCount": 20,
+              "FirstSlotStartTime": "2016-01-31T00:00:00Z",
+              "HourlyPrice": "0.095",
+              "InstanceType": "c4.large",
+              "MaxTermDurationInDays": 366,
+              "MinTermDurationInDays": 366,
+              "NetworkPlatform": "EC2-VPC",
+              "Platform": "Linux/UNIX",
+              "PurchaseToken": "eyJ2IjoiMSIsInMiOjEsImMiOi...",
+              "Recurrence": {
+                "Frequency": "Weekly",
+                "Interval": 1,
+                "OccurrenceDaySet": [
+                  1
+                ],
+                "OccurrenceRelativeToEnd": false
+              },
+              "SlotDurationInHours": 23,
+              "TotalScheduledInstanceHours": 1219
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes a schedule that occurs every week on Sunday, starting on the specified date. Note that the output contains a single schedule as an example.",
+        "id": "ec2-describe-scheduled-instance-availability-1",
+        "title": "To describe an available schedule"
+      }
+    ],
+    "DescribeScheduledInstances": [
+      {
+        "input": {
+          "ScheduledInstanceIds": [
+            "sci-1234-1234-1234-1234-123456789012"
+          ]
+        },
+        "output": {
+          "ScheduledInstanceSet": [
+            {
+              "AvailabilityZone": "us-west-2b",
+              "CreateDate": "2016-01-25T21:43:38.612Z",
+              "HourlyPrice": "0.095",
+              "InstanceCount": 1,
+              "InstanceType": "c4.large",
+              "NetworkPlatform": "EC2-VPC",
+              "NextSlotStartTime": "2016-01-31T09:00:00Z",
+              "Platform": "Linux/UNIX",
+              "Recurrence": {
+                "Frequency": "Weekly",
+                "Interval": 1,
+                "OccurrenceDaySet": [
+                  1
+                ],
+                "OccurrenceRelativeToEnd": false,
+                "OccurrenceUnit": ""
+              },
+              "ScheduledInstanceId": "sci-1234-1234-1234-1234-123456789012",
+              "SlotDurationInHours": 32,
+              "TermEndDate": "2017-01-31T09:00:00Z",
+              "TermStartDate": "2016-01-31T09:00:00Z",
+              "TotalScheduledInstanceHours": 1696
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the specified Scheduled Instance.",
+        "id": "ec2-describe-scheduled-instances-1",
+        "title": "To describe your Scheduled Instances"
+      }
+    ],
+    "DescribeSnapshotAttribute": [
+      {
+        "input": {
+          "Attribute": "createVolumePermission",
+          "SnapshotId": "snap-066877671789bd71b"
+        },
+        "output": {
+          "CreateVolumePermissions": [
+
+          ],
+          "SnapshotId": "snap-066877671789bd71b"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the ``createVolumePermission`` attribute on a snapshot with the snapshot ID of ``snap-066877671789bd71b``.",
+        "id": "to-describe-snapshot-attributes-1472503199736",
+        "title": "To describe snapshot attributes"
+      }
+    ],
+    "DescribeSnapshots": [
+      {
+        "input": {
+          "SnapshotIds": [
+            "snap-1234567890abcdef0"
+          ]
+        },
+        "output": {
+          "NextToken": "",
+          "Snapshots": [
+            {
+              "Description": "This is my snapshot.",
+              "OwnerId": "012345678910",
+              "Progress": "100%",
+              "SnapshotId": "snap-1234567890abcdef0",
+              "StartTime": "2014-02-28T21:28:32.000Z",
+              "State": "completed",
+              "VolumeId": "vol-049df61146c4d7901",
+              "VolumeSize": 8
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes a snapshot with the snapshot ID of ``snap-1234567890abcdef0``.",
+        "id": "to-describe-a-snapshot-1472503807850",
+        "title": "To describe a snapshot"
+      },
+      {
+        "input": {
+          "Filters": [
+            {
+              "Name": "status",
+              "Values": [
+                "pending"
+              ]
+            }
+          ],
+          "OwnerIds": [
+            "012345678910"
+          ]
+        },
+        "output": {
+          "NextToken": "",
+          "Snapshots": [
+            {
+              "Description": "This is my copied snapshot.",
+              "OwnerId": "012345678910",
+              "Progress": "87%",
+              "SnapshotId": "snap-066877671789bd71b",
+              "StartTime": "2014-02-28T21:37:27.000Z",
+              "State": "pending",
+              "VolumeId": "vol-1234567890abcdef0",
+              "VolumeSize": 8
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes all snapshots owned by the ID 012345678910 that are in the ``pending`` status.",
+        "id": "to-describe-snapshots-using-filters-1472503929793",
+        "title": "To describe snapshots using filters"
+      }
+    ],
+    "DescribeSpotDatafeedSubscription": [
+      {
+        "output": {
+          "SpotDatafeedSubscription": {
+            "Bucket": "my-s3-bucket",
+            "OwnerId": "123456789012",
+            "Prefix": "spotdata",
+            "State": "Active"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the Spot Instance datafeed subscription for your AWS account.",
+        "id": "ec2-describe-spot-datafeed-subscription-1",
+        "title": "To describe the datafeed for your AWS account"
+      }
+    ],
+    "DescribeSpotFleetInstances": [
+      {
+        "input": {
+          "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE"
+        },
+        "output": {
+          "ActiveInstances": [
+            {
+              "InstanceId": "i-1234567890abcdef0",
+              "InstanceType": "m3.medium",
+              "SpotInstanceRequestId": "sir-08b93456"
+            }
+          ],
+          "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example lists the Spot Instances associated with the specified Spot fleet.",
+        "id": "ec2-describe-spot-fleet-instances-1",
+        "title": "To describe the Spot Instances associated with a Spot fleet"
+      }
+    ],
+    "DescribeSpotFleetRequestHistory": [
+      {
+        "input": {
+          "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE",
+          "StartTime": "2015-05-26T00:00:00Z"
+        },
+        "output": {
+          "HistoryRecords": [
+            {
+              "EventInformation": {
+                "EventSubType": "submitted"
+              },
+              "EventType": "fleetRequestChange",
+              "Timestamp": "2015-05-26T23:17:20.697Z"
+            },
+            {
+              "EventInformation": {
+                "EventSubType": "active"
+              },
+              "EventType": "fleetRequestChange",
+              "Timestamp": "2015-05-26T23:17:20.873Z"
+            },
+            {
+              "EventInformation": {
+                "EventSubType": "launched",
+                "InstanceId": "i-1234567890abcdef0"
+              },
+              "EventType": "instanceChange",
+              "Timestamp": "2015-05-26T23:21:21.712Z"
+            },
+            {
+              "EventInformation": {
+                "EventSubType": "launched",
+                "InstanceId": "i-1234567890abcdef1"
+              },
+              "EventType": "instanceChange",
+              "Timestamp": "2015-05-26T23:21:21.816Z"
+            }
+          ],
+          "NextToken": "CpHNsscimcV5oH7bSbub03CI2Qms5+ypNpNm+53MNlR0YcXAkp0xFlfKf91yVxSExmbtma3awYxMFzNA663ZskT0AHtJ6TCb2Z8bQC2EnZgyELbymtWPfpZ1ZbauVg+P+TfGlWxWWB/Vr5dk5d4LfdgA/DRAHUrYgxzrEXAMPLE=",
+          "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE",
+          "StartTime": "2015-05-26T00:00:00Z"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example returns the history for the specified Spot fleet starting at the specified time.",
+        "id": "ec2-describe-spot-fleet-request-history-1",
+        "title": "To describe Spot fleet history"
+      }
+    ],
+    "DescribeSpotFleetRequests": [
+      {
+        "input": {
+          "SpotFleetRequestIds": [
+            "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE"
+          ]
+        },
+        "output": {
+          "SpotFleetRequestConfigs": [
+            {
+              "SpotFleetRequestConfig": {
+                "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role",
+                "LaunchSpecifications": [
+                  {
+                    "EbsOptimized": false,
+                    "ImageId": "ami-1a2b3c4d",
+                    "InstanceType": "cc2.8xlarge",
+                    "NetworkInterfaces": [
+                      {
+                        "AssociatePublicIpAddress": true,
+                        "DeleteOnTermination": false,
+                        "DeviceIndex": 0,
+                        "SecondaryPrivateIpAddressCount": 0,
+                        "SubnetId": "subnet-a61dafcf"
+                      }
+                    ]
+                  },
+                  {
+                    "EbsOptimized": false,
+                    "ImageId": "ami-1a2b3c4d",
+                    "InstanceType": "r3.8xlarge",
+                    "NetworkInterfaces": [
+                      {
+                        "AssociatePublicIpAddress": true,
+                        "DeleteOnTermination": false,
+                        "DeviceIndex": 0,
+                        "SecondaryPrivateIpAddressCount": 0,
+                        "SubnetId": "subnet-a61dafcf"
+                      }
+                    ]
+                  }
+                ],
+                "SpotPrice": "0.05",
+                "TargetCapacity": 20
+              },
+              "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE",
+              "SpotFleetRequestState": "active"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the specified Spot fleet request.",
+        "id": "ec2-describe-spot-fleet-requests-1",
+        "title": "To describe a Spot fleet request"
+      }
+    ],
+    "DescribeSpotInstanceRequests": [
+      {
+        "input": {
+          "SpotInstanceRequestIds": [
+            "sir-08b93456"
+          ]
+        },
+        "output": {
+          "SpotInstanceRequests": [
+            {
+              "CreateTime": "2014-04-30T18:14:55.000Z",
+              "InstanceId": "i-1234567890abcdef0",
+              "LaunchSpecification": {
+                "BlockDeviceMappings": [
+                  {
+                    "DeviceName": "/dev/sda1",
+                    "Ebs": {
+                      "DeleteOnTermination": true,
+                      "VolumeSize": 8,
+                      "VolumeType": "standard"
+                    }
+                  }
+                ],
+                "EbsOptimized": false,
+                "ImageId": "ami-7aba833f",
+                "InstanceType": "m1.small",
+                "KeyName": "my-key-pair",
+                "SecurityGroups": [
+                  {
+                    "GroupId": "sg-e38f24a7",
+                    "GroupName": "my-security-group"
+                  }
+                ]
+              },
+              "LaunchedAvailabilityZone": "us-west-1b",
+              "ProductDescription": "Linux/UNIX",
+              "SpotInstanceRequestId": "sir-08b93456",
+              "SpotPrice": "0.010000",
+              "State": "active",
+              "Status": {
+                "Code": "fulfilled",
+                "Message": "Your Spot request is fulfilled.",
+                "UpdateTime": "2014-04-30T18:16:21.000Z"
+              },
+              "Type": "one-time"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the specified Spot Instance request.",
+        "id": "ec2-describe-spot-instance-requests-1",
+        "title": "To describe a Spot Instance request"
+      }
+    ],
+    "DescribeSpotPriceHistory": [
+      {
+        "input": {
+          "EndTime": "2014-01-06T08:09:10",
+          "InstanceTypes": [
+            "m1.xlarge"
+          ],
+          "ProductDescriptions": [
+            "Linux/UNIX (Amazon VPC)"
+          ],
+          "StartTime": "2014-01-06T07:08:09"
+        },
+        "output": {
+          "SpotPriceHistory": [
+            {
+              "AvailabilityZone": "us-west-1a",
+              "InstanceType": "m1.xlarge",
+              "ProductDescription": "Linux/UNIX (Amazon VPC)",
+              "SpotPrice": "0.080000",
+              "Timestamp": "2014-01-06T04:32:53.000Z"
+            },
+            {
+              "AvailabilityZone": "us-west-1c",
+              "InstanceType": "m1.xlarge",
+              "ProductDescription": "Linux/UNIX (Amazon VPC)",
+              "SpotPrice": "0.080000",
+              "Timestamp": "2014-01-05T11:28:26.000Z"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example returns the Spot Price history for m1.xlarge, Linux/UNIX (Amazon VPC) instances for a particular day in January.",
+        "id": "ec2-describe-spot-price-history-1",
+        "title": "To describe Spot price history for Linux/UNIX (Amazon VPC)"
+      }
+    ],
+    "DescribeSubnets": [
+      {
+        "input": {
+          "Filters": [
+            {
+              "Name": "vpc-id",
+              "Values": [
+                "vpc-a01106c2"
+              ]
+            }
+          ]
+        },
+        "output": {
+          "Subnets": [
+            {
+              "AvailabilityZone": "us-east-1c",
+              "AvailableIpAddressCount": 251,
+              "CidrBlock": "10.0.1.0/24",
+              "DefaultForAz": false,
+              "MapPublicIpOnLaunch": false,
+              "State": "available",
+              "SubnetId": "subnet-9d4a7b6c",
+              "VpcId": "vpc-a01106c2"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the subnets for the specified VPC.",
+        "id": "ec2-describe-subnets-1",
+        "title": "To describe the subnets for a VPC"
+      }
+    ],
+    "DescribeTags": [
+      {
+        "input": {
+          "Filters": [
+            {
+              "Name": "resource-id",
+              "Values": [
+                "i-1234567890abcdef8"
+              ]
+            }
+          ]
+        },
+        "output": {
+          "Tags": [
+            {
+              "Key": "Stack",
+              "ResourceId": "i-1234567890abcdef8",
+              "ResourceType": "instance",
+              "Value": "test"
+            },
+            {
+              "Key": "Name",
+              "ResourceId": "i-1234567890abcdef8",
+              "ResourceType": "instance",
+              "Value": "Beta Server"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the tags for the specified instance.",
+        "id": "ec2-describe-tags-1",
+        "title": "To describe the tags for a single resource"
+      }
+    ],
+    "DescribeVolumeAttribute": [
+      {
+        "input": {
+          "Attribute": "autoEnableIO",
+          "VolumeId": "vol-049df61146c4d7901"
+        },
+        "output": {
+          "AutoEnableIO": {
+            "Value": false
+          },
+          "VolumeId": "vol-049df61146c4d7901"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the ``autoEnableIo`` attribute of the volume with the ID ``vol-049df61146c4d7901``.",
+        "id": "to-describe-a-volume-attribute-1472505773492",
+        "title": "To describe a volume attribute"
+      }
+    ],
+    "DescribeVolumeStatus": [
+      {
+        "input": {
+          "VolumeIds": [
+            "vol-1234567890abcdef0"
+          ]
+        },
+        "output": {
+          "VolumeStatuses": [
+            {
+              "Actions": [
+
+              ],
+              "AvailabilityZone": "us-east-1a",
+              "Events": [
+
+              ],
+              "VolumeId": "vol-1234567890abcdef0",
+              "VolumeStatus": {
+                "Details": [
+                  {
+                    "Name": "io-enabled",
+                    "Status": "passed"
+                  },
+                  {
+                    "Name": "io-performance",
+                    "Status": "not-applicable"
+                  }
+                ],
+                "Status": "ok"
+              }
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the status for the volume ``vol-1234567890abcdef0``.",
+        "id": "to-describe-the-status-of-a-single-volume-1472507016193",
+        "title": "To describe the status of a single volume"
+      },
+      {
+        "input": {
+          "Filters": [
+            {
+              "Name": "volume-status.status",
+              "Values": [
+                "impaired"
+              ]
+            }
+          ]
+        },
+        "output": {
+          "VolumeStatuses": [
+
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the status for all volumes that are impaired. In this example output, there are no impaired volumes.",
+        "id": "to-describe-the-status-of-impaired-volumes-1472507239821",
+        "title": "To describe the status of impaired volumes"
+      }
+    ],
+    "DescribeVolumes": [
+      {
+        "input": {
+        },
+        "output": {
+          "NextToken": "",
+          "Volumes": [
+            {
+              "Attachments": [
+                {
+                  "AttachTime": "2013-12-18T22:35:00.000Z",
+                  "DeleteOnTermination": true,
+                  "Device": "/dev/sda1",
+                  "InstanceId": "i-1234567890abcdef0",
+                  "State": "attached",
+                  "VolumeId": "vol-049df61146c4d7901"
+                }
+              ],
+              "AvailabilityZone": "us-east-1a",
+              "CreateTime": "2013-12-18T22:35:00.084Z",
+              "Size": 8,
+              "SnapshotId": "snap-1234567890abcdef0",
+              "State": "in-use",
+              "VolumeId": "vol-049df61146c4d7901",
+              "VolumeType": "standard"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes all of your volumes in the default region.",
+        "id": "to-describe-all-volumes-1472506358883",
+        "title": "To describe all volumes"
+      },
+      {
+        "input": {
+          "Filters": [
+            {
+              "Name": "attachment.instance-id",
+              "Values": [
+                "i-1234567890abcdef0"
+              ]
+            },
+            {
+              "Name": "attachment.delete-on-termination",
+              "Values": [
+                "true"
+              ]
+            }
+          ]
+        },
+        "output": {
+          "Volumes": [
+            {
+              "Attachments": [
+                {
+                  "AttachTime": "2013-12-18T22:35:00.000Z",
+                  "DeleteOnTermination": true,
+                  "Device": "/dev/sda1",
+                  "InstanceId": "i-1234567890abcdef0",
+                  "State": "attached",
+                  "VolumeId": "vol-049df61146c4d7901"
+                }
+              ],
+              "AvailabilityZone": "us-east-1a",
+              "CreateTime": "2013-12-18T22:35:00.084Z",
+              "Size": 8,
+              "SnapshotId": "snap-1234567890abcdef0",
+              "State": "in-use",
+              "VolumeId": "vol-049df61146c4d7901",
+              "VolumeType": "standard"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes all volumes that are both attached to the instance with the ID i-1234567890abcdef0 and set to delete when the instance terminates.",
+        "id": "to-describe-volumes-that-are-attached-to-a-specific-instance-1472506613578",
+        "title": "To describe volumes that are attached to a specific instance"
+      }
+    ],
+    "DescribeVpcAttribute": [
+      {
+        "input": {
+          "Attribute": "enableDnsSupport",
+          "VpcId": "vpc-a01106c2"
+        },
+        "output": {
+          "EnableDnsSupport": {
+            "Value": true
+          },
+          "VpcId": "vpc-a01106c2"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the enableDnsSupport attribute. This attribute indicates whether DNS resolution is enabled for the VPC. If this attribute is true, the Amazon DNS server resolves DNS hostnames for your instances to their corresponding IP addresses; otherwise, it does not.",
+        "id": "ec2-describe-vpc-attribute-1",
+        "title": "To describe the enableDnsSupport attribute"
+      },
+      {
+        "input": {
+          "Attribute": "enableDnsHostnames",
+          "VpcId": "vpc-a01106c2"
+        },
+        "output": {
+          "EnableDnsHostnames": {
+            "Value": true
+          },
+          "VpcId": "vpc-a01106c2"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the enableDnsHostnames attribute. This attribute indicates whether the instances launched in the VPC get DNS hostnames. If this attribute is true, instances in the VPC get DNS hostnames; otherwise, they do not.",
+        "id": "ec2-describe-vpc-attribute-2",
+        "title": "To describe the enableDnsHostnames attribute"
+      }
+    ],
+    "DescribeVpcs": [
+      {
+        "input": {
+          "VpcIds": [
+            "vpc-a01106c2"
+          ]
+        },
+        "output": {
+          "Vpcs": [
+            {
+              "CidrBlock": "10.0.0.0/16",
+              "DhcpOptionsId": "dopt-7a8b9c2d",
+              "InstanceTenancy": "default",
+              "IsDefault": false,
+              "State": "available",
+              "Tags": [
+                {
+                  "Key": "Name",
+                  "Value": "MyVPC"
+                }
+              ],
+              "VpcId": "vpc-a01106c2"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the specified VPC.",
+        "id": "ec2-describe-vpcs-1",
+        "title": "To describe a VPC"
+      }
+    ],
+    "DetachInternetGateway": [
+      {
+        "input": {
+          "InternetGatewayId": "igw-c0a643a9",
+          "VpcId": "vpc-a01106c2"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example detaches the specified Internet gateway from the specified VPC.",
+        "id": "ec2-detach-internet-gateway-1",
+        "title": "To detach an Internet gateway from a VPC"
+      }
+    ],
+    "DetachNetworkInterface": [
+      {
+        "input": {
+          "AttachmentId": "eni-attach-66c4350a"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example detaches the specified network interface from its attached instance.",
+        "id": "ec2-detach-network-interface-1",
+        "title": "To detach a network interface from an instance"
+      }
+    ],
+    "DetachVolume": [
+      {
+        "input": {
+          "VolumeId": "vol-1234567890abcdef0"
+        },
+        "output": {
+          "AttachTime": "2014-02-27T19:23:06.000Z",
+          "Device": "/dev/sdb",
+          "InstanceId": "i-1234567890abcdef0",
+          "State": "detaching",
+          "VolumeId": "vol-049df61146c4d7901"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example detaches the volume (``vol-049df61146c4d7901``) from the instance it is attached to.",
+        "id": "to-detach-a-volume-from-an-instance-1472507977694",
+        "title": "To detach a volume from an instance"
+      }
+    ],
+    "DisableVgwRoutePropagation": [
+      {
+        "input": {
+          "GatewayId": "vgw-9a4cacf3",
+          "RouteTableId": "rtb-22574640"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example disables the specified virtual private gateway from propagating static routes to the specified route table.",
+        "id": "ec2-disable-vgw-route-propagation-1",
+        "title": "To disable route propagation"
+      }
+    ],
+    "DisassociateAddress": [
+      {
+        "input": {
+          "AssociationId": "eipassoc-2bebb745"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example disassociates an Elastic IP address from an instance in a VPC.",
+        "id": "ec2-disassociate-address-1",
+        "title": "To disassociate an Elastic IP address in EC2-VPC"
+      },
+      {
+        "input": {
+          "PublicIp": "198.51.100.0"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example disassociates an Elastic IP address from an instance in EC2-Classic.",
+        "id": "ec2-disassociate-address-2",
+        "title": "To disassociate an Elastic IP addresses in EC2-Classic"
+      }
+    ],
+    "DisassociateRouteTable": [
+      {
+        "input": {
+          "AssociationId": "rtbassoc-781d0d1a"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example disassociates the specified route table from its associated subnet.",
+        "id": "ec2-disassociate-route-table-1",
+        "title": "To disassociate a route table"
+      }
+    ],
+    "EnableVgwRoutePropagation": [
+      {
+        "input": {
+          "GatewayId": "vgw-9a4cacf3",
+          "RouteTableId": "rtb-22574640"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example enables the specified virtual private gateway to propagate static routes to the specified route table.",
+        "id": "ec2-enable-vgw-route-propagation-1",
+        "title": "To enable route propagation"
+      }
+    ],
+    "EnableVolumeIO": [
+      {
+        "input": {
+          "VolumeId": "vol-1234567890abcdef0"
+        },
+        "output": {
+          "Return": true
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example enables I/O on volume ``vol-1234567890abcdef0``.",
+        "id": "to-enable-io-for-a-volume-1472508114867",
+        "title": "To enable I/O for a volume"
+      }
+    ],
+    "ModifyNetworkInterfaceAttribute": [
+      {
+        "input": {
+          "Attachment": {
+            "AttachmentId": "eni-attach-43348162",
+            "DeleteOnTermination": false
+          },
+          "NetworkInterfaceId": "eni-686ea200"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example modifies the attachment attribute of the specified network interface.",
+        "id": "ec2-modify-network-interface-attribute-1",
+        "title": "To modify the attachment attribute of a network interface"
+      },
+      {
+        "input": {
+          "Description": "My description",
+          "NetworkInterfaceId": "eni-686ea200"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example modifies the description attribute of the specified network interface.",
+        "id": "ec2-modify-network-interface-attribute-2",
+        "title": "To modify the description attribute of a network interface"
+      },
+      {
+        "input": {
+          "Groups": [
+            "sg-903004f8",
+            "sg-1a2b3c4d"
+          ],
+          "NetworkInterfaceId": "eni-686ea200"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example command modifies the groupSet attribute of the specified network interface.",
+        "id": "ec2-modify-network-interface-attribute-3",
+        "title": "To modify the groupSet attribute of a network interface"
+      },
+      {
+        "input": {
+          "NetworkInterfaceId": "eni-686ea200",
+          "SourceDestCheck": false
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example command modifies the sourceDestCheck attribute of the specified network interface.",
+        "id": "ec2-modify-network-interface-attribute-4",
+        "title": "To modify the sourceDestCheck attribute of a network interface"
+      }
+    ],
+    "ModifySnapshotAttribute": [
+      {
+        "input": {
+          "Attribute": "createVolumePermission",
+          "OperationType": "remove",
+          "SnapshotId": "snap-1234567890abcdef0",
+          "UserIds": [
+            "123456789012"
+          ]
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example modifies snapshot ``snap-1234567890abcdef0`` to remove the create volume permission for a user with the account ID ``123456789012``. If the command succeeds, no output is returned.",
+        "id": "to-modify-a-snapshot-attribute-1472508385907",
+        "title": "To modify a snapshot attribute"
+      },
+      {
+        "input": {
+          "Attribute": "createVolumePermission",
+          "GroupNames": [
+            "all"
+          ],
+          "OperationType": "add",
+          "SnapshotId": "snap-1234567890abcdef0"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example makes the snapshot ``snap-1234567890abcdef0`` public.",
+        "id": "to-make-a-snapshot-public-1472508470529",
+        "title": "To make a snapshot public"
+      }
+    ],
+    "ModifySpotFleetRequest": [
+      {
+        "input": {
+          "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE",
+          "TargetCapacity": 20
+        },
+        "output": {
+          "Return": true
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example increases the target capacity of the specified Spot fleet request.",
+        "id": "ec2-modify-spot-fleet-request-1",
+        "title": "To increase the target capacity of a Spot fleet request"
+      },
+      {
+        "input": {
+          "ExcessCapacityTerminationPolicy": "NoTermination ",
+          "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE",
+          "TargetCapacity": 10
+        },
+        "output": {
+          "Return": true
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example decreases the target capacity of the specified Spot fleet request without terminating any Spot Instances as a result.",
+        "id": "ec2-modify-spot-fleet-request-2",
+        "title": "To decrease the target capacity of a Spot fleet request"
+      }
+    ],
+    "ModifySubnetAttribute": [
+      {
+        "input": {
+          "MapPublicIpOnLaunch": true,
+          "SubnetId": "subnet-1a2b3c4d"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example modifies the specified subnet so that all instances launched into this subnet are assigned a public IP address.",
+        "id": "ec2-modify-subnet-attribute-1",
+        "title": "To change a subnet's public IP addressing behavior"
+      }
+    ],
+    "ModifyVolumeAttribute": [
+      {
+        "input": {
+          "AutoEnableIO": {
+            "Value": true
+          },
+          "DryRun": true,
+          "VolumeId": "vol-1234567890abcdef0"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example sets the ``autoEnableIo`` attribute of the volume with the ID ``vol-1234567890abcdef0`` to ``true``. If the command succeeds, no output is returned.",
+        "id": "to-modify-a-volume-attribute-1472508596749",
+        "title": "To modify a volume attribute"
+      }
+    ],
+    "ModifyVpcAttribute": [
+      {
+        "input": {
+          "EnableDnsSupport": {
+            "Value": false
+          },
+          "VpcId": "vpc-a01106c2"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example modifies the enableDnsSupport attribute. This attribute indicates whether DNS resolution is enabled for the VPC. If this attribute is true, the Amazon DNS server resolves DNS hostnames for instances in the VPC to their corresponding IP addresses; otherwise, it does not.",
+        "id": "ec2-modify-vpc-attribute-1",
+        "title": "To modify the enableDnsSupport attribute"
+      },
+      {
+        "input": {
+          "EnableDnsHostnames": {
+            "Value": false
+          },
+          "VpcId": "vpc-a01106c2"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example modifies the enableDnsHostnames attribute. This attribute indicates whether instances launched in the VPC get DNS hostnames. If this attribute is true, instances in the VPC get DNS hostnames; otherwise, they do not.",
+        "id": "ec2-modify-vpc-attribute-2",
+        "title": "To modify the enableDnsHostnames attribute"
+      }
+    ],
+    "MoveAddressToVpc": [
+      {
+        "input": {
+          "PublicIp": "54.123.4.56"
+        },
+        "output": {
+          "Status": "MoveInProgress"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example moves the specified Elastic IP address to the EC2-VPC platform.",
+        "id": "ec2-move-address-to-vpc-1",
+        "title": "To move an address to EC2-VPC"
+      }
+    ],
+    "PurchaseScheduledInstances": [
+      {
+        "input": {
+          "PurchaseRequests": [
+            {
+              "InstanceCount": 1,
+              "PurchaseToken": "eyJ2IjoiMSIsInMiOjEsImMiOi..."
+            }
+          ]
+        },
+        "output": {
+          "ScheduledInstanceSet": [
+            {
+              "AvailabilityZone": "us-west-2b",
+              "CreateDate": "2016-01-25T21:43:38.612Z",
+              "HourlyPrice": "0.095",
+              "InstanceCount": 1,
+              "InstanceType": "c4.large",
+              "NetworkPlatform": "EC2-VPC",
+              "NextSlotStartTime": "2016-01-31T09:00:00Z",
+              "Platform": "Linux/UNIX",
+              "Recurrence": {
+                "Frequency": "Weekly",
+                "Interval": 1,
+                "OccurrenceDaySet": [
+                  1
+                ],
+                "OccurrenceRelativeToEnd": false,
+                "OccurrenceUnit": ""
+              },
+              "ScheduledInstanceId": "sci-1234-1234-1234-1234-123456789012",
+              "SlotDurationInHours": 32,
+              "TermEndDate": "2017-01-31T09:00:00Z",
+              "TermStartDate": "2016-01-31T09:00:00Z",
+              "TotalScheduledInstanceHours": 1696
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example purchases a Scheduled Instance.",
+        "id": "ec2-purchase-scheduled-instances-1",
+        "title": "To purchase a Scheduled Instance"
+      }
+    ],
+    "ReleaseAddress": [
+      {
+        "input": {
+          "AllocationId": "eipalloc-64d5890a"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example releases an Elastic IP address for use with instances in a VPC.",
+        "id": "ec2-release-address-1",
+        "title": "To release an Elastic IP address for EC2-VPC"
+      },
+      {
+        "input": {
+          "PublicIp": "198.51.100.0"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example releases an Elastic IP address for use with instances in EC2-Classic.",
+        "id": "ec2-release-address-2",
+        "title": "To release an Elastic IP addresses for EC2-Classic"
+      }
+    ],
+    "ReplaceNetworkAclAssociation": [
+      {
+        "input": {
+          "AssociationId": "aclassoc-e5b95c8c",
+          "NetworkAclId": "acl-5fb85d36"
+        },
+        "output": {
+          "NewAssociationId": "aclassoc-3999875b"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example associates the specified network ACL with the subnet for the specified network ACL association.",
+        "id": "ec2-replace-network-acl-association-1",
+        "title": "To replace the network ACL associated with a subnet"
+      }
+    ],
+    "ReplaceNetworkAclEntry": [
+      {
+        "input": {
+          "CidrBlock": "203.0.113.12/24",
+          "Egress": false,
+          "NetworkAclId": "acl-5fb85d36",
+          "PortRange": {
+            "From": 53,
+            "To": 53
+          },
+          "Protocol": "udp",
+          "RuleAction": "allow",
+          "RuleNumber": 100
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example replaces an entry for the specified network ACL. The new rule 100 allows ingress traffic from 203.0.113.12/24 on UDP port 53 (DNS) into any associated subnet.",
+        "id": "ec2-replace-network-acl-entry-1",
+        "title": "To replace a network ACL entry"
+      }
+    ],
+    "ReplaceRoute": [
+      {
+        "input": {
+          "DestinationCidrBlock": "10.0.0.0/16",
+          "GatewayId": "vgw-9a4cacf3",
+          "RouteTableId": "rtb-22574640"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example replaces the specified route in the specified table table. The new route matches the specified CIDR and sends the traffic to the specified virtual private gateway.",
+        "id": "ec2-replace-route-1",
+        "title": "To replace a route"
+      }
+    ],
+    "ReplaceRouteTableAssociation": [
+      {
+        "input": {
+          "AssociationId": "rtbassoc-781d0d1a",
+          "RouteTableId": "rtb-22574640"
+        },
+        "output": {
+          "NewAssociationId": "rtbassoc-3a1f0f58"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example associates the specified route table with the subnet for the specified route table association.",
+        "id": "ec2-replace-route-table-association-1",
+        "title": "To replace the route table associated with a subnet"
+      }
+    ],
+    "RequestSpotFleet": [
+      {
+        "input": {
+          "SpotFleetRequestConfig": {
+            "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role",
+            "LaunchSpecifications": [
+              {
+                "IamInstanceProfile": {
+                  "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role"
+                },
+                "ImageId": "ami-1a2b3c4d",
+                "InstanceType": "m3.medium",
+                "KeyName": "my-key-pair",
+                "SecurityGroups": [
+                  {
+                    "GroupId": "sg-1a2b3c4d"
+                  }
+                ],
+                "SubnetId": "subnet-1a2b3c4d, subnet-3c4d5e6f"
+              }
+            ],
+            "SpotPrice": "0.04",
+            "TargetCapacity": 2
+          }
+        },
+        "output": {
+          "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a Spot fleet request with two launch specifications that differ only by subnet. The Spot fleet launches the instances in the specified subnet with the lowest price. If the instances are launched in a default VPC, they receive a public IP address by default. If the instances are launched in a nondefault VPC, they do not receive a public IP address by default. Note that you can't specify different subnets from the same Availability Zone in a Spot fleet request.",
+        "id": "ec2-request-spot-fleet-1",
+        "title": "To request a Spot fleet in the subnet with the lowest price"
+      },
+      {
+        "input": {
+          "SpotFleetRequestConfig": {
+            "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role",
+            "LaunchSpecifications": [
+              {
+                "IamInstanceProfile": {
+                  "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role"
+                },
+                "ImageId": "ami-1a2b3c4d",
+                "InstanceType": "m3.medium",
+                "KeyName": "my-key-pair",
+                "Placement": {
+                  "AvailabilityZone": "us-west-2a, us-west-2b"
+                },
+                "SecurityGroups": [
+                  {
+                    "GroupId": "sg-1a2b3c4d"
+                  }
+                ]
+              }
+            ],
+            "SpotPrice": "0.04",
+            "TargetCapacity": 2
+          }
+        },
+        "output": {
+          "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a Spot fleet request with two launch specifications that differ only by Availability Zone. The Spot fleet launches the instances in the specified Availability Zone with the lowest price. If your account supports EC2-VPC only, Amazon EC2 launches the Spot instances in the default subnet of the Availability Zone. If your account supports EC2-Classic, Amazon EC2 launches the instances in EC2-Classic in the Availability Zone.",
+        "id": "ec2-request-spot-fleet-2",
+        "title": "To request a Spot fleet in the Availability Zone with the lowest price"
+      },
+      {
+        "input": {
+          "SpotFleetRequestConfig": {
+            "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role",
+            "LaunchSpecifications": [
+              {
+                "IamInstanceProfile": {
+                  "Arn": "arn:aws:iam::880185128111:instance-profile/my-iam-role"
+                },
+                "ImageId": "ami-1a2b3c4d",
+                "InstanceType": "m3.medium",
+                "KeyName": "my-key-pair",
+                "NetworkInterfaces": [
+                  {
+                    "AssociatePublicIpAddress": true,
+                    "DeviceIndex": 0,
+                    "Groups": [
+                      "sg-1a2b3c4d"
+                    ],
+                    "SubnetId": "subnet-1a2b3c4d"
+                  }
+                ]
+              }
+            ],
+            "SpotPrice": "0.04",
+            "TargetCapacity": 2
+          }
+        },
+        "output": {
+          "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example assigns public addresses to instances launched in a nondefault VPC. Note that when you specify a network interface, you must include the subnet ID and security group ID using the network interface.",
+        "id": "ec2-request-spot-fleet-3",
+        "title": "To launch Spot instances in a subnet and assign them public IP addresses"
+      },
+      {
+        "input": {
+          "SpotFleetRequestConfig": {
+            "AllocationStrategy": "diversified",
+            "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role",
+            "LaunchSpecifications": [
+              {
+                "ImageId": "ami-1a2b3c4d",
+                "InstanceType": "c4.2xlarge",
+                "SubnetId": "subnet-1a2b3c4d"
+              },
+              {
+                "ImageId": "ami-1a2b3c4d",
+                "InstanceType": "m3.2xlarge",
+                "SubnetId": "subnet-1a2b3c4d"
+              },
+              {
+                "ImageId": "ami-1a2b3c4d",
+                "InstanceType": "r3.2xlarge",
+                "SubnetId": "subnet-1a2b3c4d"
+              }
+            ],
+            "SpotPrice": "0.70",
+            "TargetCapacity": 30
+          }
+        },
+        "output": {
+          "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a Spot fleet request that launches 30 instances using the diversified allocation strategy. The launch specifications differ by instance type. The Spot fleet distributes the instances across the launch specifications such that there are 10 instances of each type.",
+        "id": "ec2-request-spot-fleet-4",
+        "title": "To request a Spot fleet using the diversified allocation strategy"
+      }
+    ],
+    "RequestSpotInstances": [
+      {
+        "input": {
+          "InstanceCount": 5,
+          "LaunchSpecification": {
+            "IamInstanceProfile": {
+              "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role"
+            },
+            "ImageId": "ami-1a2b3c4d",
+            "InstanceType": "m3.medium",
+            "KeyName": "my-key-pair",
+            "Placement": {
+              "AvailabilityZone": "us-west-2a"
+            },
+            "SecurityGroupIds": [
+              "sg-1a2b3c4d"
+            ]
+          },
+          "SpotPrice": "0.03",
+          "Type": "one-time"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a one-time Spot Instance request for five instances in the specified Availability Zone. If your account supports EC2-VPC only, Amazon EC2 launches the instances in the default subnet of the specified Availability Zone. If your account supports EC2-Classic, Amazon EC2 launches the instances in EC2-Classic in the specified Availability Zone.",
+        "id": "ec2-request-spot-instances-1",
+        "title": "To create a one-time Spot Instance request"
+      },
+      {
+        "input": {
+          "InstanceCount": 5,
+          "LaunchSpecification": {
+            "IamInstanceProfile": {
+              "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role"
+            },
+            "ImageId": "ami-1a2b3c4d",
+            "InstanceType": "m3.medium",
+            "SecurityGroupIds": [
+              "sg-1a2b3c4d"
+            ],
+            "SubnetId": "subnet-1a2b3c4d"
+          },
+          "SpotPrice": "0.050",
+          "Type": "one-time"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example command creates a one-time Spot Instance request for five instances in the specified subnet. Amazon EC2 launches the instances in the specified subnet. If the VPC is a nondefault VPC, the instances do not receive a public IP address by default.",
+        "id": "ec2-request-spot-instances-2",
+        "title": "To create a one-time Spot Instance request"
+      }
+    ],
+    "ResetSnapshotAttribute": [
+      {
+        "input": {
+          "Attribute": "createVolumePermission",
+          "SnapshotId": "snap-1234567890abcdef0"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example resets the create volume permissions for snapshot ``snap-1234567890abcdef0``. If the command succeeds, no output is returned.",
+        "id": "to-reset-a-snapshot-attribute-1472508825735",
+        "title": "To reset a snapshot attribute"
+      }
+    ],
+    "RestoreAddressToClassic": [
+      {
+        "input": {
+          "PublicIp": "198.51.100.0"
+        },
+        "output": {
+          "PublicIp": "198.51.100.0",
+          "Status": "MoveInProgress"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example restores the specified Elastic IP address to the EC2-Classic platform.",
+        "id": "ec2-restore-address-to-classic-1",
+        "title": "To restore an address to EC2-Classic"
+      }
+    ],
+    "RunScheduledInstances": [
+      {
+        "input": {
+          "InstanceCount": 1,
+          "LaunchSpecification": {
+            "IamInstanceProfile": {
+              "Name": "my-iam-role"
+            },
+            "ImageId": "ami-12345678",
+            "InstanceType": "c4.large",
+            "KeyName": "my-key-pair",
+            "NetworkInterfaces": [
+              {
+                "AssociatePublicIpAddress": true,
+                "DeviceIndex": 0,
+                "Groups": [
+                  "sg-12345678"
+                ],
+                "SubnetId": "subnet-12345678"
+              }
+            ]
+          },
+          "ScheduledInstanceId": "sci-1234-1234-1234-1234-123456789012"
+        },
+        "output": {
+          "InstanceIdSet": [
+            "i-1234567890abcdef0"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example launches the specified Scheduled Instance in a VPC.",
+        "id": "ec2-run-scheduled-instances-1",
+        "title": "To launch a Scheduled Instance in a VPC"
+      },
+      {
+        "input": {
+          "InstanceCount": 1,
+          "LaunchSpecification": {
+            "IamInstanceProfile": {
+              "Name": "my-iam-role"
+            },
+            "ImageId": "ami-12345678",
+            "InstanceType": "c4.large",
+            "KeyName": "my-key-pair",
+            "Placement": {
+              "AvailabilityZone": "us-west-2b"
+            },
+            "SecurityGroupIds": [
+              "sg-12345678"
+            ]
+          },
+          "ScheduledInstanceId": "sci-1234-1234-1234-1234-123456789012"
+        },
+        "output": {
+          "InstanceIdSet": [
+            "i-1234567890abcdef0"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example launches the specified Scheduled Instance in EC2-Classic.",
+        "id": "ec2-run-scheduled-instances-2",
+        "title": "To launch a Scheduled Instance in EC2-Classic"
+      }
+    ],
+    "UnassignPrivateIpAddresses": [
+      {
+        "input": {
+          "NetworkInterfaceId": "eni-e5aa89a3",
+          "PrivateIpAddresses": [
+            "10.0.0.82"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example unassigns the specified private IP address from the specified network interface.",
+        "id": "ec2-unassign-private-ip-addresses-1",
+        "title": "To unassign a secondary private IP address from a network interface"
+      }
+    ]
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-04-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-04-01/paginators-1.json
new file mode 100644
index 00000000..2bd01ad5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-04-01/paginators-1.json
@@ -0,0 +1,63 @@
+{
+  "pagination": {
+    "DescribeInstanceStatus": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "InstanceStatuses"
+    },
+    "DescribeInstances": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Reservations"
+    },
+    "DescribeReservedInstancesOfferings": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ReservedInstancesOfferings"
+    },
+    "DescribeReservedInstancesModifications": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "ReservedInstancesModifications"
+    },
+    "DescribeSnapshots": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Snapshots"
+    },
+    "DescribeSpotFleetRequests": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "SpotFleetRequestConfigs"
+    },
+    "DescribeSpotPriceHistory": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "SpotPriceHistory"
+    },
+    "DescribeTags": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Tags"
+    },
+    "DescribeVolumeStatus": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "VolumeStatuses"
+    },
+    "DescribeVolumes": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Volumes"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-04-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-04-01/service-2.json.gz
new file mode 100644
index 00000000..030f1207
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-04-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-04-01/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-04-01/waiters-2.json
new file mode 100644
index 00000000..aa36a044
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-04-01/waiters-2.json
@@ -0,0 +1,607 @@
+{
+  "version": 2,
+  "waiters": {
+    "InstanceExists": {
+      "delay": 5,
+      "maxAttempts": 40,
+      "operation": "DescribeInstances",
+      "acceptors": [
+        {
+          "matcher": "path",
+          "expected": true,
+          "argument": "length(Reservations[]) > `0`",
+          "state": "success"
+        },
+        {
+          "matcher": "error",
+          "expected": "InvalidInstanceID.NotFound",
+          "state": "retry"
+        }
+      ]
+    },
+    "BundleTaskComplete": {
+      "delay": 15,
+      "operation": "DescribeBundleTasks",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "complete",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "BundleTasks[].State"
+        },
+        {
+          "expected": "failed",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "BundleTasks[].State"
+        }
+      ]
+    },
+    "ConsoleOutputAvailable": {
+      "operation": "GetConsoleOutput",
+      "maxAttempts": 40,
+      "delay": 15,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "path",
+          "argument": "length(Output || '') > `0`",
+          "expected": true
+        }
+      ]
+    },
+    "ConversionTaskCancelled": {
+      "delay": 15,
+      "operation": "DescribeConversionTasks",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "cancelled",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "ConversionTasks[].State"
+        }
+      ]
+    },
+    "ConversionTaskCompleted": {
+      "delay": 15,
+      "operation": "DescribeConversionTasks",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "completed",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "ConversionTasks[].State"
+        },
+        {
+          "expected": "cancelled",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "ConversionTasks[].State"
+        },
+        {
+          "expected": "cancelling",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "ConversionTasks[].State"
+        }
+      ]
+    },
+    "ConversionTaskDeleted": {
+      "delay": 15,
+      "operation": "DescribeConversionTasks",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "deleted",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "ConversionTasks[].State"
+        }
+      ]
+    },
+    "CustomerGatewayAvailable": {
+      "delay": 15,
+      "operation": "DescribeCustomerGateways",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "CustomerGateways[].State"
+        },
+        {
+          "expected": "deleted",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "CustomerGateways[].State"
+        },
+        {
+          "expected": "deleting",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "CustomerGateways[].State"
+        }
+      ]
+    },
+    "ExportTaskCancelled": {
+      "delay": 15,
+      "operation": "DescribeExportTasks",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "cancelled",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "ExportTasks[].State"
+        }
+      ]
+    },
+    "ExportTaskCompleted": {
+      "delay": 15,
+      "operation": "DescribeExportTasks",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "completed",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "ExportTasks[].State"
+        }
+      ]
+    },
+    "ImageExists": {
+      "operation": "DescribeImages",
+      "maxAttempts": 40,
+      "delay": 15,
+      "acceptors": [
+        {
+          "matcher": "path",
+          "expected": true,
+          "argument": "length(Images[]) > `0`",
+          "state": "success"
+        },
+        {
+          "matcher": "error",
+          "expected": "InvalidAMIID.NotFound",
+          "state": "retry"
+        }
+      ]
+    },
+    "ImageAvailable": {
+      "operation": "DescribeImages",
+      "maxAttempts": 40,
+      "delay": 15,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "pathAll",
+          "argument": "Images[].State",
+          "expected": "available"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "Images[].State",
+          "expected": "failed"
+        }
+      ]
+    },
+    "InstanceRunning": {
+      "delay": 15,
+      "operation": "DescribeInstances",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "running",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "shutting-down",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "terminated",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "stopping",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "matcher": "error",
+          "expected": "InvalidInstanceID.NotFound",
+          "state": "retry"
+        }
+      ]
+    },
+    "InstanceStatusOk": {
+      "operation": "DescribeInstanceStatus",
+      "maxAttempts": 40,
+      "delay": 15,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "pathAll",
+          "argument": "InstanceStatuses[].InstanceStatus.Status",
+          "expected": "ok"
+        },
+        {
+          "matcher": "error",
+          "expected": "InvalidInstanceID.NotFound",
+          "state": "retry"
+        }
+      ]
+    },
+    "InstanceStopped": {
+      "delay": 15,
+      "operation": "DescribeInstances",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "stopped",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "pending",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "terminated",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        }
+      ]
+    },
+    "InstanceTerminated": {
+      "delay": 15,
+      "operation": "DescribeInstances",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "terminated",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "pending",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "stopping",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        }
+      ]
+    },
+    "KeyPairExists": {
+      "operation": "DescribeKeyPairs",
+      "delay": 5,
+      "maxAttempts": 6,
+      "acceptors": [
+        {
+          "expected": true,
+          "matcher": "path",
+          "state": "success",
+          "argument": "length(KeyPairs[].KeyName) > `0`"
+        },
+        {
+          "expected": "InvalidKeyPair.NotFound",
+          "matcher": "error",
+          "state": "retry"
+        }
+      ]
+    },
+    "NatGatewayAvailable": {
+      "operation": "DescribeNatGateways",
+      "delay": 15,
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "pathAll",
+          "argument": "NatGateways[].State",
+          "expected": "available"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "NatGateways[].State",
+          "expected": "failed"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "NatGateways[].State",
+          "expected": "deleting"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "NatGateways[].State",
+          "expected": "deleted"
+        },
+        {
+          "state": "retry",
+          "matcher": "error",
+          "expected": "NatGatewayNotFound"
+        }
+      ]
+    },
+    "NetworkAclExists": {
+      "operation": "DescribeNetworkAcls",
+      "delay": 20,
+      "maxAttempts": 10,
+      "acceptors": [
+        {
+          "matcher": "path",
+          "expected": true,
+          "argument": "length(NetworkAcls[]) > `0`",
+          "state": "success"
+        },
+        {
+          "expected": "InvalidNetworkAclID.NotFound",
+          "matcher": "error",
+          "state": "retry"
+        }
+      ]
+    },
+    "NetworkInterfaceAvailable": {
+      "operation": "DescribeNetworkInterfaces",
+      "delay": 20,
+      "maxAttempts": 10,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "NetworkInterfaces[].Status"
+        },
+        {
+          "expected": "InvalidNetworkInterfaceID.NotFound",
+          "matcher": "error",
+          "state": "failure"
+        }
+      ]
+    },
+    "PasswordDataAvailable": {
+      "operation": "GetPasswordData",
+      "maxAttempts": 40,
+      "delay": 15,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "path",
+          "argument": "length(PasswordData) > `0`",
+          "expected": true
+        }
+      ]
+    },
+    "SnapshotCompleted": {
+      "delay": 15,
+      "operation": "DescribeSnapshots",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "completed",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Snapshots[].State"
+        }
+      ]
+    },
+    "SpotInstanceRequestFulfilled": {
+      "operation": "DescribeSpotInstanceRequests",
+      "maxAttempts": 40,
+      "delay": 15,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "pathAll",
+          "argument": "SpotInstanceRequests[].Status.Code",
+          "expected": "fulfilled"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "SpotInstanceRequests[].Status.Code",
+          "expected": "schedule-expired"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "SpotInstanceRequests[].Status.Code",
+          "expected": "canceled-before-fulfillment"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "SpotInstanceRequests[].Status.Code",
+          "expected": "bad-parameters"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "SpotInstanceRequests[].Status.Code",
+          "expected": "system-error"
+        }
+      ]
+    },
+    "SubnetAvailable": {
+      "delay": 15,
+      "operation": "DescribeSubnets",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Subnets[].State"
+        }
+      ]
+    },
+    "SystemStatusOk": {
+      "operation": "DescribeInstanceStatus",
+      "maxAttempts": 40,
+      "delay": 15,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "pathAll",
+          "argument": "InstanceStatuses[].SystemStatus.Status",
+          "expected": "ok"
+        }
+      ]
+    },
+    "VolumeAvailable": {
+      "delay": 15,
+      "operation": "DescribeVolumes",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Volumes[].State"
+        },
+        {
+          "expected": "deleted",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Volumes[].State"
+        }
+      ]
+    },
+    "VolumeDeleted": {
+      "delay": 15,
+      "operation": "DescribeVolumes",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "deleted",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Volumes[].State"
+        },
+        {
+          "matcher": "error",
+          "expected": "InvalidVolume.NotFound",
+          "state": "success"
+        }
+      ]
+    },
+    "VolumeInUse": {
+      "delay": 15,
+      "operation": "DescribeVolumes",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "in-use",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Volumes[].State"
+        },
+        {
+          "expected": "deleted",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Volumes[].State"
+        }
+      ]
+    },
+    "VpcAvailable": {
+      "delay": 15,
+      "operation": "DescribeVpcs",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Vpcs[].State"
+        }
+      ]
+    },
+    "VpnConnectionAvailable": {
+      "delay": 60,
+      "operation": "DescribeVpnConnections",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "VpnConnections[].State"
+        },
+        {
+          "expected": "deleting",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "VpnConnections[].State"
+        },
+        {
+          "expected": "deleted",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "VpnConnections[].State"
+        }
+      ]
+    },
+    "VpnConnectionDeleted": {
+      "delay": 15,
+      "operation": "DescribeVpnConnections",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "deleted",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "VpnConnections[].State"
+        },
+        {
+          "expected": "pending",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "VpnConnections[].State"
+        }
+      ]
+    },
+    "VpcPeeringConnectionExists": {
+      "delay": 15,
+      "operation": "DescribeVpcPeeringConnections",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "matcher": "status",
+          "expected": 200,
+          "state": "success"
+        },
+        {
+          "matcher": "error",
+          "expected": "InvalidVpcPeeringConnectionID.NotFound",
+          "state": "retry"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-09-15/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-09-15/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..5c789e5a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-09-15/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-09-15/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-09-15/examples-1.json
new file mode 100644
index 00000000..f6a8719f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-09-15/examples-1.json
@@ -0,0 +1,3740 @@
+{
+  "version": "1.0",
+  "examples": {
+    "AllocateAddress": [
+      {
+        "input": {
+          "Domain": "vpc"
+        },
+        "output": {
+          "AllocationId": "eipalloc-64d5890a",
+          "Domain": "vpc",
+          "PublicIp": "203.0.113.0"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example allocates an Elastic IP address to use with an instance in a VPC.",
+        "id": "ec2-allocate-address-1",
+        "title": "To allocate an Elastic IP address for EC2-VPC"
+      },
+      {
+        "output": {
+          "Domain": "standard",
+          "PublicIp": "198.51.100.0"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example allocates an Elastic IP address to use with an instance in EC2-Classic.",
+        "id": "ec2-allocate-address-2",
+        "title": "To allocate an Elastic IP address for EC2-Classic"
+      }
+    ],
+    "AssignPrivateIpAddresses": [
+      {
+        "input": {
+          "NetworkInterfaceId": "eni-e5aa89a3",
+          "PrivateIpAddresses": [
+            "10.0.0.82"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example assigns the specified secondary private IP address to the specified network interface.",
+        "id": "ec2-assign-private-ip-addresses-1",
+        "title": "To assign a specific secondary private IP address to an interface"
+      },
+      {
+        "input": {
+          "NetworkInterfaceId": "eni-e5aa89a3",
+          "SecondaryPrivateIpAddressCount": 2
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example assigns two secondary private IP addresses to the specified network interface. Amazon EC2 automatically assigns these IP addresses from the available IP addresses in the CIDR block range of the subnet the network interface is associated with.",
+        "id": "ec2-assign-private-ip-addresses-2",
+        "title": "To assign secondary private IP addresses that Amazon EC2 selects to an interface"
+      }
+    ],
+    "AssociateAddress": [
+      {
+        "input": {
+          "AllocationId": "eipalloc-64d5890a",
+          "InstanceId": "i-0b263919b6498b123"
+        },
+        "output": {
+          "AssociationId": "eipassoc-2bebb745"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example associates the specified Elastic IP address with the specified instance in a VPC.",
+        "id": "ec2-associate-address-1",
+        "title": "To associate an Elastic IP address in EC2-VPC"
+      },
+      {
+        "input": {
+          "AllocationId": "eipalloc-64d5890a",
+          "NetworkInterfaceId": "eni-1a2b3c4d"
+        },
+        "output": {
+          "AssociationId": "eipassoc-2bebb745"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example associates the specified Elastic IP address with the specified network interface.",
+        "id": "ec2-associate-address-2",
+        "title": "To associate an Elastic IP address with a network interface"
+      },
+      {
+        "input": {
+          "InstanceId": "i-07ffe74c7330ebf53",
+          "PublicIp": "198.51.100.0"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example associates an Elastic IP address with an instance in EC2-Classic.",
+        "id": "ec2-associate-address-3",
+        "title": "To associate an Elastic IP address in EC2-Classic"
+      }
+    ],
+    "AssociateDhcpOptions": [
+      {
+        "input": {
+          "DhcpOptionsId": "dopt-d9070ebb",
+          "VpcId": "vpc-a01106c2"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example associates the specified DHCP options set with the specified VPC.",
+        "id": "ec2-associate-dhcp-options-1",
+        "title": "To associate a DHCP options set with a VPC"
+      },
+      {
+        "input": {
+          "DhcpOptionsId": "default",
+          "VpcId": "vpc-a01106c2"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example associates the default DHCP options set with the specified VPC.",
+        "id": "ec2-associate-dhcp-options-2",
+        "title": "To associate the default DHCP options set with a VPC"
+      }
+    ],
+    "AssociateRouteTable": [
+      {
+        "input": {
+          "RouteTableId": "rtb-22574640",
+          "SubnetId": "subnet-9d4a7b6"
+        },
+        "output": {
+          "AssociationId": "rtbassoc-781d0d1a"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example associates the specified route table with the specified subnet.",
+        "id": "ec2-associate-route-table-1",
+        "title": "To associate a route table with a subnet"
+      }
+    ],
+    "AttachInternetGateway": [
+      {
+        "input": {
+          "InternetGatewayId": "igw-c0a643a9",
+          "VpcId": "vpc-a01106c2"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example attaches the specified Internet gateway to the specified VPC.",
+        "id": "ec2-attach-internet-gateway-1",
+        "title": "To attach an Internet gateway to a VPC"
+      }
+    ],
+    "AttachNetworkInterface": [
+      {
+        "input": {
+          "DeviceIndex": 1,
+          "InstanceId": "i-1234567890abcdef0",
+          "NetworkInterfaceId": "eni-e5aa89a3"
+        },
+        "output": {
+          "AttachmentId": "eni-attach-66c4350a"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example attaches the specified network interface to the specified instance.",
+        "id": "ec2-attach-network-interface-1",
+        "title": "To attach a network interface to an instance"
+      }
+    ],
+    "AttachVolume": [
+      {
+        "input": {
+          "Device": "/dev/sdf",
+          "InstanceId": "i-01474ef662b89480",
+          "VolumeId": "vol-1234567890abcdef0"
+        },
+        "output": {
+          "AttachTime": "2016-08-29T18:52:32.724Z",
+          "Device": "/dev/sdf",
+          "InstanceId": "i-01474ef662b89480",
+          "State": "attaching",
+          "VolumeId": "vol-1234567890abcdef0"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example attaches a volume (``vol-1234567890abcdef0``) to an instance (``i-01474ef662b89480``) as ``/dev/sdf``.",
+        "id": "to-attach-a-volume-to-an-instance-1472499213109",
+        "title": "To attach a volume to an instance"
+      }
+    ],
+    "CancelSpotFleetRequests": [
+      {
+        "input": {
+          "SpotFleetRequestIds": [
+            "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE"
+          ],
+          "TerminateInstances": true
+        },
+        "output": {
+          "SuccessfulFleetRequests": [
+            {
+              "CurrentSpotFleetRequestState": "cancelled_running",
+              "PreviousSpotFleetRequestState": "active",
+              "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example cancels the specified Spot fleet request and terminates its associated Spot Instances.",
+        "id": "ec2-cancel-spot-fleet-requests-1",
+        "title": "To cancel a Spot fleet request"
+      },
+      {
+        "input": {
+          "SpotFleetRequestIds": [
+            "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE"
+          ],
+          "TerminateInstances": false
+        },
+        "output": {
+          "SuccessfulFleetRequests": [
+            {
+              "CurrentSpotFleetRequestState": "cancelled_terminating",
+              "PreviousSpotFleetRequestState": "active",
+              "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example cancels the specified Spot fleet request without terminating its associated Spot Instances.",
+        "id": "ec2-cancel-spot-fleet-requests-2",
+        "title": "To cancel a Spot fleet request without terminating its Spot Instances"
+      }
+    ],
+    "CancelSpotInstanceRequests": [
+      {
+        "input": {
+          "SpotInstanceRequestIds": [
+            "sir-08b93456"
+          ]
+        },
+        "output": {
+          "CancelledSpotInstanceRequests": [
+            {
+              "SpotInstanceRequestId": "sir-08b93456",
+              "State": "cancelled"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example cancels a Spot Instance request.",
+        "id": "ec2-cancel-spot-instance-requests-1",
+        "title": "To cancel Spot Instance requests"
+      }
+    ],
+    "ConfirmProductInstance": [
+      {
+        "input": {
+          "InstanceId": "i-1234567890abcdef0",
+          "ProductCode": "774F4FF8"
+        },
+        "output": {
+          "OwnerId": "123456789012"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example determines whether the specified product code is associated with the specified instance.",
+        "id": "to-confirm-the-product-instance-1472712108494",
+        "title": "To confirm the product instance"
+      }
+    ],
+    "CopySnapshot": [
+      {
+        "input": {
+          "Description": "This is my copied snapshot.",
+          "DestinationRegion": "us-east-1",
+          "SourceRegion": "us-west-2",
+          "SourceSnapshotId": "snap-066877671789bd71b"
+        },
+        "output": {
+          "SnapshotId": "snap-066877671789bd71b"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example copies a snapshot with the snapshot ID of ``snap-066877671789bd71b`` from the ``us-west-2`` region to the ``us-east-1`` region and adds a short description to identify the snapshot.",
+        "id": "to-copy-a-snapshot-1472502259774",
+        "title": "To copy a snapshot"
+      }
+    ],
+    "CreateCustomerGateway": [
+      {
+        "input": {
+          "BgpAsn": 65534,
+          "PublicIp": "12.1.2.3",
+          "Type": "ipsec.1"
+        },
+        "output": {
+          "CustomerGateway": {
+            "BgpAsn": "65534",
+            "CustomerGatewayId": "cgw-0e11f167",
+            "IpAddress": "12.1.2.3",
+            "State": "available",
+            "Type": "ipsec.1"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a customer gateway with the specified IP address for its outside interface.",
+        "id": "ec2-create-customer-gateway-1",
+        "title": "To create a customer gateway"
+      }
+    ],
+    "CreateDhcpOptions": [
+      {
+        "input": {
+          "DhcpConfigurations": [
+            {
+              "Key": "domain-name-servers",
+              "Values": [
+                "10.2.5.1",
+                "10.2.5.2"
+              ]
+            }
+          ]
+        },
+        "output": {
+          "DhcpOptions": {
+            "DhcpConfigurations": [
+              {
+                "Key": "domain-name-servers",
+                "Values": [
+                  {
+                    "Value": "10.2.5.2"
+                  },
+                  {
+                    "Value": "10.2.5.1"
+                  }
+                ]
+              }
+            ],
+            "DhcpOptionsId": "dopt-d9070ebb"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a DHCP options set.",
+        "id": "ec2-create-dhcp-options-1",
+        "title": "To create a DHCP options set"
+      }
+    ],
+    "CreateInternetGateway": [
+      {
+        "output": {
+          "InternetGateway": {
+            "Attachments": [
+
+            ],
+            "InternetGatewayId": "igw-c0a643a9",
+            "Tags": [
+
+            ]
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates an Internet gateway.",
+        "id": "ec2-create-internet-gateway-1",
+        "title": "To create an Internet gateway"
+      }
+    ],
+    "CreateKeyPair": [
+      {
+        "input": {
+          "KeyName": "my-key-pair"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a key pair named my-key-pair.",
+        "id": "ec2-create-key-pair-1",
+        "title": "To create a key pair"
+      }
+    ],
+    "CreateNatGateway": [
+      {
+        "input": {
+          "AllocationId": "eipalloc-37fc1a52",
+          "SubnetId": "subnet-1a2b3c4d"
+        },
+        "output": {
+          "NatGateway": {
+            "CreateTime": "2015-12-17T12:45:26.732Z",
+            "NatGatewayAddresses": [
+              {
+                "AllocationId": "eipalloc-37fc1a52"
+              }
+            ],
+            "NatGatewayId": "nat-08d48af2a8e83edfd",
+            "State": "pending",
+            "SubnetId": "subnet-1a2b3c4d",
+            "VpcId": "vpc-1122aabb"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a NAT gateway in subnet subnet-1a2b3c4d and associates an Elastic IP address with the allocation ID eipalloc-37fc1a52 with the NAT gateway.",
+        "id": "ec2-create-nat-gateway-1",
+        "title": "To create a NAT gateway"
+      }
+    ],
+    "CreateNetworkAcl": [
+      {
+        "input": {
+          "VpcId": "vpc-a01106c2"
+        },
+        "output": {
+          "NetworkAcl": {
+            "Associations": [
+
+            ],
+            "Entries": [
+              {
+                "CidrBlock": "0.0.0.0/0",
+                "Egress": true,
+                "Protocol": "-1",
+                "RuleAction": "deny",
+                "RuleNumber": 32767
+              },
+              {
+                "CidrBlock": "0.0.0.0/0",
+                "Egress": false,
+                "Protocol": "-1",
+                "RuleAction": "deny",
+                "RuleNumber": 32767
+              }
+            ],
+            "IsDefault": false,
+            "NetworkAclId": "acl-5fb85d36",
+            "Tags": [
+
+            ],
+            "VpcId": "vpc-a01106c2"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a network ACL for the specified VPC.",
+        "id": "ec2-create-network-acl-1",
+        "title": "To create a network ACL"
+      }
+    ],
+    "CreateNetworkAclEntry": [
+      {
+        "input": {
+          "CidrBlock": "0.0.0.0/0",
+          "Egress": false,
+          "NetworkAclId": "acl-5fb85d36",
+          "PortRange": {
+            "From": 53,
+            "To": 53
+          },
+          "Protocol": "udp",
+          "RuleAction": "allow",
+          "RuleNumber": 100
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates an entry for the specified network ACL. The rule allows ingress traffic from anywhere (0.0.0.0/0) on UDP port 53 (DNS) into any associated subnet.",
+        "id": "ec2-create-network-acl-entry-1",
+        "title": "To create a network ACL entry"
+      }
+    ],
+    "CreateNetworkInterface": [
+      {
+        "input": {
+          "Description": "my network interface",
+          "Groups": [
+            "sg-903004f8"
+          ],
+          "PrivateIpAddress": "10.0.2.17",
+          "SubnetId": "subnet-9d4a7b6c"
+        },
+        "output": {
+          "NetworkInterface": {
+            "AvailabilityZone": "us-east-1d",
+            "Description": "my network interface",
+            "Groups": [
+              {
+                "GroupId": "sg-903004f8",
+                "GroupName": "default"
+              }
+            ],
+            "MacAddress": "02:1a:80:41:52:9c",
+            "NetworkInterfaceId": "eni-e5aa89a3",
+            "OwnerId": "123456789012",
+            "PrivateIpAddress": "10.0.2.17",
+            "PrivateIpAddresses": [
+              {
+                "Primary": true,
+                "PrivateIpAddress": "10.0.2.17"
+              }
+            ],
+            "RequesterManaged": false,
+            "SourceDestCheck": true,
+            "Status": "pending",
+            "SubnetId": "subnet-9d4a7b6c",
+            "TagSet": [
+
+            ],
+            "VpcId": "vpc-a01106c2"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a network interface for the specified subnet.",
+        "id": "ec2-create-network-interface-1",
+        "title": "To create a network interface"
+      }
+    ],
+    "CreatePlacementGroup": [
+      {
+        "input": {
+          "GroupName": "my-cluster",
+          "Strategy": "cluster"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a placement group with the specified name.",
+        "id": "to-create-a-placement-group-1472712245768",
+        "title": "To create a placement group"
+      }
+    ],
+    "CreateRoute": [
+      {
+        "input": {
+          "DestinationCidrBlock": "0.0.0.0/0",
+          "GatewayId": "igw-c0a643a9",
+          "RouteTableId": "rtb-22574640"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a route for the specified route table. The route matches all traffic (0.0.0.0/0) and routes it to the specified Internet gateway.",
+        "id": "ec2-create-route-1",
+        "title": "To create a route"
+      }
+    ],
+    "CreateRouteTable": [
+      {
+        "input": {
+          "VpcId": "vpc-a01106c2"
+        },
+        "output": {
+          "RouteTable": {
+            "Associations": [
+
+            ],
+            "PropagatingVgws": [
+
+            ],
+            "RouteTableId": "rtb-22574640",
+            "Routes": [
+              {
+                "DestinationCidrBlock": "10.0.0.0/16",
+                "GatewayId": "local",
+                "State": "active"
+              }
+            ],
+            "Tags": [
+
+            ],
+            "VpcId": "vpc-a01106c2"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a route table for the specified VPC.",
+        "id": "ec2-create-route-table-1",
+        "title": "To create a route table"
+      }
+    ],
+    "CreateSnapshot": [
+      {
+        "input": {
+          "Description": "This is my root volume snapshot.",
+          "VolumeId": "vol-1234567890abcdef0"
+        },
+        "output": {
+          "Description": "This is my root volume snapshot.",
+          "OwnerId": "012345678910",
+          "SnapshotId": "snap-066877671789bd71b",
+          "StartTime": "2014-02-28T21:06:01.000Z",
+          "State": "pending",
+          "Tags": [
+
+          ],
+          "VolumeId": "vol-1234567890abcdef0",
+          "VolumeSize": 8
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a snapshot of the volume with a volume ID of ``vol-1234567890abcdef0`` and a short description to identify the snapshot.",
+        "id": "to-create-a-snapshot-1472502529790",
+        "title": "To create a snapshot"
+      }
+    ],
+    "CreateSpotDatafeedSubscription": [
+      {
+        "input": {
+          "Bucket": "my-s3-bucket",
+          "Prefix": "spotdata"
+        },
+        "output": {
+          "SpotDatafeedSubscription": {
+            "Bucket": "my-s3-bucket",
+            "OwnerId": "123456789012",
+            "Prefix": "spotdata",
+            "State": "Active"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a Spot Instance data feed for your AWS account.",
+        "id": "ec2-create-spot-datafeed-subscription-1",
+        "title": "To create a Spot Instance datafeed"
+      }
+    ],
+    "CreateSubnet": [
+      {
+        "input": {
+          "CidrBlock": "10.0.1.0/24",
+          "VpcId": "vpc-a01106c2"
+        },
+        "output": {
+          "Subnet": {
+            "AvailabilityZone": "us-west-2c",
+            "AvailableIpAddressCount": 251,
+            "CidrBlock": "10.0.1.0/24",
+            "State": "pending",
+            "SubnetId": "subnet-9d4a7b6c",
+            "VpcId": "vpc-a01106c2"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a subnet in the specified VPC with the specified CIDR block. We recommend that you let us select an Availability Zone for you.",
+        "id": "ec2-create-subnet-1",
+        "title": "To create a subnet"
+      }
+    ],
+    "CreateTags": [
+      {
+        "input": {
+          "Resources": [
+            "ami-78a54011"
+          ],
+          "Tags": [
+            {
+              "Key": "Stack",
+              "Value": "production"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example adds the tag Stack=production to the specified image, or overwrites an existing tag for the AMI where the tag key is Stack.",
+        "id": "ec2-create-tags-1",
+        "title": "To add a tag to a resource"
+      }
+    ],
+    "CreateVolume": [
+      {
+        "input": {
+          "AvailabilityZone": "us-east-1a",
+          "Size": 80,
+          "VolumeType": "gp2"
+        },
+        "output": {
+          "AvailabilityZone": "us-east-1a",
+          "CreateTime": "2016-08-29T18:52:32.724Z",
+          "Encrypted": false,
+          "Iops": 240,
+          "Size": 80,
+          "SnapshotId": "",
+          "State": "creating",
+          "VolumeId": "vol-6b60b7c7",
+          "VolumeType": "gp2"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates an 80 GiB General Purpose (SSD) volume in the Availability Zone ``us-east-1a``.",
+        "id": "to-create-a-new-volume-1472496724296",
+        "title": "To create a new volume"
+      },
+      {
+        "input": {
+          "AvailabilityZone": "us-east-1a",
+          "Iops": 1000,
+          "SnapshotId": "snap-066877671789bd71b",
+          "VolumeType": "io1"
+        },
+        "output": {
+          "Attachments": [
+
+          ],
+          "AvailabilityZone": "us-east-1a",
+          "CreateTime": "2016-08-29T18:52:32.724Z",
+          "Iops": 1000,
+          "Size": 500,
+          "SnapshotId": "snap-066877671789bd71b",
+          "State": "creating",
+          "Tags": [
+
+          ],
+          "VolumeId": "vol-1234567890abcdef0",
+          "VolumeType": "io1"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a new Provisioned IOPS (SSD) volume with 1000 provisioned IOPS from a snapshot in the Availability Zone ``us-east-1a``.",
+        "id": "to-create-a-new-provisioned-iops-ssd-volume-from-a-snapshot-1472498975176",
+        "title": "To create a new Provisioned IOPS (SSD) volume from a snapshot"
+      }
+    ],
+    "CreateVpc": [
+      {
+        "input": {
+          "CidrBlock": "10.0.0.0/16"
+        },
+        "output": {
+          "Vpc": {
+            "CidrBlock": "10.0.0.0/16",
+            "DhcpOptionsId": "dopt-7a8b9c2d",
+            "InstanceTenancy": "default",
+            "State": "pending",
+            "VpcId": "vpc-a01106c2"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a VPC with the specified CIDR block.",
+        "id": "ec2-create-vpc-1",
+        "title": "To create a VPC"
+      }
+    ],
+    "DeleteCustomerGateway": [
+      {
+        "input": {
+          "CustomerGatewayId": "cgw-0e11f167"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified customer gateway.",
+        "id": "ec2-delete-customer-gateway-1",
+        "title": "To delete a customer gateway"
+      }
+    ],
+    "DeleteDhcpOptions": [
+      {
+        "input": {
+          "DhcpOptionsId": "dopt-d9070ebb"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified DHCP options set.",
+        "id": "ec2-delete-dhcp-options-1",
+        "title": "To delete a DHCP options set"
+      }
+    ],
+    "DeleteInternetGateway": [
+      {
+        "input": {
+          "InternetGatewayId": "igw-c0a643a9"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified Internet gateway.",
+        "id": "ec2-delete-internet-gateway-1",
+        "title": "To delete an Internet gateway"
+      }
+    ],
+    "DeleteKeyPair": [
+      {
+        "input": {
+          "KeyName": "my-key-pair"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified key pair.",
+        "id": "ec2-delete-key-pair-1",
+        "title": "To delete a key pair"
+      }
+    ],
+    "DeleteNatGateway": [
+      {
+        "input": {
+          "NatGatewayId": "nat-04ae55e711cec5680"
+        },
+        "output": {
+          "NatGatewayId": "nat-04ae55e711cec5680"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified NAT gateway.",
+        "id": "ec2-delete-nat-gateway-1",
+        "title": "To delete a NAT gateway"
+      }
+    ],
+    "DeleteNetworkAcl": [
+      {
+        "input": {
+          "NetworkAclId": "acl-5fb85d36"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified network ACL.",
+        "id": "ec2-delete-network-acl-1",
+        "title": "To delete a network ACL"
+      }
+    ],
+    "DeleteNetworkAclEntry": [
+      {
+        "input": {
+          "Egress": true,
+          "NetworkAclId": "acl-5fb85d36",
+          "RuleNumber": 100
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes ingress rule number 100 from the specified network ACL.",
+        "id": "ec2-delete-network-acl-entry-1",
+        "title": "To delete a network ACL entry"
+      }
+    ],
+    "DeleteNetworkInterface": [
+      {
+        "input": {
+          "NetworkInterfaceId": "eni-e5aa89a3"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified network interface.",
+        "id": "ec2-delete-network-interface-1",
+        "title": "To delete a network interface"
+      }
+    ],
+    "DeletePlacementGroup": [
+      {
+        "input": {
+          "GroupName": "my-cluster"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified placement group.\n",
+        "id": "to-delete-a-placement-group-1472712349959",
+        "title": "To delete a placement group"
+      }
+    ],
+    "DeleteRoute": [
+      {
+        "input": {
+          "DestinationCidrBlock": "0.0.0.0/0",
+          "RouteTableId": "rtb-22574640"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified route from the specified route table.",
+        "id": "ec2-delete-route-1",
+        "title": "To delete a route"
+      }
+    ],
+    "DeleteRouteTable": [
+      {
+        "input": {
+          "RouteTableId": "rtb-22574640"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified route table.",
+        "id": "ec2-delete-route-table-1",
+        "title": "To delete a route table"
+      }
+    ],
+    "DeleteSnapshot": [
+      {
+        "input": {
+          "SnapshotId": "snap-1234567890abcdef0"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes a snapshot with the snapshot ID of ``snap-1234567890abcdef0``. If the command succeeds, no output is returned.",
+        "id": "to-delete-a-snapshot-1472503042567",
+        "title": "To delete a snapshot"
+      }
+    ],
+    "DeleteSpotDatafeedSubscription": [
+      {
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes a Spot data feed subscription for the account.",
+        "id": "ec2-delete-spot-datafeed-subscription-1",
+        "title": "To cancel a Spot Instance data feed subscription"
+      }
+    ],
+    "DeleteSubnet": [
+      {
+        "input": {
+          "SubnetId": "subnet-9d4a7b6c"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified subnet.",
+        "id": "ec2-delete-subnet-1",
+        "title": "To delete a subnet"
+      }
+    ],
+    "DeleteTags": [
+      {
+        "input": {
+          "Resources": [
+            "ami-78a54011"
+          ],
+          "Tags": [
+            {
+              "Key": "Stack",
+              "Value": "test"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the tag Stack=test from the specified image.",
+        "id": "ec2-delete-tags-1",
+        "title": "To delete a tag from a resource"
+      }
+    ],
+    "DeleteVolume": [
+      {
+        "input": {
+          "VolumeId": "vol-049df61146c4d7901"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes an available volume with the volume ID of ``vol-049df61146c4d7901``. If the command succeeds, no output is returned.",
+        "id": "to-delete-a-volume-1472503111160",
+        "title": "To delete a volume"
+      }
+    ],
+    "DeleteVpc": [
+      {
+        "input": {
+          "VpcId": "vpc-a01106c2"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified VPC.",
+        "id": "ec2-delete-vpc-1",
+        "title": "To delete a VPC"
+      }
+    ],
+    "DescribeAccountAttributes": [
+      {
+        "input": {
+          "AttributeNames": [
+            "supported-platforms"
+          ]
+        },
+        "output": {
+          "AccountAttributes": [
+            {
+              "AttributeName": "supported-platforms",
+              "AttributeValues": [
+                {
+                  "AttributeValue": "EC2"
+                },
+                {
+                  "AttributeValue": "VPC"
+                }
+              ]
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the supported-platforms attribute for your AWS account.",
+        "id": "ec2-describe-account-attributes-1",
+        "title": "To describe a single attribute for your AWS account"
+      },
+      {
+        "output": {
+          "AccountAttributes": [
+            {
+              "AttributeName": "supported-platforms",
+              "AttributeValues": [
+                {
+                  "AttributeValue": "EC2"
+                },
+                {
+                  "AttributeValue": "VPC"
+                }
+              ]
+            },
+            {
+              "AttributeName": "vpc-max-security-groups-per-interface",
+              "AttributeValues": [
+                {
+                  "AttributeValue": "5"
+                }
+              ]
+            },
+            {
+              "AttributeName": "max-elastic-ips",
+              "AttributeValues": [
+                {
+                  "AttributeValue": "5"
+                }
+              ]
+            },
+            {
+              "AttributeName": "max-instances",
+              "AttributeValues": [
+                {
+                  "AttributeValue": "20"
+                }
+              ]
+            },
+            {
+              "AttributeName": "vpc-max-elastic-ips",
+              "AttributeValues": [
+                {
+                  "AttributeValue": "5"
+                }
+              ]
+            },
+            {
+              "AttributeName": "default-vpc",
+              "AttributeValues": [
+                {
+                  "AttributeValue": "none"
+                }
+              ]
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the attributes for your AWS account.",
+        "id": "ec2-describe-account-attributes-2",
+        "title": "To describe all attributes for your AWS account"
+      }
+    ],
+    "DescribeAddresses": [
+      {
+        "output": {
+          "Addresses": [
+            {
+              "Domain": "standard",
+              "InstanceId": "i-1234567890abcdef0",
+              "PublicIp": "198.51.100.0"
+            },
+            {
+              "AllocationId": "eipalloc-12345678",
+              "AssociationId": "eipassoc-12345678",
+              "Domain": "vpc",
+              "InstanceId": "i-1234567890abcdef0",
+              "NetworkInterfaceId": "eni-12345678",
+              "NetworkInterfaceOwnerId": "123456789012",
+              "PrivateIpAddress": "10.0.1.241",
+              "PublicIp": "203.0.113.0"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes your Elastic IP addresses.",
+        "id": "ec2-describe-addresses-1",
+        "title": "To describe your Elastic IP addresses"
+      },
+      {
+        "input": {
+          "Filters": [
+            {
+              "Name": "domain",
+              "Values": [
+                "vpc"
+              ]
+            }
+          ]
+        },
+        "output": {
+          "Addresses": [
+            {
+              "AllocationId": "eipalloc-12345678",
+              "AssociationId": "eipassoc-12345678",
+              "Domain": "vpc",
+              "InstanceId": "i-1234567890abcdef0",
+              "NetworkInterfaceId": "eni-12345678",
+              "NetworkInterfaceOwnerId": "123456789012",
+              "PrivateIpAddress": "10.0.1.241",
+              "PublicIp": "203.0.113.0"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes your Elastic IP addresses for use with instances in a VPC.",
+        "id": "ec2-describe-addresses-2",
+        "title": "To describe your Elastic IP addresses for EC2-VPC"
+      },
+      {
+        "input": {
+          "Filters": [
+            {
+              "Name": "domain",
+              "Values": [
+                "standard"
+              ]
+            }
+          ]
+        },
+        "output": {
+          "Addresses": [
+            {
+              "Domain": "standard",
+              "InstanceId": "i-1234567890abcdef0",
+              "PublicIp": "198.51.100.0"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes your Elastic IP addresses for use with instances in EC2-Classic.",
+        "id": "ec2-describe-addresses-3",
+        "title": "To describe your Elastic IP addresses for EC2-Classic"
+      }
+    ],
+    "DescribeAvailabilityZones": [
+      {
+        "output": {
+          "AvailabilityZones": [
+            {
+              "Messages": [
+
+              ],
+              "RegionName": "us-east-1",
+              "State": "available",
+              "ZoneName": "us-east-1b"
+            },
+            {
+              "Messages": [
+
+              ],
+              "RegionName": "us-east-1",
+              "State": "available",
+              "ZoneName": "us-east-1c"
+            },
+            {
+              "Messages": [
+
+              ],
+              "RegionName": "us-east-1",
+              "State": "available",
+              "ZoneName": "us-east-1d"
+            },
+            {
+              "Messages": [
+
+              ],
+              "RegionName": "us-east-1",
+              "State": "available",
+              "ZoneName": "us-east-1e"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the Availability Zones that are available to you. The response includes Availability Zones only for the current region.",
+        "id": "ec2-describe-availability-zones-1",
+        "title": "To describe your Availability Zones"
+      }
+    ],
+    "DescribeCustomerGateways": [
+      {
+        "input": {
+          "CustomerGatewayIds": [
+            "cgw-0e11f167"
+          ]
+        },
+        "output": {
+          "CustomerGateways": [
+            {
+              "BgpAsn": "65534",
+              "CustomerGatewayId": "cgw-0e11f167",
+              "IpAddress": "12.1.2.3",
+              "State": "available",
+              "Type": "ipsec.1"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the specified customer gateway.",
+        "id": "ec2-describe-customer-gateways-1",
+        "title": "To describe a customer gateway"
+      }
+    ],
+    "DescribeDhcpOptions": [
+      {
+        "input": {
+          "DhcpOptionsIds": [
+            "dopt-d9070ebb"
+          ]
+        },
+        "output": {
+          "DhcpOptions": [
+            {
+              "DhcpConfigurations": [
+                {
+                  "Key": "domain-name-servers",
+                  "Values": [
+                    {
+                      "Value": "10.2.5.2"
+                    },
+                    {
+                      "Value": "10.2.5.1"
+                    }
+                  ]
+                }
+              ],
+              "DhcpOptionsId": "dopt-d9070ebb"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the specified DHCP options set.",
+        "id": "ec2-describe-dhcp-options-1",
+        "title": "To describe a DHCP options set"
+      }
+    ],
+    "DescribeInstanceAttribute": [
+      {
+        "input": {
+          "Attribute": "instanceType",
+          "InstanceId": "i-1234567890abcdef0"
+        },
+        "output": {
+          "InstanceId": "i-1234567890abcdef0",
+          "InstanceType": {
+            "Value": "t1.micro"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the instance type of the specified instance.\n",
+        "id": "to-describe-the-instance-type-1472712432132",
+        "title": "To describe the instance type"
+      },
+      {
+        "input": {
+          "Attribute": "disableApiTermination",
+          "InstanceId": "i-1234567890abcdef0"
+        },
+        "output": {
+          "DisableApiTermination": {
+            "Value": "false"
+          },
+          "InstanceId": "i-1234567890abcdef0"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the ``disableApiTermination`` attribute of the specified instance.\n",
+        "id": "to-describe-the-disableapitermination-attribute-1472712533466",
+        "title": "To describe the disableApiTermination attribute"
+      },
+      {
+        "input": {
+          "Attribute": "blockDeviceMapping",
+          "InstanceId": "i-1234567890abcdef0"
+        },
+        "output": {
+          "BlockDeviceMappings": [
+            {
+              "DeviceName": "/dev/sda1",
+              "Ebs": {
+                "AttachTime": "2013-05-17T22:42:34.000Z",
+                "DeleteOnTermination": true,
+                "Status": "attached",
+                "VolumeId": "vol-049df61146c4d7901"
+              }
+            },
+            {
+              "DeviceName": "/dev/sdf",
+              "Ebs": {
+                "AttachTime": "2013-09-10T23:07:00.000Z",
+                "DeleteOnTermination": false,
+                "Status": "attached",
+                "VolumeId": "vol-049df61146c4d7901"
+              }
+            }
+          ],
+          "InstanceId": "i-1234567890abcdef0"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the ``blockDeviceMapping`` attribute of the specified instance.\n",
+        "id": "to-describe-the-block-device-mapping-for-an-instance-1472712645423",
+        "title": "To describe the block device mapping for an instance"
+      }
+    ],
+    "DescribeInternetGateways": [
+      {
+        "input": {
+          "Filters": [
+            {
+              "Name": "attachment.vpc-id",
+              "Values": [
+                "vpc-a01106c2"
+              ]
+            }
+          ]
+        },
+        "output": {
+          "InternetGateways": [
+            {
+              "Attachments": [
+                {
+                  "State": "available",
+                  "VpcId": "vpc-a01106c2"
+                }
+              ],
+              "InternetGatewayId": "igw-c0a643a9",
+              "Tags": [
+
+              ]
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the Internet gateway for the specified VPC.",
+        "id": "ec2-describe-internet-gateways-1",
+        "title": "To describe the Internet gateway for a VPC"
+      }
+    ],
+    "DescribeKeyPairs": [
+      {
+        "input": {
+          "KeyNames": [
+            "my-key-pair"
+          ]
+        },
+        "output": {
+          "KeyPairs": [
+            {
+              "KeyFingerprint": "1f:51:ae:28:bf:89:e9:d8:1f:25:5d:37:2d:7d:b8:ca:9f:f5:f1:6f",
+              "KeyName": "my-key-pair"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example displays the fingerprint for the specified key.",
+        "id": "ec2-describe-key-pairs-1",
+        "title": "To display a key pair"
+      }
+    ],
+    "DescribeMovingAddresses": [
+      {
+        "output": {
+          "MovingAddressStatuses": [
+            {
+              "MoveStatus": "MovingToVpc",
+              "PublicIp": "198.51.100.0"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes all of your moving Elastic IP addresses.",
+        "id": "ec2-describe-moving-addresses-1",
+        "title": "To describe your moving addresses"
+      }
+    ],
+    "DescribeNatGateways": [
+      {
+        "input": {
+          "Filter": [
+            {
+              "Name": "vpc-id",
+              "Values": [
+                "vpc-1a2b3c4d"
+              ]
+            }
+          ]
+        },
+        "output": {
+          "NatGateways": [
+            {
+              "CreateTime": "2015-12-01T12:26:55.983Z",
+              "NatGatewayAddresses": [
+                {
+                  "AllocationId": "eipalloc-89c620ec",
+                  "NetworkInterfaceId": "eni-9dec76cd",
+                  "PrivateIp": "10.0.0.149",
+                  "PublicIp": "198.11.222.333"
+                }
+              ],
+              "NatGatewayId": "nat-05dba92075d71c408",
+              "State": "available",
+              "SubnetId": "subnet-847e4dc2",
+              "VpcId": "vpc-1a2b3c4d"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the NAT gateway for the specified VPC.",
+        "id": "ec2-describe-nat-gateways-1",
+        "title": "To describe a NAT gateway"
+      }
+    ],
+    "DescribeNetworkAcls": [
+      {
+        "input": {
+          "NetworkAclIds": [
+            "acl-5fb85d36"
+          ]
+        },
+        "output": {
+          "NetworkAcls": [
+            {
+              "Associations": [
+                {
+                  "NetworkAclAssociationId": "aclassoc-66ea5f0b",
+                  "NetworkAclId": "acl-9aeb5ef7",
+                  "SubnetId": "subnet-65ea5f08"
+                }
+              ],
+              "Entries": [
+                {
+                  "CidrBlock": "0.0.0.0/0",
+                  "Egress": true,
+                  "Protocol": "-1",
+                  "RuleAction": "deny",
+                  "RuleNumber": 32767
+                },
+                {
+                  "CidrBlock": "0.0.0.0/0",
+                  "Egress": false,
+                  "Protocol": "-1",
+                  "RuleAction": "deny",
+                  "RuleNumber": 32767
+                }
+              ],
+              "IsDefault": false,
+              "NetworkAclId": "acl-5fb85d36",
+              "Tags": [
+
+              ],
+              "VpcId": "vpc-a01106c2"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the specified network ACL.",
+        "id": "ec2-",
+        "title": "To describe a network ACL"
+      }
+    ],
+    "DescribeNetworkInterfaceAttribute": [
+      {
+        "input": {
+          "Attribute": "attachment",
+          "NetworkInterfaceId": "eni-686ea200"
+        },
+        "output": {
+          "Attachment": {
+            "AttachTime": "2015-05-21T20:02:20.000Z",
+            "AttachmentId": "eni-attach-43348162",
+            "DeleteOnTermination": true,
+            "DeviceIndex": 0,
+            "InstanceId": "i-1234567890abcdef0",
+            "InstanceOwnerId": "123456789012",
+            "Status": "attached"
+          },
+          "NetworkInterfaceId": "eni-686ea200"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the attachment attribute of the specified network interface.",
+        "id": "ec2-describe-network-interface-attribute-1",
+        "title": "To describe the attachment attribute of a network interface"
+      },
+      {
+        "input": {
+          "Attribute": "description",
+          "NetworkInterfaceId": "eni-686ea200"
+        },
+        "output": {
+          "Description": {
+            "Value": "My description"
+          },
+          "NetworkInterfaceId": "eni-686ea200"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the description attribute of the specified network interface.",
+        "id": "ec2-describe-network-interface-attribute-2",
+        "title": "To describe the description attribute of a network interface"
+      },
+      {
+        "input": {
+          "Attribute": "groupSet",
+          "NetworkInterfaceId": "eni-686ea200"
+        },
+        "output": {
+          "Groups": [
+            {
+              "GroupId": "sg-903004f8",
+              "GroupName": "my-security-group"
+            }
+          ],
+          "NetworkInterfaceId": "eni-686ea200"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the groupSet attribute of the specified network interface.",
+        "id": "ec2-describe-network-interface-attribute-3",
+        "title": "To describe the groupSet attribute of a network interface"
+      },
+      {
+        "input": {
+          "Attribute": "sourceDestCheck",
+          "NetworkInterfaceId": "eni-686ea200"
+        },
+        "output": {
+          "NetworkInterfaceId": "eni-686ea200",
+          "SourceDestCheck": {
+            "Value": true
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the sourceDestCheck attribute of the specified network interface.",
+        "id": "ec2-describe-network-interface-attribute-4",
+        "title": "To describe the sourceDestCheck attribute of a network interface"
+      }
+    ],
+    "DescribeNetworkInterfaces": [
+      {
+        "input": {
+          "NetworkInterfaceIds": [
+            "eni-e5aa89a3"
+          ]
+        },
+        "output": {
+          "NetworkInterfaces": [
+            {
+              "Association": {
+                "AssociationId": "eipassoc-0fbb766a",
+                "IpOwnerId": "123456789012",
+                "PublicDnsName": "ec2-203-0-113-12.compute-1.amazonaws.com",
+                "PublicIp": "203.0.113.12"
+              },
+              "Attachment": {
+                "AttachTime": "2013-11-30T23:36:42.000Z",
+                "AttachmentId": "eni-attach-66c4350a",
+                "DeleteOnTermination": false,
+                "DeviceIndex": 1,
+                "InstanceId": "i-1234567890abcdef0",
+                "InstanceOwnerId": "123456789012",
+                "Status": "attached"
+              },
+              "AvailabilityZone": "us-east-1d",
+              "Description": "my network interface",
+              "Groups": [
+                {
+                  "GroupId": "sg-8637d3e3",
+                  "GroupName": "default"
+                }
+              ],
+              "MacAddress": "02:2f:8f:b0:cf:75",
+              "NetworkInterfaceId": "eni-e5aa89a3",
+              "OwnerId": "123456789012",
+              "PrivateDnsName": "ip-10-0-1-17.ec2.internal",
+              "PrivateIpAddress": "10.0.1.17",
+              "PrivateIpAddresses": [
+                {
+                  "Association": {
+                    "AssociationId": "eipassoc-0fbb766a",
+                    "IpOwnerId": "123456789012",
+                    "PublicDnsName": "ec2-203-0-113-12.compute-1.amazonaws.com",
+                    "PublicIp": "203.0.113.12"
+                  },
+                  "Primary": true,
+                  "PrivateDnsName": "ip-10-0-1-17.ec2.internal",
+                  "PrivateIpAddress": "10.0.1.17"
+                }
+              ],
+              "RequesterManaged": false,
+              "SourceDestCheck": true,
+              "Status": "in-use",
+              "SubnetId": "subnet-b61f49f0",
+              "TagSet": [
+
+              ],
+              "VpcId": "vpc-a01106c2"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "",
+        "id": "ec2-describe-network-interfaces-1",
+        "title": "To describe a network interface"
+      }
+    ],
+    "DescribeRegions": [
+      {
+        "output": {
+          "Regions": [
+            {
+              "Endpoint": "ec2.ap-south-1.amazonaws.com",
+              "RegionName": "ap-south-1"
+            },
+            {
+              "Endpoint": "ec2.eu-west-1.amazonaws.com",
+              "RegionName": "eu-west-1"
+            },
+            {
+              "Endpoint": "ec2.ap-southeast-1.amazonaws.com",
+              "RegionName": "ap-southeast-1"
+            },
+            {
+              "Endpoint": "ec2.ap-southeast-2.amazonaws.com",
+              "RegionName": "ap-southeast-2"
+            },
+            {
+              "Endpoint": "ec2.eu-central-1.amazonaws.com",
+              "RegionName": "eu-central-1"
+            },
+            {
+              "Endpoint": "ec2.ap-northeast-2.amazonaws.com",
+              "RegionName": "ap-northeast-2"
+            },
+            {
+              "Endpoint": "ec2.ap-northeast-1.amazonaws.com",
+              "RegionName": "ap-northeast-1"
+            },
+            {
+              "Endpoint": "ec2.us-east-1.amazonaws.com",
+              "RegionName": "us-east-1"
+            },
+            {
+              "Endpoint": "ec2.sa-east-1.amazonaws.com",
+              "RegionName": "sa-east-1"
+            },
+            {
+              "Endpoint": "ec2.us-west-1.amazonaws.com",
+              "RegionName": "us-west-1"
+            },
+            {
+              "Endpoint": "ec2.us-west-2.amazonaws.com",
+              "RegionName": "us-west-2"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes all the regions that are available to you.",
+        "id": "ec2-describe-regions-1",
+        "title": "To describe your regions"
+      }
+    ],
+    "DescribeRouteTables": [
+      {
+        "input": {
+          "RouteTableIds": [
+            "rtb-1f382e7d"
+          ]
+        },
+        "output": {
+          "RouteTables": [
+            {
+              "Associations": [
+                {
+                  "Main": true,
+                  "RouteTableAssociationId": "rtbassoc-d8ccddba",
+                  "RouteTableId": "rtb-1f382e7d"
+                }
+              ],
+              "PropagatingVgws": [
+
+              ],
+              "RouteTableId": "rtb-1f382e7d",
+              "Routes": [
+                {
+                  "DestinationCidrBlock": "10.0.0.0/16",
+                  "GatewayId": "local",
+                  "State": "active"
+                }
+              ],
+              "Tags": [
+
+              ],
+              "VpcId": "vpc-a01106c2"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the specified route table.",
+        "id": "ec2-describe-route-tables-1",
+        "title": "To describe a route table"
+      }
+    ],
+    "DescribeScheduledInstanceAvailability": [
+      {
+        "input": {
+          "FirstSlotStartTimeRange": {
+            "EarliestTime": "2016-01-31T00:00:00Z",
+            "LatestTime": "2016-01-31T04:00:00Z"
+          },
+          "Recurrence": {
+            "Frequency": "Weekly",
+            "Interval": 1,
+            "OccurrenceDays": [
+              1
+            ]
+          }
+        },
+        "output": {
+          "ScheduledInstanceAvailabilitySet": [
+            {
+              "AvailabilityZone": "us-west-2b",
+              "AvailableInstanceCount": 20,
+              "FirstSlotStartTime": "2016-01-31T00:00:00Z",
+              "HourlyPrice": "0.095",
+              "InstanceType": "c4.large",
+              "MaxTermDurationInDays": 366,
+              "MinTermDurationInDays": 366,
+              "NetworkPlatform": "EC2-VPC",
+              "Platform": "Linux/UNIX",
+              "PurchaseToken": "eyJ2IjoiMSIsInMiOjEsImMiOi...",
+              "Recurrence": {
+                "Frequency": "Weekly",
+                "Interval": 1,
+                "OccurrenceDaySet": [
+                  1
+                ],
+                "OccurrenceRelativeToEnd": false
+              },
+              "SlotDurationInHours": 23,
+              "TotalScheduledInstanceHours": 1219
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes a schedule that occurs every week on Sunday, starting on the specified date. Note that the output contains a single schedule as an example.",
+        "id": "ec2-describe-scheduled-instance-availability-1",
+        "title": "To describe an available schedule"
+      }
+    ],
+    "DescribeScheduledInstances": [
+      {
+        "input": {
+          "ScheduledInstanceIds": [
+            "sci-1234-1234-1234-1234-123456789012"
+          ]
+        },
+        "output": {
+          "ScheduledInstanceSet": [
+            {
+              "AvailabilityZone": "us-west-2b",
+              "CreateDate": "2016-01-25T21:43:38.612Z",
+              "HourlyPrice": "0.095",
+              "InstanceCount": 1,
+              "InstanceType": "c4.large",
+              "NetworkPlatform": "EC2-VPC",
+              "NextSlotStartTime": "2016-01-31T09:00:00Z",
+              "Platform": "Linux/UNIX",
+              "Recurrence": {
+                "Frequency": "Weekly",
+                "Interval": 1,
+                "OccurrenceDaySet": [
+                  1
+                ],
+                "OccurrenceRelativeToEnd": false,
+                "OccurrenceUnit": ""
+              },
+              "ScheduledInstanceId": "sci-1234-1234-1234-1234-123456789012",
+              "SlotDurationInHours": 32,
+              "TermEndDate": "2017-01-31T09:00:00Z",
+              "TermStartDate": "2016-01-31T09:00:00Z",
+              "TotalScheduledInstanceHours": 1696
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the specified Scheduled Instance.",
+        "id": "ec2-describe-scheduled-instances-1",
+        "title": "To describe your Scheduled Instances"
+      }
+    ],
+    "DescribeSnapshotAttribute": [
+      {
+        "input": {
+          "Attribute": "createVolumePermission",
+          "SnapshotId": "snap-066877671789bd71b"
+        },
+        "output": {
+          "CreateVolumePermissions": [
+
+          ],
+          "SnapshotId": "snap-066877671789bd71b"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the ``createVolumePermission`` attribute on a snapshot with the snapshot ID of ``snap-066877671789bd71b``.",
+        "id": "to-describe-snapshot-attributes-1472503199736",
+        "title": "To describe snapshot attributes"
+      }
+    ],
+    "DescribeSnapshots": [
+      {
+        "input": {
+          "SnapshotIds": [
+            "snap-1234567890abcdef0"
+          ]
+        },
+        "output": {
+          "NextToken": "",
+          "Snapshots": [
+            {
+              "Description": "This is my snapshot.",
+              "OwnerId": "012345678910",
+              "Progress": "100%",
+              "SnapshotId": "snap-1234567890abcdef0",
+              "StartTime": "2014-02-28T21:28:32.000Z",
+              "State": "completed",
+              "VolumeId": "vol-049df61146c4d7901",
+              "VolumeSize": 8
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes a snapshot with the snapshot ID of ``snap-1234567890abcdef0``.",
+        "id": "to-describe-a-snapshot-1472503807850",
+        "title": "To describe a snapshot"
+      },
+      {
+        "input": {
+          "Filters": [
+            {
+              "Name": "status",
+              "Values": [
+                "pending"
+              ]
+            }
+          ],
+          "OwnerIds": [
+            "012345678910"
+          ]
+        },
+        "output": {
+          "NextToken": "",
+          "Snapshots": [
+            {
+              "Description": "This is my copied snapshot.",
+              "OwnerId": "012345678910",
+              "Progress": "87%",
+              "SnapshotId": "snap-066877671789bd71b",
+              "StartTime": "2014-02-28T21:37:27.000Z",
+              "State": "pending",
+              "VolumeId": "vol-1234567890abcdef0",
+              "VolumeSize": 8
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes all snapshots owned by the ID 012345678910 that are in the ``pending`` status.",
+        "id": "to-describe-snapshots-using-filters-1472503929793",
+        "title": "To describe snapshots using filters"
+      }
+    ],
+    "DescribeSpotDatafeedSubscription": [
+      {
+        "output": {
+          "SpotDatafeedSubscription": {
+            "Bucket": "my-s3-bucket",
+            "OwnerId": "123456789012",
+            "Prefix": "spotdata",
+            "State": "Active"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the Spot Instance datafeed subscription for your AWS account.",
+        "id": "ec2-describe-spot-datafeed-subscription-1",
+        "title": "To describe the datafeed for your AWS account"
+      }
+    ],
+    "DescribeSpotFleetInstances": [
+      {
+        "input": {
+          "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE"
+        },
+        "output": {
+          "ActiveInstances": [
+            {
+              "InstanceId": "i-1234567890abcdef0",
+              "InstanceType": "m3.medium",
+              "SpotInstanceRequestId": "sir-08b93456"
+            }
+          ],
+          "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example lists the Spot Instances associated with the specified Spot fleet.",
+        "id": "ec2-describe-spot-fleet-instances-1",
+        "title": "To describe the Spot Instances associated with a Spot fleet"
+      }
+    ],
+    "DescribeSpotFleetRequestHistory": [
+      {
+        "input": {
+          "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE",
+          "StartTime": "2015-05-26T00:00:00Z"
+        },
+        "output": {
+          "HistoryRecords": [
+            {
+              "EventInformation": {
+                "EventSubType": "submitted"
+              },
+              "EventType": "fleetRequestChange",
+              "Timestamp": "2015-05-26T23:17:20.697Z"
+            },
+            {
+              "EventInformation": {
+                "EventSubType": "active"
+              },
+              "EventType": "fleetRequestChange",
+              "Timestamp": "2015-05-26T23:17:20.873Z"
+            },
+            {
+              "EventInformation": {
+                "EventSubType": "launched",
+                "InstanceId": "i-1234567890abcdef0"
+              },
+              "EventType": "instanceChange",
+              "Timestamp": "2015-05-26T23:21:21.712Z"
+            },
+            {
+              "EventInformation": {
+                "EventSubType": "launched",
+                "InstanceId": "i-1234567890abcdef1"
+              },
+              "EventType": "instanceChange",
+              "Timestamp": "2015-05-26T23:21:21.816Z"
+            }
+          ],
+          "NextToken": "CpHNsscimcV5oH7bSbub03CI2Qms5+ypNpNm+53MNlR0YcXAkp0xFlfKf91yVxSExmbtma3awYxMFzNA663ZskT0AHtJ6TCb2Z8bQC2EnZgyELbymtWPfpZ1ZbauVg+P+TfGlWxWWB/Vr5dk5d4LfdgA/DRAHUrYgxzrEXAMPLE=",
+          "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE",
+          "StartTime": "2015-05-26T00:00:00Z"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example returns the history for the specified Spot fleet starting at the specified time.",
+        "id": "ec2-describe-spot-fleet-request-history-1",
+        "title": "To describe Spot fleet history"
+      }
+    ],
+    "DescribeSpotFleetRequests": [
+      {
+        "input": {
+          "SpotFleetRequestIds": [
+            "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE"
+          ]
+        },
+        "output": {
+          "SpotFleetRequestConfigs": [
+            {
+              "SpotFleetRequestConfig": {
+                "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role",
+                "LaunchSpecifications": [
+                  {
+                    "EbsOptimized": false,
+                    "ImageId": "ami-1a2b3c4d",
+                    "InstanceType": "cc2.8xlarge",
+                    "NetworkInterfaces": [
+                      {
+                        "AssociatePublicIpAddress": true,
+                        "DeleteOnTermination": false,
+                        "DeviceIndex": 0,
+                        "SecondaryPrivateIpAddressCount": 0,
+                        "SubnetId": "subnet-a61dafcf"
+                      }
+                    ]
+                  },
+                  {
+                    "EbsOptimized": false,
+                    "ImageId": "ami-1a2b3c4d",
+                    "InstanceType": "r3.8xlarge",
+                    "NetworkInterfaces": [
+                      {
+                        "AssociatePublicIpAddress": true,
+                        "DeleteOnTermination": false,
+                        "DeviceIndex": 0,
+                        "SecondaryPrivateIpAddressCount": 0,
+                        "SubnetId": "subnet-a61dafcf"
+                      }
+                    ]
+                  }
+                ],
+                "SpotPrice": "0.05",
+                "TargetCapacity": 20
+              },
+              "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE",
+              "SpotFleetRequestState": "active"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the specified Spot fleet request.",
+        "id": "ec2-describe-spot-fleet-requests-1",
+        "title": "To describe a Spot fleet request"
+      }
+    ],
+    "DescribeSpotInstanceRequests": [
+      {
+        "input": {
+          "SpotInstanceRequestIds": [
+            "sir-08b93456"
+          ]
+        },
+        "output": {
+          "SpotInstanceRequests": [
+            {
+              "CreateTime": "2014-04-30T18:14:55.000Z",
+              "InstanceId": "i-1234567890abcdef0",
+              "LaunchSpecification": {
+                "BlockDeviceMappings": [
+                  {
+                    "DeviceName": "/dev/sda1",
+                    "Ebs": {
+                      "DeleteOnTermination": true,
+                      "VolumeSize": 8,
+                      "VolumeType": "standard"
+                    }
+                  }
+                ],
+                "EbsOptimized": false,
+                "ImageId": "ami-7aba833f",
+                "InstanceType": "m1.small",
+                "KeyName": "my-key-pair",
+                "SecurityGroups": [
+                  {
+                    "GroupId": "sg-e38f24a7",
+                    "GroupName": "my-security-group"
+                  }
+                ]
+              },
+              "LaunchedAvailabilityZone": "us-west-1b",
+              "ProductDescription": "Linux/UNIX",
+              "SpotInstanceRequestId": "sir-08b93456",
+              "SpotPrice": "0.010000",
+              "State": "active",
+              "Status": {
+                "Code": "fulfilled",
+                "Message": "Your Spot request is fulfilled.",
+                "UpdateTime": "2014-04-30T18:16:21.000Z"
+              },
+              "Type": "one-time"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the specified Spot Instance request.",
+        "id": "ec2-describe-spot-instance-requests-1",
+        "title": "To describe a Spot Instance request"
+      }
+    ],
+    "DescribeSpotPriceHistory": [
+      {
+        "input": {
+          "EndTime": "2014-01-06T08:09:10",
+          "InstanceTypes": [
+            "m1.xlarge"
+          ],
+          "ProductDescriptions": [
+            "Linux/UNIX (Amazon VPC)"
+          ],
+          "StartTime": "2014-01-06T07:08:09"
+        },
+        "output": {
+          "SpotPriceHistory": [
+            {
+              "AvailabilityZone": "us-west-1a",
+              "InstanceType": "m1.xlarge",
+              "ProductDescription": "Linux/UNIX (Amazon VPC)",
+              "SpotPrice": "0.080000",
+              "Timestamp": "2014-01-06T04:32:53.000Z"
+            },
+            {
+              "AvailabilityZone": "us-west-1c",
+              "InstanceType": "m1.xlarge",
+              "ProductDescription": "Linux/UNIX (Amazon VPC)",
+              "SpotPrice": "0.080000",
+              "Timestamp": "2014-01-05T11:28:26.000Z"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example returns the Spot Price history for m1.xlarge, Linux/UNIX (Amazon VPC) instances for a particular day in January.",
+        "id": "ec2-describe-spot-price-history-1",
+        "title": "To describe Spot price history for Linux/UNIX (Amazon VPC)"
+      }
+    ],
+    "DescribeSubnets": [
+      {
+        "input": {
+          "Filters": [
+            {
+              "Name": "vpc-id",
+              "Values": [
+                "vpc-a01106c2"
+              ]
+            }
+          ]
+        },
+        "output": {
+          "Subnets": [
+            {
+              "AvailabilityZone": "us-east-1c",
+              "AvailableIpAddressCount": 251,
+              "CidrBlock": "10.0.1.0/24",
+              "DefaultForAz": false,
+              "MapPublicIpOnLaunch": false,
+              "State": "available",
+              "SubnetId": "subnet-9d4a7b6c",
+              "VpcId": "vpc-a01106c2"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the subnets for the specified VPC.",
+        "id": "ec2-describe-subnets-1",
+        "title": "To describe the subnets for a VPC"
+      }
+    ],
+    "DescribeTags": [
+      {
+        "input": {
+          "Filters": [
+            {
+              "Name": "resource-id",
+              "Values": [
+                "i-1234567890abcdef8"
+              ]
+            }
+          ]
+        },
+        "output": {
+          "Tags": [
+            {
+              "Key": "Stack",
+              "ResourceId": "i-1234567890abcdef8",
+              "ResourceType": "instance",
+              "Value": "test"
+            },
+            {
+              "Key": "Name",
+              "ResourceId": "i-1234567890abcdef8",
+              "ResourceType": "instance",
+              "Value": "Beta Server"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the tags for the specified instance.",
+        "id": "ec2-describe-tags-1",
+        "title": "To describe the tags for a single resource"
+      }
+    ],
+    "DescribeVolumeAttribute": [
+      {
+        "input": {
+          "Attribute": "autoEnableIO",
+          "VolumeId": "vol-049df61146c4d7901"
+        },
+        "output": {
+          "AutoEnableIO": {
+            "Value": false
+          },
+          "VolumeId": "vol-049df61146c4d7901"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the ``autoEnableIo`` attribute of the volume with the ID ``vol-049df61146c4d7901``.",
+        "id": "to-describe-a-volume-attribute-1472505773492",
+        "title": "To describe a volume attribute"
+      }
+    ],
+    "DescribeVolumeStatus": [
+      {
+        "input": {
+          "VolumeIds": [
+            "vol-1234567890abcdef0"
+          ]
+        },
+        "output": {
+          "VolumeStatuses": [
+            {
+              "Actions": [
+
+              ],
+              "AvailabilityZone": "us-east-1a",
+              "Events": [
+
+              ],
+              "VolumeId": "vol-1234567890abcdef0",
+              "VolumeStatus": {
+                "Details": [
+                  {
+                    "Name": "io-enabled",
+                    "Status": "passed"
+                  },
+                  {
+                    "Name": "io-performance",
+                    "Status": "not-applicable"
+                  }
+                ],
+                "Status": "ok"
+              }
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the status for the volume ``vol-1234567890abcdef0``.",
+        "id": "to-describe-the-status-of-a-single-volume-1472507016193",
+        "title": "To describe the status of a single volume"
+      },
+      {
+        "input": {
+          "Filters": [
+            {
+              "Name": "volume-status.status",
+              "Values": [
+                "impaired"
+              ]
+            }
+          ]
+        },
+        "output": {
+          "VolumeStatuses": [
+
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the status for all volumes that are impaired. In this example output, there are no impaired volumes.",
+        "id": "to-describe-the-status-of-impaired-volumes-1472507239821",
+        "title": "To describe the status of impaired volumes"
+      }
+    ],
+    "DescribeVolumes": [
+      {
+        "input": {
+        },
+        "output": {
+          "NextToken": "",
+          "Volumes": [
+            {
+              "Attachments": [
+                {
+                  "AttachTime": "2013-12-18T22:35:00.000Z",
+                  "DeleteOnTermination": true,
+                  "Device": "/dev/sda1",
+                  "InstanceId": "i-1234567890abcdef0",
+                  "State": "attached",
+                  "VolumeId": "vol-049df61146c4d7901"
+                }
+              ],
+              "AvailabilityZone": "us-east-1a",
+              "CreateTime": "2013-12-18T22:35:00.084Z",
+              "Size": 8,
+              "SnapshotId": "snap-1234567890abcdef0",
+              "State": "in-use",
+              "VolumeId": "vol-049df61146c4d7901",
+              "VolumeType": "standard"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes all of your volumes in the default region.",
+        "id": "to-describe-all-volumes-1472506358883",
+        "title": "To describe all volumes"
+      },
+      {
+        "input": {
+          "Filters": [
+            {
+              "Name": "attachment.instance-id",
+              "Values": [
+                "i-1234567890abcdef0"
+              ]
+            },
+            {
+              "Name": "attachment.delete-on-termination",
+              "Values": [
+                "true"
+              ]
+            }
+          ]
+        },
+        "output": {
+          "Volumes": [
+            {
+              "Attachments": [
+                {
+                  "AttachTime": "2013-12-18T22:35:00.000Z",
+                  "DeleteOnTermination": true,
+                  "Device": "/dev/sda1",
+                  "InstanceId": "i-1234567890abcdef0",
+                  "State": "attached",
+                  "VolumeId": "vol-049df61146c4d7901"
+                }
+              ],
+              "AvailabilityZone": "us-east-1a",
+              "CreateTime": "2013-12-18T22:35:00.084Z",
+              "Size": 8,
+              "SnapshotId": "snap-1234567890abcdef0",
+              "State": "in-use",
+              "VolumeId": "vol-049df61146c4d7901",
+              "VolumeType": "standard"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes all volumes that are both attached to the instance with the ID i-1234567890abcdef0 and set to delete when the instance terminates.",
+        "id": "to-describe-volumes-that-are-attached-to-a-specific-instance-1472506613578",
+        "title": "To describe volumes that are attached to a specific instance"
+      }
+    ],
+    "DescribeVpcAttribute": [
+      {
+        "input": {
+          "Attribute": "enableDnsSupport",
+          "VpcId": "vpc-a01106c2"
+        },
+        "output": {
+          "EnableDnsSupport": {
+            "Value": true
+          },
+          "VpcId": "vpc-a01106c2"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the enableDnsSupport attribute. This attribute indicates whether DNS resolution is enabled for the VPC. If this attribute is true, the Amazon DNS server resolves DNS hostnames for your instances to their corresponding IP addresses; otherwise, it does not.",
+        "id": "ec2-describe-vpc-attribute-1",
+        "title": "To describe the enableDnsSupport attribute"
+      },
+      {
+        "input": {
+          "Attribute": "enableDnsHostnames",
+          "VpcId": "vpc-a01106c2"
+        },
+        "output": {
+          "EnableDnsHostnames": {
+            "Value": true
+          },
+          "VpcId": "vpc-a01106c2"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the enableDnsHostnames attribute. This attribute indicates whether the instances launched in the VPC get DNS hostnames. If this attribute is true, instances in the VPC get DNS hostnames; otherwise, they do not.",
+        "id": "ec2-describe-vpc-attribute-2",
+        "title": "To describe the enableDnsHostnames attribute"
+      }
+    ],
+    "DescribeVpcs": [
+      {
+        "input": {
+          "VpcIds": [
+            "vpc-a01106c2"
+          ]
+        },
+        "output": {
+          "Vpcs": [
+            {
+              "CidrBlock": "10.0.0.0/16",
+              "DhcpOptionsId": "dopt-7a8b9c2d",
+              "InstanceTenancy": "default",
+              "IsDefault": false,
+              "State": "available",
+              "Tags": [
+                {
+                  "Key": "Name",
+                  "Value": "MyVPC"
+                }
+              ],
+              "VpcId": "vpc-a01106c2"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the specified VPC.",
+        "id": "ec2-describe-vpcs-1",
+        "title": "To describe a VPC"
+      }
+    ],
+    "DetachInternetGateway": [
+      {
+        "input": {
+          "InternetGatewayId": "igw-c0a643a9",
+          "VpcId": "vpc-a01106c2"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example detaches the specified Internet gateway from the specified VPC.",
+        "id": "ec2-detach-internet-gateway-1",
+        "title": "To detach an Internet gateway from a VPC"
+      }
+    ],
+    "DetachNetworkInterface": [
+      {
+        "input": {
+          "AttachmentId": "eni-attach-66c4350a"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example detaches the specified network interface from its attached instance.",
+        "id": "ec2-detach-network-interface-1",
+        "title": "To detach a network interface from an instance"
+      }
+    ],
+    "DetachVolume": [
+      {
+        "input": {
+          "VolumeId": "vol-1234567890abcdef0"
+        },
+        "output": {
+          "AttachTime": "2014-02-27T19:23:06.000Z",
+          "Device": "/dev/sdb",
+          "InstanceId": "i-1234567890abcdef0",
+          "State": "detaching",
+          "VolumeId": "vol-049df61146c4d7901"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example detaches the volume (``vol-049df61146c4d7901``) from the instance it is attached to.",
+        "id": "to-detach-a-volume-from-an-instance-1472507977694",
+        "title": "To detach a volume from an instance"
+      }
+    ],
+    "DisableVgwRoutePropagation": [
+      {
+        "input": {
+          "GatewayId": "vgw-9a4cacf3",
+          "RouteTableId": "rtb-22574640"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example disables the specified virtual private gateway from propagating static routes to the specified route table.",
+        "id": "ec2-disable-vgw-route-propagation-1",
+        "title": "To disable route propagation"
+      }
+    ],
+    "DisassociateAddress": [
+      {
+        "input": {
+          "AssociationId": "eipassoc-2bebb745"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example disassociates an Elastic IP address from an instance in a VPC.",
+        "id": "ec2-disassociate-address-1",
+        "title": "To disassociate an Elastic IP address in EC2-VPC"
+      },
+      {
+        "input": {
+          "PublicIp": "198.51.100.0"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example disassociates an Elastic IP address from an instance in EC2-Classic.",
+        "id": "ec2-disassociate-address-2",
+        "title": "To disassociate an Elastic IP addresses in EC2-Classic"
+      }
+    ],
+    "DisassociateRouteTable": [
+      {
+        "input": {
+          "AssociationId": "rtbassoc-781d0d1a"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example disassociates the specified route table from its associated subnet.",
+        "id": "ec2-disassociate-route-table-1",
+        "title": "To disassociate a route table"
+      }
+    ],
+    "EnableVgwRoutePropagation": [
+      {
+        "input": {
+          "GatewayId": "vgw-9a4cacf3",
+          "RouteTableId": "rtb-22574640"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example enables the specified virtual private gateway to propagate static routes to the specified route table.",
+        "id": "ec2-enable-vgw-route-propagation-1",
+        "title": "To enable route propagation"
+      }
+    ],
+    "EnableVolumeIO": [
+      {
+        "input": {
+          "VolumeId": "vol-1234567890abcdef0"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example enables I/O on volume ``vol-1234567890abcdef0``.",
+        "id": "to-enable-io-for-a-volume-1472508114867",
+        "title": "To enable I/O for a volume"
+      }
+    ],
+    "ModifyNetworkInterfaceAttribute": [
+      {
+        "input": {
+          "Attachment": {
+            "AttachmentId": "eni-attach-43348162",
+            "DeleteOnTermination": false
+          },
+          "NetworkInterfaceId": "eni-686ea200"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example modifies the attachment attribute of the specified network interface.",
+        "id": "ec2-modify-network-interface-attribute-1",
+        "title": "To modify the attachment attribute of a network interface"
+      },
+      {
+        "input": {
+          "Description": {
+            "Value": "My description"
+          },
+          "NetworkInterfaceId": "eni-686ea200"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example modifies the description attribute of the specified network interface.",
+        "id": "ec2-modify-network-interface-attribute-2",
+        "title": "To modify the description attribute of a network interface"
+      },
+      {
+        "input": {
+          "Groups": [
+            "sg-903004f8",
+            "sg-1a2b3c4d"
+          ],
+          "NetworkInterfaceId": "eni-686ea200"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example command modifies the groupSet attribute of the specified network interface.",
+        "id": "ec2-modify-network-interface-attribute-3",
+        "title": "To modify the groupSet attribute of a network interface"
+      },
+      {
+        "input": {
+          "NetworkInterfaceId": "eni-686ea200",
+          "SourceDestCheck": {
+            "Value": false
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example command modifies the sourceDestCheck attribute of the specified network interface.",
+        "id": "ec2-modify-network-interface-attribute-4",
+        "title": "To modify the sourceDestCheck attribute of a network interface"
+      }
+    ],
+    "ModifySnapshotAttribute": [
+      {
+        "input": {
+          "Attribute": "createVolumePermission",
+          "OperationType": "remove",
+          "SnapshotId": "snap-1234567890abcdef0",
+          "UserIds": [
+            "123456789012"
+          ]
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example modifies snapshot ``snap-1234567890abcdef0`` to remove the create volume permission for a user with the account ID ``123456789012``. If the command succeeds, no output is returned.",
+        "id": "to-modify-a-snapshot-attribute-1472508385907",
+        "title": "To modify a snapshot attribute"
+      },
+      {
+        "input": {
+          "Attribute": "createVolumePermission",
+          "GroupNames": [
+            "all"
+          ],
+          "OperationType": "add",
+          "SnapshotId": "snap-1234567890abcdef0"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example makes the snapshot ``snap-1234567890abcdef0`` public.",
+        "id": "to-make-a-snapshot-public-1472508470529",
+        "title": "To make a snapshot public"
+      }
+    ],
+    "ModifySpotFleetRequest": [
+      {
+        "input": {
+          "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE",
+          "TargetCapacity": 20
+        },
+        "output": {
+          "Return": true
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example increases the target capacity of the specified Spot fleet request.",
+        "id": "ec2-modify-spot-fleet-request-1",
+        "title": "To increase the target capacity of a Spot fleet request"
+      },
+      {
+        "input": {
+          "ExcessCapacityTerminationPolicy": "NoTermination ",
+          "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE",
+          "TargetCapacity": 10
+        },
+        "output": {
+          "Return": true
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example decreases the target capacity of the specified Spot fleet request without terminating any Spot Instances as a result.",
+        "id": "ec2-modify-spot-fleet-request-2",
+        "title": "To decrease the target capacity of a Spot fleet request"
+      }
+    ],
+    "ModifySubnetAttribute": [
+      {
+        "input": {
+          "MapPublicIpOnLaunch": {
+            "Value": true
+          },
+          "SubnetId": "subnet-1a2b3c4d"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example modifies the specified subnet so that all instances launched into this subnet are assigned a public IP address.",
+        "id": "ec2-modify-subnet-attribute-1",
+        "title": "To change a subnet's public IP addressing behavior"
+      }
+    ],
+    "ModifyVolumeAttribute": [
+      {
+        "input": {
+          "AutoEnableIO": {
+            "Value": true
+          },
+          "DryRun": true,
+          "VolumeId": "vol-1234567890abcdef0"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example sets the ``autoEnableIo`` attribute of the volume with the ID ``vol-1234567890abcdef0`` to ``true``. If the command succeeds, no output is returned.",
+        "id": "to-modify-a-volume-attribute-1472508596749",
+        "title": "To modify a volume attribute"
+      }
+    ],
+    "ModifyVpcAttribute": [
+      {
+        "input": {
+          "EnableDnsSupport": {
+            "Value": false
+          },
+          "VpcId": "vpc-a01106c2"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example modifies the enableDnsSupport attribute. This attribute indicates whether DNS resolution is enabled for the VPC. If this attribute is true, the Amazon DNS server resolves DNS hostnames for instances in the VPC to their corresponding IP addresses; otherwise, it does not.",
+        "id": "ec2-modify-vpc-attribute-1",
+        "title": "To modify the enableDnsSupport attribute"
+      },
+      {
+        "input": {
+          "EnableDnsHostnames": {
+            "Value": false
+          },
+          "VpcId": "vpc-a01106c2"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example modifies the enableDnsHostnames attribute. This attribute indicates whether instances launched in the VPC get DNS hostnames. If this attribute is true, instances in the VPC get DNS hostnames; otherwise, they do not.",
+        "id": "ec2-modify-vpc-attribute-2",
+        "title": "To modify the enableDnsHostnames attribute"
+      }
+    ],
+    "MoveAddressToVpc": [
+      {
+        "input": {
+          "PublicIp": "54.123.4.56"
+        },
+        "output": {
+          "Status": "MoveInProgress"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example moves the specified Elastic IP address to the EC2-VPC platform.",
+        "id": "ec2-move-address-to-vpc-1",
+        "title": "To move an address to EC2-VPC"
+      }
+    ],
+    "PurchaseScheduledInstances": [
+      {
+        "input": {
+          "PurchaseRequests": [
+            {
+              "InstanceCount": 1,
+              "PurchaseToken": "eyJ2IjoiMSIsInMiOjEsImMiOi..."
+            }
+          ]
+        },
+        "output": {
+          "ScheduledInstanceSet": [
+            {
+              "AvailabilityZone": "us-west-2b",
+              "CreateDate": "2016-01-25T21:43:38.612Z",
+              "HourlyPrice": "0.095",
+              "InstanceCount": 1,
+              "InstanceType": "c4.large",
+              "NetworkPlatform": "EC2-VPC",
+              "NextSlotStartTime": "2016-01-31T09:00:00Z",
+              "Platform": "Linux/UNIX",
+              "Recurrence": {
+                "Frequency": "Weekly",
+                "Interval": 1,
+                "OccurrenceDaySet": [
+                  1
+                ],
+                "OccurrenceRelativeToEnd": false,
+                "OccurrenceUnit": ""
+              },
+              "ScheduledInstanceId": "sci-1234-1234-1234-1234-123456789012",
+              "SlotDurationInHours": 32,
+              "TermEndDate": "2017-01-31T09:00:00Z",
+              "TermStartDate": "2016-01-31T09:00:00Z",
+              "TotalScheduledInstanceHours": 1696
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example purchases a Scheduled Instance.",
+        "id": "ec2-purchase-scheduled-instances-1",
+        "title": "To purchase a Scheduled Instance"
+      }
+    ],
+    "ReleaseAddress": [
+      {
+        "input": {
+          "AllocationId": "eipalloc-64d5890a"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example releases an Elastic IP address for use with instances in a VPC.",
+        "id": "ec2-release-address-1",
+        "title": "To release an Elastic IP address for EC2-VPC"
+      },
+      {
+        "input": {
+          "PublicIp": "198.51.100.0"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example releases an Elastic IP address for use with instances in EC2-Classic.",
+        "id": "ec2-release-address-2",
+        "title": "To release an Elastic IP addresses for EC2-Classic"
+      }
+    ],
+    "ReplaceNetworkAclAssociation": [
+      {
+        "input": {
+          "AssociationId": "aclassoc-e5b95c8c",
+          "NetworkAclId": "acl-5fb85d36"
+        },
+        "output": {
+          "NewAssociationId": "aclassoc-3999875b"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example associates the specified network ACL with the subnet for the specified network ACL association.",
+        "id": "ec2-replace-network-acl-association-1",
+        "title": "To replace the network ACL associated with a subnet"
+      }
+    ],
+    "ReplaceNetworkAclEntry": [
+      {
+        "input": {
+          "CidrBlock": "203.0.113.12/24",
+          "Egress": false,
+          "NetworkAclId": "acl-5fb85d36",
+          "PortRange": {
+            "From": 53,
+            "To": 53
+          },
+          "Protocol": "udp",
+          "RuleAction": "allow",
+          "RuleNumber": 100
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example replaces an entry for the specified network ACL. The new rule 100 allows ingress traffic from 203.0.113.12/24 on UDP port 53 (DNS) into any associated subnet.",
+        "id": "ec2-replace-network-acl-entry-1",
+        "title": "To replace a network ACL entry"
+      }
+    ],
+    "ReplaceRoute": [
+      {
+        "input": {
+          "DestinationCidrBlock": "10.0.0.0/16",
+          "GatewayId": "vgw-9a4cacf3",
+          "RouteTableId": "rtb-22574640"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example replaces the specified route in the specified table table. The new route matches the specified CIDR and sends the traffic to the specified virtual private gateway.",
+        "id": "ec2-replace-route-1",
+        "title": "To replace a route"
+      }
+    ],
+    "ReplaceRouteTableAssociation": [
+      {
+        "input": {
+          "AssociationId": "rtbassoc-781d0d1a",
+          "RouteTableId": "rtb-22574640"
+        },
+        "output": {
+          "NewAssociationId": "rtbassoc-3a1f0f58"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example associates the specified route table with the subnet for the specified route table association.",
+        "id": "ec2-replace-route-table-association-1",
+        "title": "To replace the route table associated with a subnet"
+      }
+    ],
+    "RequestSpotFleet": [
+      {
+        "input": {
+          "SpotFleetRequestConfig": {
+            "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role",
+            "LaunchSpecifications": [
+              {
+                "IamInstanceProfile": {
+                  "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role"
+                },
+                "ImageId": "ami-1a2b3c4d",
+                "InstanceType": "m3.medium",
+                "KeyName": "my-key-pair",
+                "SecurityGroups": [
+                  {
+                    "GroupId": "sg-1a2b3c4d"
+                  }
+                ],
+                "SubnetId": "subnet-1a2b3c4d, subnet-3c4d5e6f"
+              }
+            ],
+            "SpotPrice": "0.04",
+            "TargetCapacity": 2
+          }
+        },
+        "output": {
+          "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a Spot fleet request with two launch specifications that differ only by subnet. The Spot fleet launches the instances in the specified subnet with the lowest price. If the instances are launched in a default VPC, they receive a public IP address by default. If the instances are launched in a nondefault VPC, they do not receive a public IP address by default. Note that you can't specify different subnets from the same Availability Zone in a Spot fleet request.",
+        "id": "ec2-request-spot-fleet-1",
+        "title": "To request a Spot fleet in the subnet with the lowest price"
+      },
+      {
+        "input": {
+          "SpotFleetRequestConfig": {
+            "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role",
+            "LaunchSpecifications": [
+              {
+                "IamInstanceProfile": {
+                  "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role"
+                },
+                "ImageId": "ami-1a2b3c4d",
+                "InstanceType": "m3.medium",
+                "KeyName": "my-key-pair",
+                "Placement": {
+                  "AvailabilityZone": "us-west-2a, us-west-2b"
+                },
+                "SecurityGroups": [
+                  {
+                    "GroupId": "sg-1a2b3c4d"
+                  }
+                ]
+              }
+            ],
+            "SpotPrice": "0.04",
+            "TargetCapacity": 2
+          }
+        },
+        "output": {
+          "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a Spot fleet request with two launch specifications that differ only by Availability Zone. The Spot fleet launches the instances in the specified Availability Zone with the lowest price. If your account supports EC2-VPC only, Amazon EC2 launches the Spot instances in the default subnet of the Availability Zone. If your account supports EC2-Classic, Amazon EC2 launches the instances in EC2-Classic in the Availability Zone.",
+        "id": "ec2-request-spot-fleet-2",
+        "title": "To request a Spot fleet in the Availability Zone with the lowest price"
+      },
+      {
+        "input": {
+          "SpotFleetRequestConfig": {
+            "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role",
+            "LaunchSpecifications": [
+              {
+                "IamInstanceProfile": {
+                  "Arn": "arn:aws:iam::880185128111:instance-profile/my-iam-role"
+                },
+                "ImageId": "ami-1a2b3c4d",
+                "InstanceType": "m3.medium",
+                "KeyName": "my-key-pair",
+                "NetworkInterfaces": [
+                  {
+                    "AssociatePublicIpAddress": true,
+                    "DeviceIndex": 0,
+                    "Groups": [
+                      "sg-1a2b3c4d"
+                    ],
+                    "SubnetId": "subnet-1a2b3c4d"
+                  }
+                ]
+              }
+            ],
+            "SpotPrice": "0.04",
+            "TargetCapacity": 2
+          }
+        },
+        "output": {
+          "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example assigns public addresses to instances launched in a nondefault VPC. Note that when you specify a network interface, you must include the subnet ID and security group ID using the network interface.",
+        "id": "ec2-request-spot-fleet-3",
+        "title": "To launch Spot instances in a subnet and assign them public IP addresses"
+      },
+      {
+        "input": {
+          "SpotFleetRequestConfig": {
+            "AllocationStrategy": "diversified",
+            "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role",
+            "LaunchSpecifications": [
+              {
+                "ImageId": "ami-1a2b3c4d",
+                "InstanceType": "c4.2xlarge",
+                "SubnetId": "subnet-1a2b3c4d"
+              },
+              {
+                "ImageId": "ami-1a2b3c4d",
+                "InstanceType": "m3.2xlarge",
+                "SubnetId": "subnet-1a2b3c4d"
+              },
+              {
+                "ImageId": "ami-1a2b3c4d",
+                "InstanceType": "r3.2xlarge",
+                "SubnetId": "subnet-1a2b3c4d"
+              }
+            ],
+            "SpotPrice": "0.70",
+            "TargetCapacity": 30
+          }
+        },
+        "output": {
+          "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a Spot fleet request that launches 30 instances using the diversified allocation strategy. The launch specifications differ by instance type. The Spot fleet distributes the instances across the launch specifications such that there are 10 instances of each type.",
+        "id": "ec2-request-spot-fleet-4",
+        "title": "To request a Spot fleet using the diversified allocation strategy"
+      }
+    ],
+    "RequestSpotInstances": [
+      {
+        "input": {
+          "InstanceCount": 5,
+          "LaunchSpecification": {
+            "IamInstanceProfile": {
+              "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role"
+            },
+            "ImageId": "ami-1a2b3c4d",
+            "InstanceType": "m3.medium",
+            "KeyName": "my-key-pair",
+            "Placement": {
+              "AvailabilityZone": "us-west-2a"
+            },
+            "SecurityGroupIds": [
+              "sg-1a2b3c4d"
+            ]
+          },
+          "SpotPrice": "0.03",
+          "Type": "one-time"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a one-time Spot Instance request for five instances in the specified Availability Zone. If your account supports EC2-VPC only, Amazon EC2 launches the instances in the default subnet of the specified Availability Zone. If your account supports EC2-Classic, Amazon EC2 launches the instances in EC2-Classic in the specified Availability Zone.",
+        "id": "ec2-request-spot-instances-1",
+        "title": "To create a one-time Spot Instance request"
+      },
+      {
+        "input": {
+          "InstanceCount": 5,
+          "LaunchSpecification": {
+            "IamInstanceProfile": {
+              "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role"
+            },
+            "ImageId": "ami-1a2b3c4d",
+            "InstanceType": "m3.medium",
+            "SecurityGroupIds": [
+              "sg-1a2b3c4d"
+            ],
+            "SubnetId": "subnet-1a2b3c4d"
+          },
+          "SpotPrice": "0.050",
+          "Type": "one-time"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example command creates a one-time Spot Instance request for five instances in the specified subnet. Amazon EC2 launches the instances in the specified subnet. If the VPC is a nondefault VPC, the instances do not receive a public IP address by default.",
+        "id": "ec2-request-spot-instances-2",
+        "title": "To create a one-time Spot Instance request"
+      }
+    ],
+    "ResetSnapshotAttribute": [
+      {
+        "input": {
+          "Attribute": "createVolumePermission",
+          "SnapshotId": "snap-1234567890abcdef0"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example resets the create volume permissions for snapshot ``snap-1234567890abcdef0``. If the command succeeds, no output is returned.",
+        "id": "to-reset-a-snapshot-attribute-1472508825735",
+        "title": "To reset a snapshot attribute"
+      }
+    ],
+    "RestoreAddressToClassic": [
+      {
+        "input": {
+          "PublicIp": "198.51.100.0"
+        },
+        "output": {
+          "PublicIp": "198.51.100.0",
+          "Status": "MoveInProgress"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example restores the specified Elastic IP address to the EC2-Classic platform.",
+        "id": "ec2-restore-address-to-classic-1",
+        "title": "To restore an address to EC2-Classic"
+      }
+    ],
+    "RunScheduledInstances": [
+      {
+        "input": {
+          "InstanceCount": 1,
+          "LaunchSpecification": {
+            "IamInstanceProfile": {
+              "Name": "my-iam-role"
+            },
+            "ImageId": "ami-12345678",
+            "InstanceType": "c4.large",
+            "KeyName": "my-key-pair",
+            "NetworkInterfaces": [
+              {
+                "AssociatePublicIpAddress": true,
+                "DeviceIndex": 0,
+                "Groups": [
+                  "sg-12345678"
+                ],
+                "SubnetId": "subnet-12345678"
+              }
+            ]
+          },
+          "ScheduledInstanceId": "sci-1234-1234-1234-1234-123456789012"
+        },
+        "output": {
+          "InstanceIdSet": [
+            "i-1234567890abcdef0"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example launches the specified Scheduled Instance in a VPC.",
+        "id": "ec2-run-scheduled-instances-1",
+        "title": "To launch a Scheduled Instance in a VPC"
+      },
+      {
+        "input": {
+          "InstanceCount": 1,
+          "LaunchSpecification": {
+            "IamInstanceProfile": {
+              "Name": "my-iam-role"
+            },
+            "ImageId": "ami-12345678",
+            "InstanceType": "c4.large",
+            "KeyName": "my-key-pair",
+            "Placement": {
+              "AvailabilityZone": "us-west-2b"
+            },
+            "SecurityGroupIds": [
+              "sg-12345678"
+            ]
+          },
+          "ScheduledInstanceId": "sci-1234-1234-1234-1234-123456789012"
+        },
+        "output": {
+          "InstanceIdSet": [
+            "i-1234567890abcdef0"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example launches the specified Scheduled Instance in EC2-Classic.",
+        "id": "ec2-run-scheduled-instances-2",
+        "title": "To launch a Scheduled Instance in EC2-Classic"
+      }
+    ],
+    "UnassignPrivateIpAddresses": [
+      {
+        "input": {
+          "NetworkInterfaceId": "eni-e5aa89a3",
+          "PrivateIpAddresses": [
+            "10.0.0.82"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example unassigns the specified private IP address from the specified network interface.",
+        "id": "ec2-unassign-private-ip-addresses-1",
+        "title": "To unassign a secondary private IP address from a network interface"
+      }
+    ]
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-09-15/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-09-15/paginators-1.json
new file mode 100644
index 00000000..2bd01ad5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-09-15/paginators-1.json
@@ -0,0 +1,63 @@
+{
+  "pagination": {
+    "DescribeInstanceStatus": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "InstanceStatuses"
+    },
+    "DescribeInstances": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Reservations"
+    },
+    "DescribeReservedInstancesOfferings": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ReservedInstancesOfferings"
+    },
+    "DescribeReservedInstancesModifications": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "ReservedInstancesModifications"
+    },
+    "DescribeSnapshots": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Snapshots"
+    },
+    "DescribeSpotFleetRequests": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "SpotFleetRequestConfigs"
+    },
+    "DescribeSpotPriceHistory": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "SpotPriceHistory"
+    },
+    "DescribeTags": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Tags"
+    },
+    "DescribeVolumeStatus": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "VolumeStatuses"
+    },
+    "DescribeVolumes": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Volumes"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-09-15/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-09-15/service-2.json.gz
new file mode 100644
index 00000000..93d492e8
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-09-15/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-09-15/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-09-15/waiters-2.json
new file mode 100644
index 00000000..71051948
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-09-15/waiters-2.json
@@ -0,0 +1,593 @@
+{
+  "version": 2,
+  "waiters": {
+    "InstanceExists": {
+      "delay": 5,
+      "maxAttempts": 40,
+      "operation": "DescribeInstances",
+      "acceptors": [
+        {
+          "matcher": "path",
+          "expected": true,
+          "argument": "length(Reservations[]) > `0`",
+          "state": "success"
+        },
+        {
+          "matcher": "error",
+          "expected": "InvalidInstanceID.NotFound",
+          "state": "retry"
+        }
+      ]
+    },
+    "BundleTaskComplete": {
+      "delay": 15,
+      "operation": "DescribeBundleTasks",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "complete",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "BundleTasks[].State"
+        },
+        {
+          "expected": "failed",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "BundleTasks[].State"
+        }
+      ]
+    },
+    "ConversionTaskCancelled": {
+      "delay": 15,
+      "operation": "DescribeConversionTasks",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "cancelled",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "ConversionTasks[].State"
+        }
+      ]
+    },
+    "ConversionTaskCompleted": {
+      "delay": 15,
+      "operation": "DescribeConversionTasks",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "completed",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "ConversionTasks[].State"
+        },
+        {
+          "expected": "cancelled",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "ConversionTasks[].State"
+        },
+        {
+          "expected": "cancelling",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "ConversionTasks[].State"
+        }
+      ]
+    },
+    "ConversionTaskDeleted": {
+      "delay": 15,
+      "operation": "DescribeConversionTasks",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "deleted",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "ConversionTasks[].State"
+        }
+      ]
+    },
+    "CustomerGatewayAvailable": {
+      "delay": 15,
+      "operation": "DescribeCustomerGateways",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "CustomerGateways[].State"
+        },
+        {
+          "expected": "deleted",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "CustomerGateways[].State"
+        },
+        {
+          "expected": "deleting",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "CustomerGateways[].State"
+        }
+      ]
+    },
+    "ExportTaskCancelled": {
+      "delay": 15,
+      "operation": "DescribeExportTasks",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "cancelled",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "ExportTasks[].State"
+        }
+      ]
+    },
+    "ExportTaskCompleted": {
+      "delay": 15,
+      "operation": "DescribeExportTasks",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "completed",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "ExportTasks[].State"
+        }
+      ]
+    },
+    "ImageExists": {
+      "operation": "DescribeImages",
+      "maxAttempts": 40,
+      "delay": 15,
+      "acceptors": [
+        {
+          "matcher": "path",
+          "expected": true,
+          "argument": "length(Images[]) > `0`",
+          "state": "success"
+        },
+        {
+          "matcher": "error",
+          "expected": "InvalidAMIID.NotFound",
+          "state": "retry"
+        }
+      ]
+    },
+    "ImageAvailable": {
+      "operation": "DescribeImages",
+      "maxAttempts": 40,
+      "delay": 15,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "pathAll",
+          "argument": "Images[].State",
+          "expected": "available"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "Images[].State",
+          "expected": "failed"
+        }
+      ]
+    },
+    "InstanceRunning": {
+      "delay": 15,
+      "operation": "DescribeInstances",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "running",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "shutting-down",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "terminated",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "stopping",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "matcher": "error",
+          "expected": "InvalidInstanceID.NotFound",
+          "state": "retry"
+        }
+      ]
+    },
+    "InstanceStatusOk": {
+      "operation": "DescribeInstanceStatus",
+      "maxAttempts": 40,
+      "delay": 15,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "pathAll",
+          "argument": "InstanceStatuses[].InstanceStatus.Status",
+          "expected": "ok"
+        },
+        {
+          "matcher": "error",
+          "expected": "InvalidInstanceID.NotFound",
+          "state": "retry"
+        }
+      ]
+    },
+    "InstanceStopped": {
+      "delay": 15,
+      "operation": "DescribeInstances",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "stopped",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "pending",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "terminated",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        }
+      ]
+    },
+    "InstanceTerminated": {
+      "delay": 15,
+      "operation": "DescribeInstances",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "terminated",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "pending",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "stopping",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        }
+      ]
+    },
+    "KeyPairExists": {
+      "operation": "DescribeKeyPairs",
+      "delay": 5,
+      "maxAttempts": 6,
+      "acceptors": [
+        {
+          "expected": true,
+          "matcher": "path",
+          "state": "success",
+          "argument": "length(KeyPairs[].KeyName) > `0`"
+        },
+        {
+          "expected": "InvalidKeyPair.NotFound",
+          "matcher": "error",
+          "state": "retry"
+        }
+      ]
+    },
+    "NatGatewayAvailable": {
+      "operation": "DescribeNatGateways",
+      "delay": 15,
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "pathAll",
+          "argument": "NatGateways[].State",
+          "expected": "available"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "NatGateways[].State",
+          "expected": "failed"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "NatGateways[].State",
+          "expected": "deleting"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "NatGateways[].State",
+          "expected": "deleted"
+        },
+        {
+          "state": "retry",
+          "matcher": "error",
+          "expected": "NatGatewayNotFound"
+        }
+      ]
+    },
+    "NetworkInterfaceAvailable": {
+      "operation": "DescribeNetworkInterfaces",
+      "delay": 20,
+      "maxAttempts": 10,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "NetworkInterfaces[].Status"
+        },
+        {
+          "expected": "InvalidNetworkInterfaceID.NotFound",
+          "matcher": "error",
+          "state": "failure"
+        }
+      ]
+    },
+    "PasswordDataAvailable": {
+      "operation": "GetPasswordData",
+      "maxAttempts": 40,
+      "delay": 15,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "path",
+          "argument": "length(PasswordData) > `0`",
+          "expected": true
+        }
+      ]
+    },
+    "SnapshotCompleted": {
+      "delay": 15,
+      "operation": "DescribeSnapshots",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "completed",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Snapshots[].State"
+        }
+      ]
+    },
+    "SpotInstanceRequestFulfilled": {
+      "operation": "DescribeSpotInstanceRequests",
+      "maxAttempts": 40,
+      "delay": 15,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "pathAll",
+          "argument": "SpotInstanceRequests[].Status.Code",
+          "expected": "fulfilled"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "SpotInstanceRequests[].Status.Code",
+          "expected": "schedule-expired"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "SpotInstanceRequests[].Status.Code",
+          "expected": "canceled-before-fulfillment"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "SpotInstanceRequests[].Status.Code",
+          "expected": "bad-parameters"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "SpotInstanceRequests[].Status.Code",
+          "expected": "system-error"
+        }
+      ]
+    },
+    "SubnetAvailable": {
+      "delay": 15,
+      "operation": "DescribeSubnets",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Subnets[].State"
+        }
+      ]
+    },
+    "SystemStatusOk": {
+      "operation": "DescribeInstanceStatus",
+      "maxAttempts": 40,
+      "delay": 15,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "pathAll",
+          "argument": "InstanceStatuses[].SystemStatus.Status",
+          "expected": "ok"
+        }
+      ]
+    },
+    "VolumeAvailable": {
+      "delay": 15,
+      "operation": "DescribeVolumes",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Volumes[].State"
+        },
+        {
+          "expected": "deleted",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Volumes[].State"
+        }
+      ]
+    },
+    "VolumeDeleted": {
+      "delay": 15,
+      "operation": "DescribeVolumes",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "deleted",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Volumes[].State"
+        },
+        {
+          "matcher": "error",
+          "expected": "InvalidVolume.NotFound",
+          "state": "success"
+        }
+      ]
+    },
+    "VolumeInUse": {
+      "delay": 15,
+      "operation": "DescribeVolumes",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "in-use",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Volumes[].State"
+        },
+        {
+          "expected": "deleted",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Volumes[].State"
+        }
+      ]
+    },
+    "VpcAvailable": {
+      "delay": 15,
+      "operation": "DescribeVpcs",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Vpcs[].State"
+        }
+      ]
+    },
+    "VpcExists": {
+      "operation": "DescribeVpcs",
+      "delay": 1,
+      "maxAttempts": 5,
+      "acceptors": [
+        {
+          "matcher": "status",
+          "expected": 200,
+          "state": "success"
+        },
+        {
+          "matcher": "error",
+          "expected": "InvalidVpcID.NotFound",
+          "state": "retry"
+        }
+      ]
+    },
+    "VpnConnectionAvailable": {
+      "delay": 15,
+      "operation": "DescribeVpnConnections",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "VpnConnections[].State"
+        },
+        {
+          "expected": "deleting",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "VpnConnections[].State"
+        },
+        {
+          "expected": "deleted",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "VpnConnections[].State"
+        }
+      ]
+    },
+    "VpnConnectionDeleted": {
+      "delay": 15,
+      "operation": "DescribeVpnConnections",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "deleted",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "VpnConnections[].State"
+        },
+        {
+          "expected": "pending",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "VpnConnections[].State"
+        }
+      ]
+    },
+    "VpcPeeringConnectionExists": {
+      "delay": 15,
+      "operation": "DescribeVpcPeeringConnections",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "matcher": "status",
+          "expected": 200,
+          "state": "success"
+        },
+        {
+          "matcher": "error",
+          "expected": "InvalidVpcPeeringConnectionID.NotFound",
+          "state": "retry"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-11-15/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-11-15/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..80f15452
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-11-15/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-11-15/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-11-15/examples-1.json
new file mode 100644
index 00000000..93b4bf88
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-11-15/examples-1.json
@@ -0,0 +1,5048 @@
+{
+  "version": "1.0",
+  "examples": {
+    "AllocateAddress": [
+      {
+        "input": {
+          "Domain": "vpc"
+        },
+        "output": {
+          "AllocationId": "eipalloc-64d5890a",
+          "Domain": "vpc",
+          "PublicIp": "203.0.113.0"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example allocates an Elastic IP address to use with an instance in a VPC.",
+        "id": "ec2-allocate-address-1",
+        "title": "To allocate an Elastic IP address for EC2-VPC"
+      },
+      {
+        "output": {
+          "Domain": "standard",
+          "PublicIp": "198.51.100.0"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example allocates an Elastic IP address to use with an instance in EC2-Classic.",
+        "id": "ec2-allocate-address-2",
+        "title": "To allocate an Elastic IP address for EC2-Classic"
+      }
+    ],
+    "AssignPrivateIpAddresses": [
+      {
+        "input": {
+          "NetworkInterfaceId": "eni-e5aa89a3",
+          "PrivateIpAddresses": [
+            "10.0.0.82"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example assigns the specified secondary private IP address to the specified network interface.",
+        "id": "ec2-assign-private-ip-addresses-1",
+        "title": "To assign a specific secondary private IP address to an interface"
+      },
+      {
+        "input": {
+          "NetworkInterfaceId": "eni-e5aa89a3",
+          "SecondaryPrivateIpAddressCount": 2
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example assigns two secondary private IP addresses to the specified network interface. Amazon EC2 automatically assigns these IP addresses from the available IP addresses in the CIDR block range of the subnet the network interface is associated with.",
+        "id": "ec2-assign-private-ip-addresses-2",
+        "title": "To assign secondary private IP addresses that Amazon EC2 selects to an interface"
+      }
+    ],
+    "AssociateAddress": [
+      {
+        "input": {
+          "AllocationId": "eipalloc-64d5890a",
+          "InstanceId": "i-0b263919b6498b123"
+        },
+        "output": {
+          "AssociationId": "eipassoc-2bebb745"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example associates the specified Elastic IP address with the specified instance in a VPC.",
+        "id": "ec2-associate-address-1",
+        "title": "To associate an Elastic IP address in EC2-VPC"
+      },
+      {
+        "input": {
+          "AllocationId": "eipalloc-64d5890a",
+          "NetworkInterfaceId": "eni-1a2b3c4d"
+        },
+        "output": {
+          "AssociationId": "eipassoc-2bebb745"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example associates the specified Elastic IP address with the specified network interface.",
+        "id": "ec2-associate-address-2",
+        "title": "To associate an Elastic IP address with a network interface"
+      },
+      {
+        "input": {
+          "InstanceId": "i-07ffe74c7330ebf53",
+          "PublicIp": "198.51.100.0"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example associates an Elastic IP address with an instance in EC2-Classic.",
+        "id": "ec2-associate-address-3",
+        "title": "To associate an Elastic IP address in EC2-Classic"
+      }
+    ],
+    "AssociateDhcpOptions": [
+      {
+        "input": {
+          "DhcpOptionsId": "dopt-d9070ebb",
+          "VpcId": "vpc-a01106c2"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example associates the specified DHCP options set with the specified VPC.",
+        "id": "ec2-associate-dhcp-options-1",
+        "title": "To associate a DHCP options set with a VPC"
+      },
+      {
+        "input": {
+          "DhcpOptionsId": "default",
+          "VpcId": "vpc-a01106c2"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example associates the default DHCP options set with the specified VPC.",
+        "id": "ec2-associate-dhcp-options-2",
+        "title": "To associate the default DHCP options set with a VPC"
+      }
+    ],
+    "AssociateIamInstanceProfile": [
+      {
+        "input": {
+          "IamInstanceProfile": {
+            "Name": "admin-role"
+          },
+          "InstanceId": "i-123456789abcde123"
+        },
+        "output": {
+          "IamInstanceProfileAssociation": {
+            "AssociationId": "iip-assoc-0e7736511a163c209",
+            "IamInstanceProfile": {
+              "Arn": "arn:aws:iam::123456789012:instance-profile/admin-role",
+              "Id": "AIPAJBLK7RKJKWDXVHIEC"
+            },
+            "InstanceId": "i-123456789abcde123",
+            "State": "associating"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example associates an IAM instance profile named admin-role with the specified instance.",
+        "id": "to-associate-an-iam-instance-profile-with-an-instance-1528928429850",
+        "title": "To associate an IAM instance profile with an instance"
+      }
+    ],
+    "AssociateRouteTable": [
+      {
+        "input": {
+          "RouteTableId": "rtb-22574640",
+          "SubnetId": "subnet-9d4a7b6"
+        },
+        "output": {
+          "AssociationId": "rtbassoc-781d0d1a"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example associates the specified route table with the specified subnet.",
+        "id": "ec2-associate-route-table-1",
+        "title": "To associate a route table with a subnet"
+      }
+    ],
+    "AttachInternetGateway": [
+      {
+        "input": {
+          "InternetGatewayId": "igw-c0a643a9",
+          "VpcId": "vpc-a01106c2"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example attaches the specified Internet gateway to the specified VPC.",
+        "id": "ec2-attach-internet-gateway-1",
+        "title": "To attach an Internet gateway to a VPC"
+      }
+    ],
+    "AttachNetworkInterface": [
+      {
+        "input": {
+          "DeviceIndex": 1,
+          "InstanceId": "i-1234567890abcdef0",
+          "NetworkInterfaceId": "eni-e5aa89a3"
+        },
+        "output": {
+          "AttachmentId": "eni-attach-66c4350a"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example attaches the specified network interface to the specified instance.",
+        "id": "ec2-attach-network-interface-1",
+        "title": "To attach a network interface to an instance"
+      }
+    ],
+    "AttachVolume": [
+      {
+        "input": {
+          "Device": "/dev/sdf",
+          "InstanceId": "i-01474ef662b89480",
+          "VolumeId": "vol-1234567890abcdef0"
+        },
+        "output": {
+          "AttachTime": "2016-08-29T18:52:32.724Z",
+          "Device": "/dev/sdf",
+          "InstanceId": "i-01474ef662b89480",
+          "State": "attaching",
+          "VolumeId": "vol-1234567890abcdef0"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example attaches a volume (``vol-1234567890abcdef0``) to an instance (``i-01474ef662b89480``) as ``/dev/sdf``.",
+        "id": "to-attach-a-volume-to-an-instance-1472499213109",
+        "title": "To attach a volume to an instance"
+      }
+    ],
+    "AuthorizeSecurityGroupEgress": [
+      {
+        "input": {
+          "GroupId": "sg-1a2b3c4d",
+          "IpPermissions": [
+            {
+              "FromPort": 80,
+              "IpProtocol": "tcp",
+              "IpRanges": [
+                {
+                  "CidrIp": "10.0.0.0/16"
+                }
+              ],
+              "ToPort": 80
+            }
+          ]
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example adds a rule that grants access to the specified address ranges on TCP port 80.",
+        "id": "to-add-a-rule-that-allows-outbound-traffic-to-a-specific-address-range-1528929309636",
+        "title": "To add a rule that allows outbound traffic to a specific address range"
+      },
+      {
+        "input": {
+          "GroupId": "sg-1a2b3c4d",
+          "IpPermissions": [
+            {
+              "FromPort": 80,
+              "IpProtocol": "tcp",
+              "ToPort": 80,
+              "UserIdGroupPairs": [
+                {
+                  "GroupId": "sg-4b51a32f"
+                }
+              ]
+            }
+          ]
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example adds a rule that grants access to the specified security group on TCP port 80.",
+        "id": "to-add-a-rule-that-allows-outbound-traffic-to-a-specific-security-group-1528929760260",
+        "title": "To add a rule that allows outbound traffic to a specific security group"
+      }
+    ],
+    "AuthorizeSecurityGroupIngress": [
+      {
+        "input": {
+          "GroupId": "sg-903004f8",
+          "IpPermissions": [
+            {
+              "FromPort": 22,
+              "IpProtocol": "tcp",
+              "IpRanges": [
+                {
+                  "CidrIp": "203.0.113.0/24",
+                  "Description": "SSH access from the LA office"
+                }
+              ],
+              "ToPort": 22
+            }
+          ]
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example enables inbound traffic on TCP port 22 (SSH). The rule includes a description to help you identify it later.",
+        "id": "to-add-a-rule-that-allows-inbound-ssh-traffic-1529011610328",
+        "title": "To add a rule that allows inbound SSH traffic from an IPv4 address range"
+      },
+      {
+        "input": {
+          "GroupId": "sg-111aaa22",
+          "IpPermissions": [
+            {
+              "FromPort": 80,
+              "IpProtocol": "tcp",
+              "ToPort": 80,
+              "UserIdGroupPairs": [
+                {
+                  "Description": "HTTP access from other instances",
+                  "GroupId": "sg-1a2b3c4d"
+                }
+              ]
+            }
+          ]
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example enables inbound traffic on TCP port 80 from the specified security group. The group must be in the same VPC or a peer VPC. Incoming traffic is allowed based on the private IP addresses of instances that are associated with the specified security group.",
+        "id": "to-add-a-rule-that-allows-inbound-http-traffic-from-another-security-group-1529012163168",
+        "title": "To add a rule that allows inbound HTTP traffic from another security group"
+      },
+      {
+        "input": {
+          "GroupId": "sg-123abc12 ",
+          "IpPermissions": [
+            {
+              "FromPort": 3389,
+              "IpProtocol": "tcp",
+              "Ipv6Ranges": [
+                {
+                  "CidrIpv6": "2001:db8:1234:1a00::/64",
+                  "Description": "RDP access from the NY office"
+                }
+              ],
+              "ToPort": 3389
+            }
+          ]
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example adds an inbound rule that allows RDP traffic from the specified IPv6 address range. The rule includes a description to help you identify it later.",
+        "id": "to-add-a-rule-with-a-description-1529012418116",
+        "title": "To add a rule that allows inbound RDP traffic from an IPv6 address range"
+      }
+    ],
+    "CancelSpotFleetRequests": [
+      {
+        "input": {
+          "SpotFleetRequestIds": [
+            "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE"
+          ],
+          "TerminateInstances": true
+        },
+        "output": {
+          "SuccessfulFleetRequests": [
+            {
+              "CurrentSpotFleetRequestState": "cancelled_running",
+              "PreviousSpotFleetRequestState": "active",
+              "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example cancels the specified Spot fleet request and terminates its associated Spot Instances.",
+        "id": "ec2-cancel-spot-fleet-requests-1",
+        "title": "To cancel a Spot fleet request"
+      },
+      {
+        "input": {
+          "SpotFleetRequestIds": [
+            "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE"
+          ],
+          "TerminateInstances": false
+        },
+        "output": {
+          "SuccessfulFleetRequests": [
+            {
+              "CurrentSpotFleetRequestState": "cancelled_terminating",
+              "PreviousSpotFleetRequestState": "active",
+              "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example cancels the specified Spot fleet request without terminating its associated Spot Instances.",
+        "id": "ec2-cancel-spot-fleet-requests-2",
+        "title": "To cancel a Spot fleet request without terminating its Spot Instances"
+      }
+    ],
+    "CancelSpotInstanceRequests": [
+      {
+        "input": {
+          "SpotInstanceRequestIds": [
+            "sir-08b93456"
+          ]
+        },
+        "output": {
+          "CancelledSpotInstanceRequests": [
+            {
+              "SpotInstanceRequestId": "sir-08b93456",
+              "State": "cancelled"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example cancels a Spot Instance request.",
+        "id": "ec2-cancel-spot-instance-requests-1",
+        "title": "To cancel Spot Instance requests"
+      }
+    ],
+    "ConfirmProductInstance": [
+      {
+        "input": {
+          "InstanceId": "i-1234567890abcdef0",
+          "ProductCode": "774F4FF8"
+        },
+        "output": {
+          "OwnerId": "123456789012"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example determines whether the specified product code is associated with the specified instance.",
+        "id": "to-confirm-the-product-instance-1472712108494",
+        "title": "To confirm the product instance"
+      }
+    ],
+    "CopyImage": [
+      {
+        "input": {
+          "Description": "",
+          "Name": "My server",
+          "SourceImageId": "ami-5731123e",
+          "SourceRegion": "us-east-1"
+        },
+        "output": {
+          "ImageId": "ami-438bea42"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example copies the specified AMI from the us-east-1 region to the current region.",
+        "id": "to-copy-an-ami-to-another-region-1529022820832",
+        "title": "To copy an AMI to another region"
+      }
+    ],
+    "CopySnapshot": [
+      {
+        "input": {
+          "Description": "This is my copied snapshot.",
+          "DestinationRegion": "us-east-1",
+          "SourceRegion": "us-west-2",
+          "SourceSnapshotId": "snap-066877671789bd71b"
+        },
+        "output": {
+          "SnapshotId": "snap-066877671789bd71b"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example copies a snapshot with the snapshot ID of ``snap-066877671789bd71b`` from the ``us-west-2`` region to the ``us-east-1`` region and adds a short description to identify the snapshot.",
+        "id": "to-copy-a-snapshot-1472502259774",
+        "title": "To copy a snapshot"
+      }
+    ],
+    "CreateCustomerGateway": [
+      {
+        "input": {
+          "BgpAsn": 65534,
+          "PublicIp": "12.1.2.3",
+          "Type": "ipsec.1"
+        },
+        "output": {
+          "CustomerGateway": {
+            "BgpAsn": "65534",
+            "CustomerGatewayId": "cgw-0e11f167",
+            "IpAddress": "12.1.2.3",
+            "State": "available",
+            "Type": "ipsec.1"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a customer gateway with the specified IP address for its outside interface.",
+        "id": "ec2-create-customer-gateway-1",
+        "title": "To create a customer gateway"
+      }
+    ],
+    "CreateDhcpOptions": [
+      {
+        "input": {
+          "DhcpConfigurations": [
+            {
+              "Key": "domain-name-servers",
+              "Values": [
+                "10.2.5.1",
+                "10.2.5.2"
+              ]
+            }
+          ]
+        },
+        "output": {
+          "DhcpOptions": {
+            "DhcpConfigurations": [
+              {
+                "Key": "domain-name-servers",
+                "Values": [
+                  {
+                    "Value": "10.2.5.2"
+                  },
+                  {
+                    "Value": "10.2.5.1"
+                  }
+                ]
+              }
+            ],
+            "DhcpOptionsId": "dopt-d9070ebb"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a DHCP options set.",
+        "id": "ec2-create-dhcp-options-1",
+        "title": "To create a DHCP options set"
+      }
+    ],
+    "CreateImage": [
+      {
+        "input": {
+          "BlockDeviceMappings": [
+            {
+              "DeviceName": "/dev/sdh",
+              "Ebs": {
+                "VolumeSize": "100"
+              }
+            },
+            {
+              "DeviceName": "/dev/sdc",
+              "VirtualName": "ephemeral1"
+            }
+          ],
+          "Description": "An AMI for my server",
+          "InstanceId": "i-1234567890abcdef0",
+          "Name": "My server",
+          "NoReboot": true
+        },
+        "output": {
+          "ImageId": "ami-1a2b3c4d"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates an AMI from the specified instance and adds an EBS volume with the device name /dev/sdh and an instance store volume with the device name /dev/sdc.",
+        "id": "to-create-an-ami-from-an-amazon-ebs-backed-instance-1529023150636",
+        "title": "To create an AMI from an Amazon EBS-backed instance"
+      }
+    ],
+    "CreateInternetGateway": [
+      {
+        "output": {
+          "InternetGateway": {
+            "Attachments": [
+
+            ],
+            "InternetGatewayId": "igw-c0a643a9",
+            "Tags": [
+
+            ]
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates an Internet gateway.",
+        "id": "ec2-create-internet-gateway-1",
+        "title": "To create an Internet gateway"
+      }
+    ],
+    "CreateKeyPair": [
+      {
+        "input": {
+          "KeyName": "my-key-pair"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a key pair named my-key-pair.",
+        "id": "ec2-create-key-pair-1",
+        "title": "To create a key pair"
+      }
+    ],
+    "CreateLaunchTemplate": [
+      {
+        "input": {
+          "LaunchTemplateData": {
+            "ImageId": "ami-8c1be5f6",
+            "InstanceType": "t2.small",
+            "NetworkInterfaces": [
+              {
+                "AssociatePublicIpAddress": true,
+                "DeviceIndex": 0,
+                "Ipv6AddressCount": 1,
+                "SubnetId": "subnet-7b16de0c"
+              }
+            ],
+            "TagSpecifications": [
+              {
+                "ResourceType": "instance",
+                "Tags": [
+                  {
+                    "Key": "Name",
+                    "Value": "webserver"
+                  }
+                ]
+              }
+            ]
+          },
+          "LaunchTemplateName": "my-template",
+          "VersionDescription": "WebVersion1"
+        },
+        "output": {
+          "LaunchTemplate": {
+            "CreateTime": "2017-11-27T09:13:24.000Z",
+            "CreatedBy": "arn:aws:iam::123456789012:root",
+            "DefaultVersionNumber": 1,
+            "LatestVersionNumber": 1,
+            "LaunchTemplateId": "lt-01238c059e3466abc",
+            "LaunchTemplateName": "my-template"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a launch template that specifies the subnet in which to launch the instance, assigns a public IP address and an IPv6 address to the instance, and creates a tag for the instance.",
+        "id": "to-create-a-launch-template-1529023655488",
+        "title": "To create a launch template"
+      }
+    ],
+    "CreateLaunchTemplateVersion": [
+      {
+        "input": {
+          "LaunchTemplateData": {
+            "ImageId": "ami-c998b6b2"
+          },
+          "LaunchTemplateId": "lt-0abcd290751193123",
+          "SourceVersion": "1",
+          "VersionDescription": "WebVersion2"
+        },
+        "output": {
+          "LaunchTemplateVersion": {
+            "CreateTime": "2017-12-01T13:35:46.000Z",
+            "CreatedBy": "arn:aws:iam::123456789012:root",
+            "DefaultVersion": false,
+            "LaunchTemplateData": {
+              "ImageId": "ami-c998b6b2",
+              "InstanceType": "t2.micro",
+              "NetworkInterfaces": [
+                {
+                  "AssociatePublicIpAddress": true,
+                  "DeviceIndex": 0,
+                  "Ipv6Addresses": [
+                    {
+                      "Ipv6Address": "2001:db8:1234:1a00::123"
+                    }
+                  ],
+                  "SubnetId": "subnet-7b16de0c"
+                }
+              ]
+            },
+            "LaunchTemplateId": "lt-0abcd290751193123",
+            "LaunchTemplateName": "my-template",
+            "VersionDescription": "WebVersion2",
+            "VersionNumber": 2
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a new launch template version based on version 1 of the specified launch template and specifies a different AMI ID.",
+        "id": "to-create-a-launch-template-version-1529024195702",
+        "title": "To create a launch template version"
+      }
+    ],
+    "CreateNatGateway": [
+      {
+        "input": {
+          "AllocationId": "eipalloc-37fc1a52",
+          "SubnetId": "subnet-1a2b3c4d"
+        },
+        "output": {
+          "NatGateway": {
+            "CreateTime": "2015-12-17T12:45:26.732Z",
+            "NatGatewayAddresses": [
+              {
+                "AllocationId": "eipalloc-37fc1a52"
+              }
+            ],
+            "NatGatewayId": "nat-08d48af2a8e83edfd",
+            "State": "pending",
+            "SubnetId": "subnet-1a2b3c4d",
+            "VpcId": "vpc-1122aabb"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a NAT gateway in subnet subnet-1a2b3c4d and associates an Elastic IP address with the allocation ID eipalloc-37fc1a52 with the NAT gateway.",
+        "id": "ec2-create-nat-gateway-1",
+        "title": "To create a NAT gateway"
+      }
+    ],
+    "CreateNetworkAcl": [
+      {
+        "input": {
+          "VpcId": "vpc-a01106c2"
+        },
+        "output": {
+          "NetworkAcl": {
+            "Associations": [
+
+            ],
+            "Entries": [
+              {
+                "CidrBlock": "0.0.0.0/0",
+                "Egress": true,
+                "Protocol": "-1",
+                "RuleAction": "deny",
+                "RuleNumber": 32767
+              },
+              {
+                "CidrBlock": "0.0.0.0/0",
+                "Egress": false,
+                "Protocol": "-1",
+                "RuleAction": "deny",
+                "RuleNumber": 32767
+              }
+            ],
+            "IsDefault": false,
+            "NetworkAclId": "acl-5fb85d36",
+            "Tags": [
+
+            ],
+            "VpcId": "vpc-a01106c2"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a network ACL for the specified VPC.",
+        "id": "ec2-create-network-acl-1",
+        "title": "To create a network ACL"
+      }
+    ],
+    "CreateNetworkAclEntry": [
+      {
+        "input": {
+          "CidrBlock": "0.0.0.0/0",
+          "Egress": false,
+          "NetworkAclId": "acl-5fb85d36",
+          "PortRange": {
+            "From": 53,
+            "To": 53
+          },
+          "Protocol": "17",
+          "RuleAction": "allow",
+          "RuleNumber": 100
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates an entry for the specified network ACL. The rule allows ingress traffic from anywhere (0.0.0.0/0) on UDP port 53 (DNS) into any associated subnet.",
+        "id": "ec2-create-network-acl-entry-1",
+        "title": "To create a network ACL entry"
+      }
+    ],
+    "CreateNetworkInterface": [
+      {
+        "input": {
+          "Description": "my network interface",
+          "Groups": [
+            "sg-903004f8"
+          ],
+          "PrivateIpAddress": "10.0.2.17",
+          "SubnetId": "subnet-9d4a7b6c"
+        },
+        "output": {
+          "NetworkInterface": {
+            "AvailabilityZone": "us-east-1d",
+            "Description": "my network interface",
+            "Groups": [
+              {
+                "GroupId": "sg-903004f8",
+                "GroupName": "default"
+              }
+            ],
+            "MacAddress": "02:1a:80:41:52:9c",
+            "NetworkInterfaceId": "eni-e5aa89a3",
+            "OwnerId": "123456789012",
+            "PrivateIpAddress": "10.0.2.17",
+            "PrivateIpAddresses": [
+              {
+                "Primary": true,
+                "PrivateIpAddress": "10.0.2.17"
+              }
+            ],
+            "RequesterManaged": false,
+            "SourceDestCheck": true,
+            "Status": "pending",
+            "SubnetId": "subnet-9d4a7b6c",
+            "TagSet": [
+
+            ],
+            "VpcId": "vpc-a01106c2"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a network interface for the specified subnet.",
+        "id": "ec2-create-network-interface-1",
+        "title": "To create a network interface"
+      }
+    ],
+    "CreatePlacementGroup": [
+      {
+        "input": {
+          "GroupName": "my-cluster",
+          "Strategy": "cluster"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a placement group with the specified name.",
+        "id": "to-create-a-placement-group-1472712245768",
+        "title": "To create a placement group"
+      }
+    ],
+    "CreateRoute": [
+      {
+        "input": {
+          "DestinationCidrBlock": "0.0.0.0/0",
+          "GatewayId": "igw-c0a643a9",
+          "RouteTableId": "rtb-22574640"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a route for the specified route table. The route matches all traffic (0.0.0.0/0) and routes it to the specified Internet gateway.",
+        "id": "ec2-create-route-1",
+        "title": "To create a route"
+      }
+    ],
+    "CreateRouteTable": [
+      {
+        "input": {
+          "VpcId": "vpc-a01106c2"
+        },
+        "output": {
+          "RouteTable": {
+            "Associations": [
+
+            ],
+            "PropagatingVgws": [
+
+            ],
+            "RouteTableId": "rtb-22574640",
+            "Routes": [
+              {
+                "DestinationCidrBlock": "10.0.0.0/16",
+                "GatewayId": "local",
+                "State": "active"
+              }
+            ],
+            "Tags": [
+
+            ],
+            "VpcId": "vpc-a01106c2"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a route table for the specified VPC.",
+        "id": "ec2-create-route-table-1",
+        "title": "To create a route table"
+      }
+    ],
+    "CreateSecurityGroup": [
+      {
+        "input": {
+          "Description": "My security group",
+          "GroupName": "my-security-group",
+          "VpcId": "vpc-1a2b3c4d"
+        },
+        "output": {
+          "GroupId": "sg-903004f8"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a security group for the specified VPC.",
+        "id": "to-create-a-security-group-for-a-vpc-1529024532716",
+        "title": "To create a security group for a VPC"
+      }
+    ],
+    "CreateSnapshot": [
+      {
+        "input": {
+          "Description": "This is my root volume snapshot.",
+          "VolumeId": "vol-1234567890abcdef0"
+        },
+        "output": {
+          "Description": "This is my root volume snapshot.",
+          "OwnerId": "012345678910",
+          "SnapshotId": "snap-066877671789bd71b",
+          "StartTime": "2014-02-28T21:06:01.000Z",
+          "State": "pending",
+          "Tags": [
+
+          ],
+          "VolumeId": "vol-1234567890abcdef0",
+          "VolumeSize": 8
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a snapshot of the volume with a volume ID of ``vol-1234567890abcdef0`` and a short description to identify the snapshot.",
+        "id": "to-create-a-snapshot-1472502529790",
+        "title": "To create a snapshot"
+      }
+    ],
+    "CreateSpotDatafeedSubscription": [
+      {
+        "input": {
+          "Bucket": "my-s3-bucket",
+          "Prefix": "spotdata"
+        },
+        "output": {
+          "SpotDatafeedSubscription": {
+            "Bucket": "my-s3-bucket",
+            "OwnerId": "123456789012",
+            "Prefix": "spotdata",
+            "State": "Active"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a Spot Instance data feed for your AWS account.",
+        "id": "ec2-create-spot-datafeed-subscription-1",
+        "title": "To create a Spot Instance datafeed"
+      }
+    ],
+    "CreateSubnet": [
+      {
+        "input": {
+          "CidrBlock": "10.0.1.0/24",
+          "VpcId": "vpc-a01106c2"
+        },
+        "output": {
+          "Subnet": {
+            "AvailabilityZone": "us-west-2c",
+            "AvailableIpAddressCount": 251,
+            "CidrBlock": "10.0.1.0/24",
+            "State": "pending",
+            "SubnetId": "subnet-9d4a7b6c",
+            "VpcId": "vpc-a01106c2"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a subnet in the specified VPC with the specified CIDR block. We recommend that you let us select an Availability Zone for you.",
+        "id": "ec2-create-subnet-1",
+        "title": "To create a subnet"
+      }
+    ],
+    "CreateTags": [
+      {
+        "input": {
+          "Resources": [
+            "ami-78a54011"
+          ],
+          "Tags": [
+            {
+              "Key": "Stack",
+              "Value": "production"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example adds the tag Stack=production to the specified image, or overwrites an existing tag for the AMI where the tag key is Stack.",
+        "id": "ec2-create-tags-1",
+        "title": "To add a tag to a resource"
+      }
+    ],
+    "CreateVolume": [
+      {
+        "input": {
+          "AvailabilityZone": "us-east-1a",
+          "Size": 80,
+          "VolumeType": "gp2"
+        },
+        "output": {
+          "AvailabilityZone": "us-east-1a",
+          "CreateTime": "2016-08-29T18:52:32.724Z",
+          "Encrypted": false,
+          "Iops": 240,
+          "Size": 80,
+          "SnapshotId": "",
+          "State": "creating",
+          "VolumeId": "vol-6b60b7c7",
+          "VolumeType": "gp2"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates an 80 GiB General Purpose (SSD) volume in the Availability Zone ``us-east-1a``.",
+        "id": "to-create-a-new-volume-1472496724296",
+        "title": "To create a new volume"
+      },
+      {
+        "input": {
+          "AvailabilityZone": "us-east-1a",
+          "Iops": 1000,
+          "SnapshotId": "snap-066877671789bd71b",
+          "VolumeType": "io1"
+        },
+        "output": {
+          "Attachments": [
+
+          ],
+          "AvailabilityZone": "us-east-1a",
+          "CreateTime": "2016-08-29T18:52:32.724Z",
+          "Iops": 1000,
+          "Size": 500,
+          "SnapshotId": "snap-066877671789bd71b",
+          "State": "creating",
+          "Tags": [
+
+          ],
+          "VolumeId": "vol-1234567890abcdef0",
+          "VolumeType": "io1"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a new Provisioned IOPS (SSD) volume with 1000 provisioned IOPS from a snapshot in the Availability Zone ``us-east-1a``.",
+        "id": "to-create-a-new-provisioned-iops-ssd-volume-from-a-snapshot-1472498975176",
+        "title": "To create a new Provisioned IOPS (SSD) volume from a snapshot"
+      }
+    ],
+    "CreateVpc": [
+      {
+        "input": {
+          "CidrBlock": "10.0.0.0/16"
+        },
+        "output": {
+          "Vpc": {
+            "CidrBlock": "10.0.0.0/16",
+            "DhcpOptionsId": "dopt-7a8b9c2d",
+            "InstanceTenancy": "default",
+            "State": "pending",
+            "VpcId": "vpc-a01106c2"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a VPC with the specified CIDR block.",
+        "id": "ec2-create-vpc-1",
+        "title": "To create a VPC"
+      }
+    ],
+    "DeleteCustomerGateway": [
+      {
+        "input": {
+          "CustomerGatewayId": "cgw-0e11f167"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified customer gateway.",
+        "id": "ec2-delete-customer-gateway-1",
+        "title": "To delete a customer gateway"
+      }
+    ],
+    "DeleteDhcpOptions": [
+      {
+        "input": {
+          "DhcpOptionsId": "dopt-d9070ebb"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified DHCP options set.",
+        "id": "ec2-delete-dhcp-options-1",
+        "title": "To delete a DHCP options set"
+      }
+    ],
+    "DeleteInternetGateway": [
+      {
+        "input": {
+          "InternetGatewayId": "igw-c0a643a9"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified Internet gateway.",
+        "id": "ec2-delete-internet-gateway-1",
+        "title": "To delete an Internet gateway"
+      }
+    ],
+    "DeleteKeyPair": [
+      {
+        "input": {
+          "KeyName": "my-key-pair"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified key pair.",
+        "id": "ec2-delete-key-pair-1",
+        "title": "To delete a key pair"
+      }
+    ],
+    "DeleteLaunchTemplate": [
+      {
+        "input": {
+          "LaunchTemplateId": "lt-0abcd290751193123"
+        },
+        "output": {
+          "LaunchTemplate": {
+            "CreateTime": "2017-11-23T16:46:25.000Z",
+            "CreatedBy": "arn:aws:iam::123456789012:root",
+            "DefaultVersionNumber": 2,
+            "LatestVersionNumber": 2,
+            "LaunchTemplateId": "lt-0abcd290751193123",
+            "LaunchTemplateName": "my-template"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified launch template.",
+        "id": "to-delete-a-launch-template-1529024658216",
+        "title": "To delete a launch template"
+      }
+    ],
+    "DeleteLaunchTemplateVersions": [
+      {
+        "input": {
+          "LaunchTemplateId": "lt-0abcd290751193123",
+          "Versions": [
+            "1"
+          ]
+        },
+        "output": {
+          "SuccessfullyDeletedLaunchTemplateVersions": [
+            {
+              "LaunchTemplateId": "lt-0abcd290751193123",
+              "LaunchTemplateName": "my-template",
+              "VersionNumber": 1
+            }
+          ],
+          "UnsuccessfullyDeletedLaunchTemplateVersions": [
+
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified launch template version.",
+        "id": "to-delete-a-launch-template-version-1529024790864",
+        "title": "To delete a launch template version"
+      }
+    ],
+    "DeleteNatGateway": [
+      {
+        "input": {
+          "NatGatewayId": "nat-04ae55e711cec5680"
+        },
+        "output": {
+          "NatGatewayId": "nat-04ae55e711cec5680"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified NAT gateway.",
+        "id": "ec2-delete-nat-gateway-1",
+        "title": "To delete a NAT gateway"
+      }
+    ],
+    "DeleteNetworkAcl": [
+      {
+        "input": {
+          "NetworkAclId": "acl-5fb85d36"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified network ACL.",
+        "id": "ec2-delete-network-acl-1",
+        "title": "To delete a network ACL"
+      }
+    ],
+    "DeleteNetworkAclEntry": [
+      {
+        "input": {
+          "Egress": true,
+          "NetworkAclId": "acl-5fb85d36",
+          "RuleNumber": 100
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes ingress rule number 100 from the specified network ACL.",
+        "id": "ec2-delete-network-acl-entry-1",
+        "title": "To delete a network ACL entry"
+      }
+    ],
+    "DeleteNetworkInterface": [
+      {
+        "input": {
+          "NetworkInterfaceId": "eni-e5aa89a3"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified network interface.",
+        "id": "ec2-delete-network-interface-1",
+        "title": "To delete a network interface"
+      }
+    ],
+    "DeletePlacementGroup": [
+      {
+        "input": {
+          "GroupName": "my-cluster"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified placement group.\n",
+        "id": "to-delete-a-placement-group-1472712349959",
+        "title": "To delete a placement group"
+      }
+    ],
+    "DeleteRoute": [
+      {
+        "input": {
+          "DestinationCidrBlock": "0.0.0.0/0",
+          "RouteTableId": "rtb-22574640"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified route from the specified route table.",
+        "id": "ec2-delete-route-1",
+        "title": "To delete a route"
+      }
+    ],
+    "DeleteRouteTable": [
+      {
+        "input": {
+          "RouteTableId": "rtb-22574640"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified route table.",
+        "id": "ec2-delete-route-table-1",
+        "title": "To delete a route table"
+      }
+    ],
+    "DeleteSecurityGroup": [
+      {
+        "input": {
+          "GroupId": "sg-903004f8"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified security group.",
+        "id": "to-delete-a-security-group-1529024952972",
+        "title": "To delete a security group"
+      }
+    ],
+    "DeleteSnapshot": [
+      {
+        "input": {
+          "SnapshotId": "snap-1234567890abcdef0"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes a snapshot with the snapshot ID of ``snap-1234567890abcdef0``. If the command succeeds, no output is returned.",
+        "id": "to-delete-a-snapshot-1472503042567",
+        "title": "To delete a snapshot"
+      }
+    ],
+    "DeleteSpotDatafeedSubscription": [
+      {
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes a Spot data feed subscription for the account.",
+        "id": "ec2-delete-spot-datafeed-subscription-1",
+        "title": "To cancel a Spot Instance data feed subscription"
+      }
+    ],
+    "DeleteSubnet": [
+      {
+        "input": {
+          "SubnetId": "subnet-9d4a7b6c"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified subnet.",
+        "id": "ec2-delete-subnet-1",
+        "title": "To delete a subnet"
+      }
+    ],
+    "DeleteTags": [
+      {
+        "input": {
+          "Resources": [
+            "ami-78a54011"
+          ],
+          "Tags": [
+            {
+              "Key": "Stack",
+              "Value": "test"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the tag Stack=test from the specified image.",
+        "id": "ec2-delete-tags-1",
+        "title": "To delete a tag from a resource"
+      }
+    ],
+    "DeleteVolume": [
+      {
+        "input": {
+          "VolumeId": "vol-049df61146c4d7901"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes an available volume with the volume ID of ``vol-049df61146c4d7901``. If the command succeeds, no output is returned.",
+        "id": "to-delete-a-volume-1472503111160",
+        "title": "To delete a volume"
+      }
+    ],
+    "DeleteVpc": [
+      {
+        "input": {
+          "VpcId": "vpc-a01106c2"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified VPC.",
+        "id": "ec2-delete-vpc-1",
+        "title": "To delete a VPC"
+      }
+    ],
+    "DescribeAccountAttributes": [
+      {
+        "input": {
+          "AttributeNames": [
+            "supported-platforms"
+          ]
+        },
+        "output": {
+          "AccountAttributes": [
+            {
+              "AttributeName": "supported-platforms",
+              "AttributeValues": [
+                {
+                  "AttributeValue": "EC2"
+                },
+                {
+                  "AttributeValue": "VPC"
+                }
+              ]
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the supported-platforms attribute for your AWS account.",
+        "id": "ec2-describe-account-attributes-1",
+        "title": "To describe a single attribute for your AWS account"
+      },
+      {
+        "output": {
+          "AccountAttributes": [
+            {
+              "AttributeName": "supported-platforms",
+              "AttributeValues": [
+                {
+                  "AttributeValue": "EC2"
+                },
+                {
+                  "AttributeValue": "VPC"
+                }
+              ]
+            },
+            {
+              "AttributeName": "vpc-max-security-groups-per-interface",
+              "AttributeValues": [
+                {
+                  "AttributeValue": "5"
+                }
+              ]
+            },
+            {
+              "AttributeName": "max-elastic-ips",
+              "AttributeValues": [
+                {
+                  "AttributeValue": "5"
+                }
+              ]
+            },
+            {
+              "AttributeName": "max-instances",
+              "AttributeValues": [
+                {
+                  "AttributeValue": "20"
+                }
+              ]
+            },
+            {
+              "AttributeName": "vpc-max-elastic-ips",
+              "AttributeValues": [
+                {
+                  "AttributeValue": "5"
+                }
+              ]
+            },
+            {
+              "AttributeName": "default-vpc",
+              "AttributeValues": [
+                {
+                  "AttributeValue": "none"
+                }
+              ]
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the attributes for your AWS account.",
+        "id": "ec2-describe-account-attributes-2",
+        "title": "To describe all attributes for your AWS account"
+      }
+    ],
+    "DescribeAddresses": [
+      {
+        "output": {
+          "Addresses": [
+            {
+              "Domain": "standard",
+              "InstanceId": "i-1234567890abcdef0",
+              "PublicIp": "198.51.100.0"
+            },
+            {
+              "AllocationId": "eipalloc-12345678",
+              "AssociationId": "eipassoc-12345678",
+              "Domain": "vpc",
+              "InstanceId": "i-1234567890abcdef0",
+              "NetworkInterfaceId": "eni-12345678",
+              "NetworkInterfaceOwnerId": "123456789012",
+              "PrivateIpAddress": "10.0.1.241",
+              "PublicIp": "203.0.113.0"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes your Elastic IP addresses.",
+        "id": "ec2-describe-addresses-1",
+        "title": "To describe your Elastic IP addresses"
+      },
+      {
+        "input": {
+          "Filters": [
+            {
+              "Name": "domain",
+              "Values": [
+                "vpc"
+              ]
+            }
+          ]
+        },
+        "output": {
+          "Addresses": [
+            {
+              "AllocationId": "eipalloc-12345678",
+              "AssociationId": "eipassoc-12345678",
+              "Domain": "vpc",
+              "InstanceId": "i-1234567890abcdef0",
+              "NetworkInterfaceId": "eni-12345678",
+              "NetworkInterfaceOwnerId": "123456789012",
+              "PrivateIpAddress": "10.0.1.241",
+              "PublicIp": "203.0.113.0"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes your Elastic IP addresses for use with instances in a VPC.",
+        "id": "ec2-describe-addresses-2",
+        "title": "To describe your Elastic IP addresses for EC2-VPC"
+      },
+      {
+        "input": {
+          "Filters": [
+            {
+              "Name": "domain",
+              "Values": [
+                "standard"
+              ]
+            }
+          ]
+        },
+        "output": {
+          "Addresses": [
+            {
+              "Domain": "standard",
+              "InstanceId": "i-1234567890abcdef0",
+              "PublicIp": "198.51.100.0"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes your Elastic IP addresses for use with instances in EC2-Classic.",
+        "id": "ec2-describe-addresses-3",
+        "title": "To describe your Elastic IP addresses for EC2-Classic"
+      }
+    ],
+    "DescribeAvailabilityZones": [
+      {
+        "output": {
+          "AvailabilityZones": [
+            {
+              "Messages": [
+
+              ],
+              "RegionName": "us-east-1",
+              "State": "available",
+              "ZoneName": "us-east-1b"
+            },
+            {
+              "Messages": [
+
+              ],
+              "RegionName": "us-east-1",
+              "State": "available",
+              "ZoneName": "us-east-1c"
+            },
+            {
+              "Messages": [
+
+              ],
+              "RegionName": "us-east-1",
+              "State": "available",
+              "ZoneName": "us-east-1d"
+            },
+            {
+              "Messages": [
+
+              ],
+              "RegionName": "us-east-1",
+              "State": "available",
+              "ZoneName": "us-east-1e"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the Availability Zones that are available to you. The response includes Availability Zones only for the current region.",
+        "id": "ec2-describe-availability-zones-1",
+        "title": "To describe your Availability Zones"
+      }
+    ],
+    "DescribeCustomerGateways": [
+      {
+        "input": {
+          "CustomerGatewayIds": [
+            "cgw-0e11f167"
+          ]
+        },
+        "output": {
+          "CustomerGateways": [
+            {
+              "BgpAsn": "65534",
+              "CustomerGatewayId": "cgw-0e11f167",
+              "IpAddress": "12.1.2.3",
+              "State": "available",
+              "Type": "ipsec.1"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the specified customer gateway.",
+        "id": "ec2-describe-customer-gateways-1",
+        "title": "To describe a customer gateway"
+      }
+    ],
+    "DescribeDhcpOptions": [
+      {
+        "input": {
+          "DhcpOptionsIds": [
+            "dopt-d9070ebb"
+          ]
+        },
+        "output": {
+          "DhcpOptions": [
+            {
+              "DhcpConfigurations": [
+                {
+                  "Key": "domain-name-servers",
+                  "Values": [
+                    {
+                      "Value": "10.2.5.2"
+                    },
+                    {
+                      "Value": "10.2.5.1"
+                    }
+                  ]
+                }
+              ],
+              "DhcpOptionsId": "dopt-d9070ebb"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the specified DHCP options set.",
+        "id": "ec2-describe-dhcp-options-1",
+        "title": "To describe a DHCP options set"
+      }
+    ],
+    "DescribeIamInstanceProfileAssociations": [
+      {
+        "input": {
+          "AssociationIds": [
+            "iip-assoc-0db249b1f25fa24b8"
+          ]
+        },
+        "output": {
+          "IamInstanceProfileAssociations": [
+            {
+              "AssociationId": "iip-assoc-0db249b1f25fa24b8",
+              "IamInstanceProfile": {
+                "Arn": "arn:aws:iam::123456789012:instance-profile/admin-role",
+                "Id": "AIPAJVQN4F5WVLGCJDRGM"
+              },
+              "InstanceId": "i-09eb09efa73ec1dee",
+              "State": "associated"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the specified IAM instance profile association.",
+        "id": "to-describe-an-iam-instance-profile-association-1529025123918",
+        "title": "To describe an IAM instance profile association"
+      }
+    ],
+    "DescribeImageAttribute": [
+      {
+        "input": {
+          "Attribute": "launchPermission",
+          "ImageId": "ami-5731123e"
+        },
+        "output": {
+          "ImageId": "ami-5731123e",
+          "LaunchPermissions": [
+            {
+              "UserId": "123456789012"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the launch permissions for the specified AMI.",
+        "id": "to-describe-the-launch-permissions-for-an-ami-1529025296264",
+        "title": "To describe the launch permissions for an AMI"
+      }
+    ],
+    "DescribeImages": [
+      {
+        "input": {
+          "ImageIds": [
+            "ami-5731123e"
+          ]
+        },
+        "output": {
+          "Images": [
+            {
+              "Architecture": "x86_64",
+              "BlockDeviceMappings": [
+                {
+                  "DeviceName": "/dev/sda1",
+                  "Ebs": {
+                    "DeleteOnTermination": true,
+                    "SnapshotId": "snap-1234567890abcdef0",
+                    "VolumeSize": 8,
+                    "VolumeType": "standard"
+                  }
+                }
+              ],
+              "Description": "An AMI for my server",
+              "Hypervisor": "xen",
+              "ImageId": "ami-5731123e",
+              "ImageLocation": "123456789012/My server",
+              "ImageType": "machine",
+              "KernelId": "aki-88aa75e1",
+              "Name": "My server",
+              "OwnerId": "123456789012",
+              "Public": false,
+              "RootDeviceName": "/dev/sda1",
+              "RootDeviceType": "ebs",
+              "State": "available",
+              "VirtualizationType": "paravirtual"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the specified AMI.",
+        "id": "to-describe-an-ami-1529025482866",
+        "title": "To describe an AMI"
+      }
+    ],
+    "DescribeInstanceAttribute": [
+      {
+        "input": {
+          "Attribute": "instanceType",
+          "InstanceId": "i-1234567890abcdef0"
+        },
+        "output": {
+          "InstanceId": "i-1234567890abcdef0",
+          "InstanceType": {
+            "Value": "t1.micro"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the instance type of the specified instance.\n",
+        "id": "to-describe-the-instance-type-1472712432132",
+        "title": "To describe the instance type"
+      },
+      {
+        "input": {
+          "Attribute": "disableApiTermination",
+          "InstanceId": "i-1234567890abcdef0"
+        },
+        "output": {
+          "DisableApiTermination": {
+            "Value": "false"
+          },
+          "InstanceId": "i-1234567890abcdef0"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the ``disableApiTermination`` attribute of the specified instance.\n",
+        "id": "to-describe-the-disableapitermination-attribute-1472712533466",
+        "title": "To describe the disableApiTermination attribute"
+      },
+      {
+        "input": {
+          "Attribute": "blockDeviceMapping",
+          "InstanceId": "i-1234567890abcdef0"
+        },
+        "output": {
+          "BlockDeviceMappings": [
+            {
+              "DeviceName": "/dev/sda1",
+              "Ebs": {
+                "AttachTime": "2013-05-17T22:42:34.000Z",
+                "DeleteOnTermination": true,
+                "Status": "attached",
+                "VolumeId": "vol-049df61146c4d7901"
+              }
+            },
+            {
+              "DeviceName": "/dev/sdf",
+              "Ebs": {
+                "AttachTime": "2013-09-10T23:07:00.000Z",
+                "DeleteOnTermination": false,
+                "Status": "attached",
+                "VolumeId": "vol-049df61146c4d7901"
+              }
+            }
+          ],
+          "InstanceId": "i-1234567890abcdef0"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the ``blockDeviceMapping`` attribute of the specified instance.\n",
+        "id": "to-describe-the-block-device-mapping-for-an-instance-1472712645423",
+        "title": "To describe the block device mapping for an instance"
+      }
+    ],
+    "DescribeInstanceStatus": [
+      {
+        "input": {
+          "InstanceIds": [
+            "i-1234567890abcdef0"
+          ]
+        },
+        "output": {
+          "InstanceStatuses": [
+            {
+              "AvailabilityZone": "us-east-1d",
+              "InstanceId": "i-1234567890abcdef0",
+              "InstanceState": {
+                "Code": 16,
+                "Name": "running"
+              },
+              "InstanceStatus": {
+                "Details": [
+                  {
+                    "Name": "reachability",
+                    "Status": "passed"
+                  }
+                ],
+                "Status": "ok"
+              },
+              "SystemStatus": {
+                "Details": [
+                  {
+                    "Name": "reachability",
+                    "Status": "passed"
+                  }
+                ],
+                "Status": "ok"
+              }
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the current status of the specified instance.",
+        "id": "to-describe-the-status-of-an-instance-1529025696830",
+        "title": "To describe the status of an instance"
+      }
+    ],
+    "DescribeInstances": [
+      {
+        "input": {
+          "InstanceIds": [
+            "i-1234567890abcdef0"
+          ]
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the specified instance.",
+        "id": "to-describe-an-amazon-ec2-instance-1529025982172",
+        "title": "To describe an Amazon EC2 instance"
+      },
+      {
+        "input": {
+          "Filters": [
+            {
+              "Name": "instance-type",
+              "Values": [
+                "t2.micro"
+              ]
+            }
+          ]
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the instances with the t2.micro instance type.",
+        "id": "to-describe-the-instances-with-the-instance-type-t2micro-1529026147602",
+        "title": "To describe the instances with a specific instance type"
+      },
+      {
+        "input": {
+          "Filters": [
+            {
+              "Name": "tag:Purpose",
+              "Values": [
+                "test"
+              ]
+            }
+          ]
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the instances with the Purpose=test tag.",
+        "id": "to-describe-the-instances-with-a-specific-tag-1529026251928",
+        "title": "To describe the instances with a specific tag"
+      }
+    ],
+    "DescribeInternetGateways": [
+      {
+        "input": {
+          "Filters": [
+            {
+              "Name": "attachment.vpc-id",
+              "Values": [
+                "vpc-a01106c2"
+              ]
+            }
+          ]
+        },
+        "output": {
+          "InternetGateways": [
+            {
+              "Attachments": [
+                {
+                  "State": "available",
+                  "VpcId": "vpc-a01106c2"
+                }
+              ],
+              "InternetGatewayId": "igw-c0a643a9",
+              "Tags": [
+
+              ]
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the Internet gateway for the specified VPC.",
+        "id": "ec2-describe-internet-gateways-1",
+        "title": "To describe the Internet gateway for a VPC"
+      }
+    ],
+    "DescribeKeyPairs": [
+      {
+        "input": {
+          "KeyNames": [
+            "my-key-pair"
+          ]
+        },
+        "output": {
+          "KeyPairs": [
+            {
+              "KeyFingerprint": "1f:51:ae:28:bf:89:e9:d8:1f:25:5d:37:2d:7d:b8:ca:9f:f5:f1:6f",
+              "KeyName": "my-key-pair"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example displays the fingerprint for the specified key.",
+        "id": "ec2-describe-key-pairs-1",
+        "title": "To display a key pair"
+      }
+    ],
+    "DescribeLaunchTemplateVersions": [
+      {
+        "input": {
+          "LaunchTemplateId": "068f72b72934aff71"
+        },
+        "output": {
+          "LaunchTemplateVersions": [
+            {
+              "CreateTime": "2017-11-20T13:12:32.000Z",
+              "CreatedBy": "arn:aws:iam::123456789102:root",
+              "DefaultVersion": false,
+              "LaunchTemplateData": {
+                "ImageId": "ami-6057e21a",
+                "InstanceType": "t2.medium",
+                "KeyName": "kp-us-east",
+                "NetworkInterfaces": [
+                  {
+                    "DeviceIndex": 0,
+                    "Groups": [
+                      "sg-7c227019"
+                    ],
+                    "SubnetId": "subnet-1a2b3c4d"
+                  }
+                ]
+              },
+              "LaunchTemplateId": "lt-068f72b72934aff71",
+              "LaunchTemplateName": "Webservers",
+              "VersionNumber": 2
+            },
+            {
+              "CreateTime": "2017-11-20T12:52:33.000Z",
+              "CreatedBy": "arn:aws:iam::123456789102:root",
+              "DefaultVersion": true,
+              "LaunchTemplateData": {
+                "ImageId": "ami-aabbcc11",
+                "InstanceType": "t2.medium",
+                "KeyName": "kp-us-east",
+                "NetworkInterfaces": [
+                  {
+                    "AssociatePublicIpAddress": true,
+                    "DeleteOnTermination": false,
+                    "DeviceIndex": 0,
+                    "Groups": [
+                      "sg-7c227019"
+                    ],
+                    "SubnetId": "subnet-7b16de0c"
+                  }
+                ],
+                "UserData": ""
+              },
+              "LaunchTemplateId": "lt-068f72b72934aff71",
+              "LaunchTemplateName": "Webservers",
+              "VersionNumber": 1
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the versions for the specified launch template.",
+        "id": "to-describe-the-versions-for-a-launch-template-1529344425048",
+        "title": "To describe the versions for a launch template"
+      }
+    ],
+    "DescribeLaunchTemplates": [
+      {
+        "input": {
+          "LaunchTemplateIds": [
+            "lt-01238c059e3466abc"
+          ]
+        },
+        "output": {
+          "LaunchTemplates": [
+            {
+              "CreateTime": "2018-01-16T04:32:57.000Z",
+              "CreatedBy": "arn:aws:iam::123456789012:root",
+              "DefaultVersionNumber": 1,
+              "LatestVersionNumber": 1,
+              "LaunchTemplateId": "lt-01238c059e3466abc",
+              "LaunchTemplateName": "my-template"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the specified launch template.",
+        "id": "to-describe-a-launch-template-1529344182862",
+        "title": "To describe a launch template"
+      }
+    ],
+    "DescribeMovingAddresses": [
+      {
+        "output": {
+          "MovingAddressStatuses": [
+            {
+              "MoveStatus": "MovingToVpc",
+              "PublicIp": "198.51.100.0"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes all of your moving Elastic IP addresses.",
+        "id": "ec2-describe-moving-addresses-1",
+        "title": "To describe your moving addresses"
+      }
+    ],
+    "DescribeNatGateways": [
+      {
+        "input": {
+          "Filter": [
+            {
+              "Name": "vpc-id",
+              "Values": [
+                "vpc-1a2b3c4d"
+              ]
+            }
+          ]
+        },
+        "output": {
+          "NatGateways": [
+            {
+              "CreateTime": "2015-12-01T12:26:55.983Z",
+              "NatGatewayAddresses": [
+                {
+                  "AllocationId": "eipalloc-89c620ec",
+                  "NetworkInterfaceId": "eni-9dec76cd",
+                  "PrivateIp": "10.0.0.149",
+                  "PublicIp": "198.11.222.333"
+                }
+              ],
+              "NatGatewayId": "nat-05dba92075d71c408",
+              "State": "available",
+              "SubnetId": "subnet-847e4dc2",
+              "VpcId": "vpc-1a2b3c4d"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the NAT gateway for the specified VPC.",
+        "id": "ec2-describe-nat-gateways-1",
+        "title": "To describe a NAT gateway"
+      }
+    ],
+    "DescribeNetworkAcls": [
+      {
+        "input": {
+          "NetworkAclIds": [
+            "acl-5fb85d36"
+          ]
+        },
+        "output": {
+          "NetworkAcls": [
+            {
+              "Associations": [
+                {
+                  "NetworkAclAssociationId": "aclassoc-66ea5f0b",
+                  "NetworkAclId": "acl-9aeb5ef7",
+                  "SubnetId": "subnet-65ea5f08"
+                }
+              ],
+              "Entries": [
+                {
+                  "CidrBlock": "0.0.0.0/0",
+                  "Egress": true,
+                  "Protocol": "-1",
+                  "RuleAction": "deny",
+                  "RuleNumber": 32767
+                },
+                {
+                  "CidrBlock": "0.0.0.0/0",
+                  "Egress": false,
+                  "Protocol": "-1",
+                  "RuleAction": "deny",
+                  "RuleNumber": 32767
+                }
+              ],
+              "IsDefault": false,
+              "NetworkAclId": "acl-5fb85d36",
+              "Tags": [
+
+              ],
+              "VpcId": "vpc-a01106c2"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the specified network ACL.",
+        "id": "ec2-",
+        "title": "To describe a network ACL"
+      }
+    ],
+    "DescribeNetworkInterfaceAttribute": [
+      {
+        "input": {
+          "Attribute": "attachment",
+          "NetworkInterfaceId": "eni-686ea200"
+        },
+        "output": {
+          "Attachment": {
+            "AttachTime": "2015-05-21T20:02:20.000Z",
+            "AttachmentId": "eni-attach-43348162",
+            "DeleteOnTermination": true,
+            "DeviceIndex": 0,
+            "InstanceId": "i-1234567890abcdef0",
+            "InstanceOwnerId": "123456789012",
+            "Status": "attached"
+          },
+          "NetworkInterfaceId": "eni-686ea200"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the attachment attribute of the specified network interface.",
+        "id": "ec2-describe-network-interface-attribute-1",
+        "title": "To describe the attachment attribute of a network interface"
+      },
+      {
+        "input": {
+          "Attribute": "description",
+          "NetworkInterfaceId": "eni-686ea200"
+        },
+        "output": {
+          "Description": {
+            "Value": "My description"
+          },
+          "NetworkInterfaceId": "eni-686ea200"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the description attribute of the specified network interface.",
+        "id": "ec2-describe-network-interface-attribute-2",
+        "title": "To describe the description attribute of a network interface"
+      },
+      {
+        "input": {
+          "Attribute": "groupSet",
+          "NetworkInterfaceId": "eni-686ea200"
+        },
+        "output": {
+          "Groups": [
+            {
+              "GroupId": "sg-903004f8",
+              "GroupName": "my-security-group"
+            }
+          ],
+          "NetworkInterfaceId": "eni-686ea200"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the groupSet attribute of the specified network interface.",
+        "id": "ec2-describe-network-interface-attribute-3",
+        "title": "To describe the groupSet attribute of a network interface"
+      },
+      {
+        "input": {
+          "Attribute": "sourceDestCheck",
+          "NetworkInterfaceId": "eni-686ea200"
+        },
+        "output": {
+          "NetworkInterfaceId": "eni-686ea200",
+          "SourceDestCheck": {
+            "Value": true
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the sourceDestCheck attribute of the specified network interface.",
+        "id": "ec2-describe-network-interface-attribute-4",
+        "title": "To describe the sourceDestCheck attribute of a network interface"
+      }
+    ],
+    "DescribeNetworkInterfaces": [
+      {
+        "input": {
+          "NetworkInterfaceIds": [
+            "eni-e5aa89a3"
+          ]
+        },
+        "output": {
+          "NetworkInterfaces": [
+            {
+              "Association": {
+                "AssociationId": "eipassoc-0fbb766a",
+                "IpOwnerId": "123456789012",
+                "PublicDnsName": "ec2-203-0-113-12.compute-1.amazonaws.com",
+                "PublicIp": "203.0.113.12"
+              },
+              "Attachment": {
+                "AttachTime": "2013-11-30T23:36:42.000Z",
+                "AttachmentId": "eni-attach-66c4350a",
+                "DeleteOnTermination": false,
+                "DeviceIndex": 1,
+                "InstanceId": "i-1234567890abcdef0",
+                "InstanceOwnerId": "123456789012",
+                "Status": "attached"
+              },
+              "AvailabilityZone": "us-east-1d",
+              "Description": "my network interface",
+              "Groups": [
+                {
+                  "GroupId": "sg-8637d3e3",
+                  "GroupName": "default"
+                }
+              ],
+              "MacAddress": "02:2f:8f:b0:cf:75",
+              "NetworkInterfaceId": "eni-e5aa89a3",
+              "OwnerId": "123456789012",
+              "PrivateDnsName": "ip-10-0-1-17.ec2.internal",
+              "PrivateIpAddress": "10.0.1.17",
+              "PrivateIpAddresses": [
+                {
+                  "Association": {
+                    "AssociationId": "eipassoc-0fbb766a",
+                    "IpOwnerId": "123456789012",
+                    "PublicDnsName": "ec2-203-0-113-12.compute-1.amazonaws.com",
+                    "PublicIp": "203.0.113.12"
+                  },
+                  "Primary": true,
+                  "PrivateDnsName": "ip-10-0-1-17.ec2.internal",
+                  "PrivateIpAddress": "10.0.1.17"
+                }
+              ],
+              "RequesterManaged": false,
+              "SourceDestCheck": true,
+              "Status": "in-use",
+              "SubnetId": "subnet-b61f49f0",
+              "TagSet": [
+
+              ],
+              "VpcId": "vpc-a01106c2"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "",
+        "id": "ec2-describe-network-interfaces-1",
+        "title": "To describe a network interface"
+      }
+    ],
+    "DescribeRegions": [
+      {
+        "output": {
+          "Regions": [
+            {
+              "Endpoint": "ec2.ap-south-1.amazonaws.com",
+              "RegionName": "ap-south-1"
+            },
+            {
+              "Endpoint": "ec2.eu-west-1.amazonaws.com",
+              "RegionName": "eu-west-1"
+            },
+            {
+              "Endpoint": "ec2.ap-southeast-1.amazonaws.com",
+              "RegionName": "ap-southeast-1"
+            },
+            {
+              "Endpoint": "ec2.ap-southeast-2.amazonaws.com",
+              "RegionName": "ap-southeast-2"
+            },
+            {
+              "Endpoint": "ec2.eu-central-1.amazonaws.com",
+              "RegionName": "eu-central-1"
+            },
+            {
+              "Endpoint": "ec2.ap-northeast-2.amazonaws.com",
+              "RegionName": "ap-northeast-2"
+            },
+            {
+              "Endpoint": "ec2.ap-northeast-1.amazonaws.com",
+              "RegionName": "ap-northeast-1"
+            },
+            {
+              "Endpoint": "ec2.us-east-1.amazonaws.com",
+              "RegionName": "us-east-1"
+            },
+            {
+              "Endpoint": "ec2.sa-east-1.amazonaws.com",
+              "RegionName": "sa-east-1"
+            },
+            {
+              "Endpoint": "ec2.us-west-1.amazonaws.com",
+              "RegionName": "us-west-1"
+            },
+            {
+              "Endpoint": "ec2.us-west-2.amazonaws.com",
+              "RegionName": "us-west-2"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes all the regions that are available to you.",
+        "id": "ec2-describe-regions-1",
+        "title": "To describe your regions"
+      }
+    ],
+    "DescribeRouteTables": [
+      {
+        "input": {
+          "RouteTableIds": [
+            "rtb-1f382e7d"
+          ]
+        },
+        "output": {
+          "RouteTables": [
+            {
+              "Associations": [
+                {
+                  "Main": true,
+                  "RouteTableAssociationId": "rtbassoc-d8ccddba",
+                  "RouteTableId": "rtb-1f382e7d"
+                }
+              ],
+              "PropagatingVgws": [
+
+              ],
+              "RouteTableId": "rtb-1f382e7d",
+              "Routes": [
+                {
+                  "DestinationCidrBlock": "10.0.0.0/16",
+                  "GatewayId": "local",
+                  "State": "active"
+                }
+              ],
+              "Tags": [
+
+              ],
+              "VpcId": "vpc-a01106c2"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the specified route table.",
+        "id": "ec2-describe-route-tables-1",
+        "title": "To describe a route table"
+      }
+    ],
+    "DescribeScheduledInstanceAvailability": [
+      {
+        "input": {
+          "FirstSlotStartTimeRange": {
+            "EarliestTime": "2016-01-31T00:00:00Z",
+            "LatestTime": "2016-01-31T04:00:00Z"
+          },
+          "Recurrence": {
+            "Frequency": "Weekly",
+            "Interval": 1,
+            "OccurrenceDays": [
+              1
+            ]
+          }
+        },
+        "output": {
+          "ScheduledInstanceAvailabilitySet": [
+            {
+              "AvailabilityZone": "us-west-2b",
+              "AvailableInstanceCount": 20,
+              "FirstSlotStartTime": "2016-01-31T00:00:00Z",
+              "HourlyPrice": "0.095",
+              "InstanceType": "c4.large",
+              "MaxTermDurationInDays": 366,
+              "MinTermDurationInDays": 366,
+              "NetworkPlatform": "EC2-VPC",
+              "Platform": "Linux/UNIX",
+              "PurchaseToken": "eyJ2IjoiMSIsInMiOjEsImMiOi...",
+              "Recurrence": {
+                "Frequency": "Weekly",
+                "Interval": 1,
+                "OccurrenceDaySet": [
+                  1
+                ],
+                "OccurrenceRelativeToEnd": false
+              },
+              "SlotDurationInHours": 23,
+              "TotalScheduledInstanceHours": 1219
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes a schedule that occurs every week on Sunday, starting on the specified date. Note that the output contains a single schedule as an example.",
+        "id": "ec2-describe-scheduled-instance-availability-1",
+        "title": "To describe an available schedule"
+      }
+    ],
+    "DescribeScheduledInstances": [
+      {
+        "input": {
+          "ScheduledInstanceIds": [
+            "sci-1234-1234-1234-1234-123456789012"
+          ]
+        },
+        "output": {
+          "ScheduledInstanceSet": [
+            {
+              "AvailabilityZone": "us-west-2b",
+              "CreateDate": "2016-01-25T21:43:38.612Z",
+              "HourlyPrice": "0.095",
+              "InstanceCount": 1,
+              "InstanceType": "c4.large",
+              "NetworkPlatform": "EC2-VPC",
+              "NextSlotStartTime": "2016-01-31T09:00:00Z",
+              "Platform": "Linux/UNIX",
+              "Recurrence": {
+                "Frequency": "Weekly",
+                "Interval": 1,
+                "OccurrenceDaySet": [
+                  1
+                ],
+                "OccurrenceRelativeToEnd": false,
+                "OccurrenceUnit": ""
+              },
+              "ScheduledInstanceId": "sci-1234-1234-1234-1234-123456789012",
+              "SlotDurationInHours": 32,
+              "TermEndDate": "2017-01-31T09:00:00Z",
+              "TermStartDate": "2016-01-31T09:00:00Z",
+              "TotalScheduledInstanceHours": 1696
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the specified Scheduled Instance.",
+        "id": "ec2-describe-scheduled-instances-1",
+        "title": "To describe your Scheduled Instances"
+      }
+    ],
+    "DescribeSecurityGroupReferences": [
+      {
+        "input": {
+          "GroupId": [
+            "sg-903004f8"
+          ]
+        },
+        "output": {
+          "SecurityGroupReferenceSet": [
+            {
+              "GroupId": "sg-903004f8",
+              "ReferencingVpcId": "vpc-1a2b3c4d",
+              "VpcPeeringConnectionId": "pcx-b04deed9"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the security group references for the specified security group.",
+        "id": "to-describe-security-group-references-1529354312088",
+        "title": "To describe security group references"
+      }
+    ],
+    "DescribeSecurityGroups": [
+      {
+        "input": {
+          "GroupIds": [
+            "sg-903004f8"
+          ]
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the specified security group.",
+        "id": "to-describe-a-security-group-1529354426314",
+        "title": "To describe a security group"
+      },
+      {
+        "input": {
+          "Filters": [
+            {
+              "Name": "tag:Purpose",
+              "Values": [
+                "test"
+              ]
+            }
+          ]
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the security groups that include the specified tag (Purpose=test).",
+        "id": "to-describe-a-tagged-security-group-1529354553880",
+        "title": "To describe a tagged security group"
+      }
+    ],
+    "DescribeSnapshotAttribute": [
+      {
+        "input": {
+          "Attribute": "createVolumePermission",
+          "SnapshotId": "snap-066877671789bd71b"
+        },
+        "output": {
+          "CreateVolumePermissions": [
+
+          ],
+          "SnapshotId": "snap-066877671789bd71b"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the ``createVolumePermission`` attribute on a snapshot with the snapshot ID of ``snap-066877671789bd71b``.",
+        "id": "to-describe-snapshot-attributes-1472503199736",
+        "title": "To describe snapshot attributes"
+      }
+    ],
+    "DescribeSnapshots": [
+      {
+        "input": {
+          "SnapshotIds": [
+            "snap-1234567890abcdef0"
+          ]
+        },
+        "output": {
+          "NextToken": "",
+          "Snapshots": [
+            {
+              "Description": "This is my snapshot.",
+              "OwnerId": "012345678910",
+              "Progress": "100%",
+              "SnapshotId": "snap-1234567890abcdef0",
+              "StartTime": "2014-02-28T21:28:32.000Z",
+              "State": "completed",
+              "VolumeId": "vol-049df61146c4d7901",
+              "VolumeSize": 8
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes a snapshot with the snapshot ID of ``snap-1234567890abcdef0``.",
+        "id": "to-describe-a-snapshot-1472503807850",
+        "title": "To describe a snapshot"
+      },
+      {
+        "input": {
+          "Filters": [
+            {
+              "Name": "status",
+              "Values": [
+                "pending"
+              ]
+            }
+          ],
+          "OwnerIds": [
+            "012345678910"
+          ]
+        },
+        "output": {
+          "NextToken": "",
+          "Snapshots": [
+            {
+              "Description": "This is my copied snapshot.",
+              "OwnerId": "012345678910",
+              "Progress": "87%",
+              "SnapshotId": "snap-066877671789bd71b",
+              "StartTime": "2014-02-28T21:37:27.000Z",
+              "State": "pending",
+              "VolumeId": "vol-1234567890abcdef0",
+              "VolumeSize": 8
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes all snapshots owned by the ID 012345678910 that are in the ``pending`` status.",
+        "id": "to-describe-snapshots-using-filters-1472503929793",
+        "title": "To describe snapshots using filters"
+      }
+    ],
+    "DescribeSpotDatafeedSubscription": [
+      {
+        "output": {
+          "SpotDatafeedSubscription": {
+            "Bucket": "my-s3-bucket",
+            "OwnerId": "123456789012",
+            "Prefix": "spotdata",
+            "State": "Active"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the Spot Instance datafeed subscription for your AWS account.",
+        "id": "ec2-describe-spot-datafeed-subscription-1",
+        "title": "To describe the datafeed for your AWS account"
+      }
+    ],
+    "DescribeSpotFleetInstances": [
+      {
+        "input": {
+          "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE"
+        },
+        "output": {
+          "ActiveInstances": [
+            {
+              "InstanceId": "i-1234567890abcdef0",
+              "InstanceType": "m3.medium",
+              "SpotInstanceRequestId": "sir-08b93456"
+            }
+          ],
+          "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example lists the Spot Instances associated with the specified Spot fleet.",
+        "id": "ec2-describe-spot-fleet-instances-1",
+        "title": "To describe the Spot Instances associated with a Spot fleet"
+      }
+    ],
+    "DescribeSpotFleetRequestHistory": [
+      {
+        "input": {
+          "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE",
+          "StartTime": "2015-05-26T00:00:00Z"
+        },
+        "output": {
+          "HistoryRecords": [
+            {
+              "EventInformation": {
+                "EventSubType": "submitted"
+              },
+              "EventType": "fleetRequestChange",
+              "Timestamp": "2015-05-26T23:17:20.697Z"
+            },
+            {
+              "EventInformation": {
+                "EventSubType": "active"
+              },
+              "EventType": "fleetRequestChange",
+              "Timestamp": "2015-05-26T23:17:20.873Z"
+            },
+            {
+              "EventInformation": {
+                "EventSubType": "launched",
+                "InstanceId": "i-1234567890abcdef0"
+              },
+              "EventType": "instanceChange",
+              "Timestamp": "2015-05-26T23:21:21.712Z"
+            },
+            {
+              "EventInformation": {
+                "EventSubType": "launched",
+                "InstanceId": "i-1234567890abcdef1"
+              },
+              "EventType": "instanceChange",
+              "Timestamp": "2015-05-26T23:21:21.816Z"
+            }
+          ],
+          "NextToken": "CpHNsscimcV5oH7bSbub03CI2Qms5+ypNpNm+53MNlR0YcXAkp0xFlfKf91yVxSExmbtma3awYxMFzNA663ZskT0AHtJ6TCb2Z8bQC2EnZgyELbymtWPfpZ1ZbauVg+P+TfGlWxWWB/Vr5dk5d4LfdgA/DRAHUrYgxzrEXAMPLE=",
+          "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE",
+          "StartTime": "2015-05-26T00:00:00Z"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example returns the history for the specified Spot fleet starting at the specified time.",
+        "id": "ec2-describe-spot-fleet-request-history-1",
+        "title": "To describe Spot fleet history"
+      }
+    ],
+    "DescribeSpotFleetRequests": [
+      {
+        "input": {
+          "SpotFleetRequestIds": [
+            "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE"
+          ]
+        },
+        "output": {
+          "SpotFleetRequestConfigs": [
+            {
+              "SpotFleetRequestConfig": {
+                "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role",
+                "LaunchSpecifications": [
+                  {
+                    "EbsOptimized": false,
+                    "ImageId": "ami-1a2b3c4d",
+                    "InstanceType": "cc2.8xlarge",
+                    "NetworkInterfaces": [
+                      {
+                        "AssociatePublicIpAddress": true,
+                        "DeleteOnTermination": false,
+                        "DeviceIndex": 0,
+                        "SecondaryPrivateIpAddressCount": 0,
+                        "SubnetId": "subnet-a61dafcf"
+                      }
+                    ]
+                  },
+                  {
+                    "EbsOptimized": false,
+                    "ImageId": "ami-1a2b3c4d",
+                    "InstanceType": "r3.8xlarge",
+                    "NetworkInterfaces": [
+                      {
+                        "AssociatePublicIpAddress": true,
+                        "DeleteOnTermination": false,
+                        "DeviceIndex": 0,
+                        "SecondaryPrivateIpAddressCount": 0,
+                        "SubnetId": "subnet-a61dafcf"
+                      }
+                    ]
+                  }
+                ],
+                "SpotPrice": "0.05",
+                "TargetCapacity": 20
+              },
+              "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE",
+              "SpotFleetRequestState": "active"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the specified Spot fleet request.",
+        "id": "ec2-describe-spot-fleet-requests-1",
+        "title": "To describe a Spot fleet request"
+      }
+    ],
+    "DescribeSpotInstanceRequests": [
+      {
+        "input": {
+          "SpotInstanceRequestIds": [
+            "sir-08b93456"
+          ]
+        },
+        "output": {
+          "SpotInstanceRequests": [
+            {
+              "CreateTime": "2014-04-30T18:14:55.000Z",
+              "InstanceId": "i-1234567890abcdef0",
+              "LaunchSpecification": {
+                "BlockDeviceMappings": [
+                  {
+                    "DeviceName": "/dev/sda1",
+                    "Ebs": {
+                      "DeleteOnTermination": true,
+                      "VolumeSize": 8,
+                      "VolumeType": "standard"
+                    }
+                  }
+                ],
+                "EbsOptimized": false,
+                "ImageId": "ami-7aba833f",
+                "InstanceType": "m1.small",
+                "KeyName": "my-key-pair",
+                "SecurityGroups": [
+                  {
+                    "GroupId": "sg-e38f24a7",
+                    "GroupName": "my-security-group"
+                  }
+                ]
+              },
+              "LaunchedAvailabilityZone": "us-west-1b",
+              "ProductDescription": "Linux/UNIX",
+              "SpotInstanceRequestId": "sir-08b93456",
+              "SpotPrice": "0.010000",
+              "State": "active",
+              "Status": {
+                "Code": "fulfilled",
+                "Message": "Your Spot request is fulfilled.",
+                "UpdateTime": "2014-04-30T18:16:21.000Z"
+              },
+              "Type": "one-time"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the specified Spot Instance request.",
+        "id": "ec2-describe-spot-instance-requests-1",
+        "title": "To describe a Spot Instance request"
+      }
+    ],
+    "DescribeSpotPriceHistory": [
+      {
+        "input": {
+          "EndTime": "2014-01-06T08:09:10",
+          "InstanceTypes": [
+            "m1.xlarge"
+          ],
+          "ProductDescriptions": [
+            "Linux/UNIX (Amazon VPC)"
+          ],
+          "StartTime": "2014-01-06T07:08:09"
+        },
+        "output": {
+          "SpotPriceHistory": [
+            {
+              "AvailabilityZone": "us-west-1a",
+              "InstanceType": "m1.xlarge",
+              "ProductDescription": "Linux/UNIX (Amazon VPC)",
+              "SpotPrice": "0.080000",
+              "Timestamp": "2014-01-06T04:32:53.000Z"
+            },
+            {
+              "AvailabilityZone": "us-west-1c",
+              "InstanceType": "m1.xlarge",
+              "ProductDescription": "Linux/UNIX (Amazon VPC)",
+              "SpotPrice": "0.080000",
+              "Timestamp": "2014-01-05T11:28:26.000Z"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example returns the Spot Price history for m1.xlarge, Linux/UNIX (Amazon VPC) instances for a particular day in January.",
+        "id": "ec2-describe-spot-price-history-1",
+        "title": "To describe Spot price history for Linux/UNIX (Amazon VPC)"
+      }
+    ],
+    "DescribeSubnets": [
+      {
+        "input": {
+          "Filters": [
+            {
+              "Name": "vpc-id",
+              "Values": [
+                "vpc-a01106c2"
+              ]
+            }
+          ]
+        },
+        "output": {
+          "Subnets": [
+            {
+              "AvailabilityZone": "us-east-1c",
+              "AvailableIpAddressCount": 251,
+              "CidrBlock": "10.0.1.0/24",
+              "DefaultForAz": false,
+              "MapPublicIpOnLaunch": false,
+              "State": "available",
+              "SubnetId": "subnet-9d4a7b6c",
+              "VpcId": "vpc-a01106c2"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the subnets for the specified VPC.",
+        "id": "ec2-describe-subnets-1",
+        "title": "To describe the subnets for a VPC"
+      }
+    ],
+    "DescribeTags": [
+      {
+        "input": {
+          "Filters": [
+            {
+              "Name": "resource-id",
+              "Values": [
+                "i-1234567890abcdef8"
+              ]
+            }
+          ]
+        },
+        "output": {
+          "Tags": [
+            {
+              "Key": "Stack",
+              "ResourceId": "i-1234567890abcdef8",
+              "ResourceType": "instance",
+              "Value": "test"
+            },
+            {
+              "Key": "Name",
+              "ResourceId": "i-1234567890abcdef8",
+              "ResourceType": "instance",
+              "Value": "Beta Server"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the tags for the specified instance.",
+        "id": "ec2-describe-tags-1",
+        "title": "To describe the tags for a single resource"
+      }
+    ],
+    "DescribeVolumeAttribute": [
+      {
+        "input": {
+          "Attribute": "autoEnableIO",
+          "VolumeId": "vol-049df61146c4d7901"
+        },
+        "output": {
+          "AutoEnableIO": {
+            "Value": false
+          },
+          "VolumeId": "vol-049df61146c4d7901"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the ``autoEnableIo`` attribute of the volume with the ID ``vol-049df61146c4d7901``.",
+        "id": "to-describe-a-volume-attribute-1472505773492",
+        "title": "To describe a volume attribute"
+      }
+    ],
+    "DescribeVolumeStatus": [
+      {
+        "input": {
+          "VolumeIds": [
+            "vol-1234567890abcdef0"
+          ]
+        },
+        "output": {
+          "VolumeStatuses": [
+            {
+              "Actions": [
+
+              ],
+              "AvailabilityZone": "us-east-1a",
+              "Events": [
+
+              ],
+              "VolumeId": "vol-1234567890abcdef0",
+              "VolumeStatus": {
+                "Details": [
+                  {
+                    "Name": "io-enabled",
+                    "Status": "passed"
+                  },
+                  {
+                    "Name": "io-performance",
+                    "Status": "not-applicable"
+                  }
+                ],
+                "Status": "ok"
+              }
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the status for the volume ``vol-1234567890abcdef0``.",
+        "id": "to-describe-the-status-of-a-single-volume-1472507016193",
+        "title": "To describe the status of a single volume"
+      },
+      {
+        "input": {
+          "Filters": [
+            {
+              "Name": "volume-status.status",
+              "Values": [
+                "impaired"
+              ]
+            }
+          ]
+        },
+        "output": {
+          "VolumeStatuses": [
+
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the status for all volumes that are impaired. In this example output, there are no impaired volumes.",
+        "id": "to-describe-the-status-of-impaired-volumes-1472507239821",
+        "title": "To describe the status of impaired volumes"
+      }
+    ],
+    "DescribeVolumes": [
+      {
+        "input": {
+        },
+        "output": {
+          "NextToken": "",
+          "Volumes": [
+            {
+              "Attachments": [
+                {
+                  "AttachTime": "2013-12-18T22:35:00.000Z",
+                  "DeleteOnTermination": true,
+                  "Device": "/dev/sda1",
+                  "InstanceId": "i-1234567890abcdef0",
+                  "State": "attached",
+                  "VolumeId": "vol-049df61146c4d7901"
+                }
+              ],
+              "AvailabilityZone": "us-east-1a",
+              "CreateTime": "2013-12-18T22:35:00.084Z",
+              "Size": 8,
+              "SnapshotId": "snap-1234567890abcdef0",
+              "State": "in-use",
+              "VolumeId": "vol-049df61146c4d7901",
+              "VolumeType": "standard"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes all of your volumes in the default region.",
+        "id": "to-describe-all-volumes-1472506358883",
+        "title": "To describe all volumes"
+      },
+      {
+        "input": {
+          "Filters": [
+            {
+              "Name": "attachment.instance-id",
+              "Values": [
+                "i-1234567890abcdef0"
+              ]
+            },
+            {
+              "Name": "attachment.delete-on-termination",
+              "Values": [
+                "true"
+              ]
+            }
+          ]
+        },
+        "output": {
+          "Volumes": [
+            {
+              "Attachments": [
+                {
+                  "AttachTime": "2013-12-18T22:35:00.000Z",
+                  "DeleteOnTermination": true,
+                  "Device": "/dev/sda1",
+                  "InstanceId": "i-1234567890abcdef0",
+                  "State": "attached",
+                  "VolumeId": "vol-049df61146c4d7901"
+                }
+              ],
+              "AvailabilityZone": "us-east-1a",
+              "CreateTime": "2013-12-18T22:35:00.084Z",
+              "Size": 8,
+              "SnapshotId": "snap-1234567890abcdef0",
+              "State": "in-use",
+              "VolumeId": "vol-049df61146c4d7901",
+              "VolumeType": "standard"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes all volumes that are both attached to the instance with the ID i-1234567890abcdef0 and set to delete when the instance terminates.",
+        "id": "to-describe-volumes-that-are-attached-to-a-specific-instance-1472506613578",
+        "title": "To describe volumes that are attached to a specific instance"
+      }
+    ],
+    "DescribeVpcAttribute": [
+      {
+        "input": {
+          "Attribute": "enableDnsSupport",
+          "VpcId": "vpc-a01106c2"
+        },
+        "output": {
+          "EnableDnsSupport": {
+            "Value": true
+          },
+          "VpcId": "vpc-a01106c2"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the enableDnsSupport attribute. This attribute indicates whether DNS resolution is enabled for the VPC. If this attribute is true, the Amazon DNS server resolves DNS hostnames for your instances to their corresponding IP addresses; otherwise, it does not.",
+        "id": "ec2-describe-vpc-attribute-1",
+        "title": "To describe the enableDnsSupport attribute"
+      },
+      {
+        "input": {
+          "Attribute": "enableDnsHostnames",
+          "VpcId": "vpc-a01106c2"
+        },
+        "output": {
+          "EnableDnsHostnames": {
+            "Value": true
+          },
+          "VpcId": "vpc-a01106c2"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the enableDnsHostnames attribute. This attribute indicates whether the instances launched in the VPC get DNS hostnames. If this attribute is true, instances in the VPC get DNS hostnames; otherwise, they do not.",
+        "id": "ec2-describe-vpc-attribute-2",
+        "title": "To describe the enableDnsHostnames attribute"
+      }
+    ],
+    "DescribeVpcs": [
+      {
+        "input": {
+          "VpcIds": [
+            "vpc-a01106c2"
+          ]
+        },
+        "output": {
+          "Vpcs": [
+            {
+              "CidrBlock": "10.0.0.0/16",
+              "DhcpOptionsId": "dopt-7a8b9c2d",
+              "InstanceTenancy": "default",
+              "IsDefault": false,
+              "State": "available",
+              "Tags": [
+                {
+                  "Key": "Name",
+                  "Value": "MyVPC"
+                }
+              ],
+              "VpcId": "vpc-a01106c2"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the specified VPC.",
+        "id": "ec2-describe-vpcs-1",
+        "title": "To describe a VPC"
+      }
+    ],
+    "DetachInternetGateway": [
+      {
+        "input": {
+          "InternetGatewayId": "igw-c0a643a9",
+          "VpcId": "vpc-a01106c2"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example detaches the specified Internet gateway from the specified VPC.",
+        "id": "ec2-detach-internet-gateway-1",
+        "title": "To detach an Internet gateway from a VPC"
+      }
+    ],
+    "DetachNetworkInterface": [
+      {
+        "input": {
+          "AttachmentId": "eni-attach-66c4350a"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example detaches the specified network interface from its attached instance.",
+        "id": "ec2-detach-network-interface-1",
+        "title": "To detach a network interface from an instance"
+      }
+    ],
+    "DetachVolume": [
+      {
+        "input": {
+          "VolumeId": "vol-1234567890abcdef0"
+        },
+        "output": {
+          "AttachTime": "2014-02-27T19:23:06.000Z",
+          "Device": "/dev/sdb",
+          "InstanceId": "i-1234567890abcdef0",
+          "State": "detaching",
+          "VolumeId": "vol-049df61146c4d7901"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example detaches the volume (``vol-049df61146c4d7901``) from the instance it is attached to.",
+        "id": "to-detach-a-volume-from-an-instance-1472507977694",
+        "title": "To detach a volume from an instance"
+      }
+    ],
+    "DisableVgwRoutePropagation": [
+      {
+        "input": {
+          "GatewayId": "vgw-9a4cacf3",
+          "RouteTableId": "rtb-22574640"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example disables the specified virtual private gateway from propagating static routes to the specified route table.",
+        "id": "ec2-disable-vgw-route-propagation-1",
+        "title": "To disable route propagation"
+      }
+    ],
+    "DisassociateAddress": [
+      {
+        "input": {
+          "AssociationId": "eipassoc-2bebb745"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example disassociates an Elastic IP address from an instance in a VPC.",
+        "id": "ec2-disassociate-address-1",
+        "title": "To disassociate an Elastic IP address in EC2-VPC"
+      },
+      {
+        "input": {
+          "PublicIp": "198.51.100.0"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example disassociates an Elastic IP address from an instance in EC2-Classic.",
+        "id": "ec2-disassociate-address-2",
+        "title": "To disassociate an Elastic IP addresses in EC2-Classic"
+      }
+    ],
+    "DisassociateIamInstanceProfile": [
+      {
+        "input": {
+          "AssociationId": "iip-assoc-05020b59952902f5f"
+        },
+        "output": {
+          "IamInstanceProfileAssociation": {
+            "AssociationId": "iip-assoc-05020b59952902f5f",
+            "IamInstanceProfile": {
+              "Arn": "arn:aws:iam::123456789012:instance-profile/admin-role",
+              "Id": "AIPAI5IVIHMFFYY2DKV5Y"
+            },
+            "InstanceId": "i-123456789abcde123",
+            "State": "disassociating"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example disassociates the specified IAM instance profile from an instance.",
+        "id": "to-disassociate-an-iam-instance-profile-1529355364478",
+        "title": "To disassociate an IAM instance profile"
+      }
+    ],
+    "DisassociateRouteTable": [
+      {
+        "input": {
+          "AssociationId": "rtbassoc-781d0d1a"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example disassociates the specified route table from its associated subnet.",
+        "id": "ec2-disassociate-route-table-1",
+        "title": "To disassociate a route table"
+      }
+    ],
+    "EnableVgwRoutePropagation": [
+      {
+        "input": {
+          "GatewayId": "vgw-9a4cacf3",
+          "RouteTableId": "rtb-22574640"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example enables the specified virtual private gateway to propagate static routes to the specified route table.",
+        "id": "ec2-enable-vgw-route-propagation-1",
+        "title": "To enable route propagation"
+      }
+    ],
+    "EnableVolumeIO": [
+      {
+        "input": {
+          "VolumeId": "vol-1234567890abcdef0"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example enables I/O on volume ``vol-1234567890abcdef0``.",
+        "id": "to-enable-io-for-a-volume-1472508114867",
+        "title": "To enable I/O for a volume"
+      }
+    ],
+    "GetConsoleOutput": [
+      {
+        "input": {
+          "InstanceId": "i-1234567890abcdef0"
+        },
+        "output": {
+          "InstanceId": "i-1234567890abcdef0",
+          "Output": "...",
+          "Timestamp": "2018-05-25T21:23:53.000Z"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example gets the console output for the specified instance.",
+        "id": "to-get-the-console-output-1529355683194",
+        "title": "To get the console output"
+      }
+    ],
+    "GetLaunchTemplateData": [
+      {
+        "input": {
+          "InstanceId": "0123d646e8048babc"
+        },
+        "output": {
+          "LaunchTemplateData": {
+            "BlockDeviceMappings": [
+              {
+                "DeviceName": "/dev/xvda",
+                "Ebs": {
+                  "DeleteOnTermination": true,
+                  "Encrypted": false,
+                  "Iops": 100,
+                  "SnapshotId": "snap-02594938353ef77d3",
+                  "VolumeSize": 8,
+                  "VolumeType": "gp2"
+                }
+              }
+            ],
+            "EbsOptimized": false,
+            "ImageId": "ami-32cf7b4a",
+            "InstanceType": "t2.medium",
+            "KeyName": "my-key-pair",
+            "Monitoring": {
+              "Enabled": false
+            },
+            "NetworkInterfaces": [
+              {
+                "AssociatePublicIpAddress": false,
+                "DeleteOnTermination": true,
+                "Description": "",
+                "DeviceIndex": 0,
+                "Groups": [
+                  "sg-d14e1bb4"
+                ],
+                "Ipv6Addresses": [
+
+                ],
+                "NetworkInterfaceId": "eni-4338b5a9",
+                "PrivateIpAddress": "10.0.3.233",
+                "PrivateIpAddresses": [
+                  {
+                    "Primary": true,
+                    "PrivateIpAddress": "10.0.3.233"
+                  }
+                ],
+                "SubnetId": "subnet-5264e837"
+              }
+            ],
+            "Placement": {
+              "AvailabilityZone": "us-east-2b",
+              "GroupName": "",
+              "Tenancy": "default"
+            }
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example gets the launch template data for the specified instance.",
+        "id": "to-get-the-launch-template-data-for-an-instance--1529356515702",
+        "title": "To get the launch template data for an instance "
+      }
+    ],
+    "ModifyImageAttribute": [
+      {
+        "input": {
+          "ImageId": "ami-5731123e",
+          "LaunchPermission": {
+            "Add": [
+              {
+                "Group": "all"
+              }
+            ]
+          }
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example makes the specified AMI public.",
+        "id": "to-make-an-ami-public-1529357395278",
+        "title": "To make an AMI public"
+      },
+      {
+        "input": {
+          "ImageId": "ami-5731123e",
+          "LaunchPermission": {
+            "Add": [
+              {
+                "UserId": "123456789012"
+              }
+            ]
+          }
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example grants launch permissions for the specified AMI to the specified AWS account.",
+        "id": "to-grant-launch-permissions-1529357727906",
+        "title": "To grant launch permissions"
+      }
+    ],
+    "ModifyInstanceAttribute": [
+      {
+        "input": {
+          "InstanceId": "i-1234567890abcdef0",
+          "InstanceType": {
+            "Value": "m5.large"
+          }
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example modifies the instance type of the specified stopped instance.",
+        "id": "to-modify-the-instance-type-1529357844378",
+        "title": "To modify the instance type"
+      },
+      {
+        "input": {
+          "EnaSupport": {
+            "Value": true
+          },
+          "InstanceId": "i-1234567890abcdef0"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example enables enhanced networking for the specified stopped instance.",
+        "id": "to-enable-enhanced-networking-1529358279870",
+        "title": "To enable enhanced networking"
+      }
+    ],
+    "ModifyLaunchTemplate": [
+      {
+        "input": {
+          "DefaultVersion": "2",
+          "LaunchTemplateId": "lt-0abcd290751193123"
+        },
+        "output": {
+          "LaunchTemplate": {
+            "CreateTime": "2017-12-01T13:35:46.000Z",
+            "CreatedBy": "arn:aws:iam::123456789012:root",
+            "DefaultVersionNumber": 2,
+            "LatestVersionNumber": 2,
+            "LaunchTemplateId": "lt-0abcd290751193123",
+            "LaunchTemplateName": "WebServers"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example specifies version 2 as the default version of the specified launch template.",
+        "id": "to-change-the-default-version-of-a-launch-template-1529358440364",
+        "title": "To change the default version of a launch template"
+      }
+    ],
+    "ModifyNetworkInterfaceAttribute": [
+      {
+        "input": {
+          "Attachment": {
+            "AttachmentId": "eni-attach-43348162",
+            "DeleteOnTermination": false
+          },
+          "NetworkInterfaceId": "eni-686ea200"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example modifies the attachment attribute of the specified network interface.",
+        "id": "ec2-modify-network-interface-attribute-1",
+        "title": "To modify the attachment attribute of a network interface"
+      },
+      {
+        "input": {
+          "Description": {
+            "Value": "My description"
+          },
+          "NetworkInterfaceId": "eni-686ea200"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example modifies the description attribute of the specified network interface.",
+        "id": "ec2-modify-network-interface-attribute-2",
+        "title": "To modify the description attribute of a network interface"
+      },
+      {
+        "input": {
+          "Groups": [
+            "sg-903004f8",
+            "sg-1a2b3c4d"
+          ],
+          "NetworkInterfaceId": "eni-686ea200"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example command modifies the groupSet attribute of the specified network interface.",
+        "id": "ec2-modify-network-interface-attribute-3",
+        "title": "To modify the groupSet attribute of a network interface"
+      },
+      {
+        "input": {
+          "NetworkInterfaceId": "eni-686ea200",
+          "SourceDestCheck": {
+            "Value": false
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example command modifies the sourceDestCheck attribute of the specified network interface.",
+        "id": "ec2-modify-network-interface-attribute-4",
+        "title": "To modify the sourceDestCheck attribute of a network interface"
+      }
+    ],
+    "ModifySnapshotAttribute": [
+      {
+        "input": {
+          "Attribute": "createVolumePermission",
+          "OperationType": "remove",
+          "SnapshotId": "snap-1234567890abcdef0",
+          "UserIds": [
+            "123456789012"
+          ]
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example modifies snapshot ``snap-1234567890abcdef0`` to remove the create volume permission for a user with the account ID ``123456789012``. If the command succeeds, no output is returned.",
+        "id": "to-modify-a-snapshot-attribute-1472508385907",
+        "title": "To modify a snapshot attribute"
+      },
+      {
+        "input": {
+          "Attribute": "createVolumePermission",
+          "GroupNames": [
+            "all"
+          ],
+          "OperationType": "add",
+          "SnapshotId": "snap-1234567890abcdef0"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example makes the snapshot ``snap-1234567890abcdef0`` public.",
+        "id": "to-make-a-snapshot-public-1472508470529",
+        "title": "To make a snapshot public"
+      }
+    ],
+    "ModifySpotFleetRequest": [
+      {
+        "input": {
+          "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE",
+          "TargetCapacity": 20
+        },
+        "output": {
+          "Return": true
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example increases the target capacity of the specified Spot fleet request.",
+        "id": "ec2-modify-spot-fleet-request-1",
+        "title": "To increase the target capacity of a Spot fleet request"
+      },
+      {
+        "input": {
+          "ExcessCapacityTerminationPolicy": "NoTermination ",
+          "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE",
+          "TargetCapacity": 10
+        },
+        "output": {
+          "Return": true
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example decreases the target capacity of the specified Spot fleet request without terminating any Spot Instances as a result.",
+        "id": "ec2-modify-spot-fleet-request-2",
+        "title": "To decrease the target capacity of a Spot fleet request"
+      }
+    ],
+    "ModifySubnetAttribute": [
+      {
+        "input": {
+          "MapPublicIpOnLaunch": {
+            "Value": true
+          },
+          "SubnetId": "subnet-1a2b3c4d"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example modifies the specified subnet so that all instances launched into this subnet are assigned a public IP address.",
+        "id": "ec2-modify-subnet-attribute-1",
+        "title": "To change a subnet's public IP addressing behavior"
+      }
+    ],
+    "ModifyVolumeAttribute": [
+      {
+        "input": {
+          "AutoEnableIO": {
+            "Value": true
+          },
+          "DryRun": true,
+          "VolumeId": "vol-1234567890abcdef0"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example sets the ``autoEnableIo`` attribute of the volume with the ID ``vol-1234567890abcdef0`` to ``true``. If the command succeeds, no output is returned.",
+        "id": "to-modify-a-volume-attribute-1472508596749",
+        "title": "To modify a volume attribute"
+      }
+    ],
+    "ModifyVpcAttribute": [
+      {
+        "input": {
+          "EnableDnsSupport": {
+            "Value": false
+          },
+          "VpcId": "vpc-a01106c2"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example modifies the enableDnsSupport attribute. This attribute indicates whether DNS resolution is enabled for the VPC. If this attribute is true, the Amazon DNS server resolves DNS hostnames for instances in the VPC to their corresponding IP addresses; otherwise, it does not.",
+        "id": "ec2-modify-vpc-attribute-1",
+        "title": "To modify the enableDnsSupport attribute"
+      },
+      {
+        "input": {
+          "EnableDnsHostnames": {
+            "Value": false
+          },
+          "VpcId": "vpc-a01106c2"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example modifies the enableDnsHostnames attribute. This attribute indicates whether instances launched in the VPC get DNS hostnames. If this attribute is true, instances in the VPC get DNS hostnames; otherwise, they do not.",
+        "id": "ec2-modify-vpc-attribute-2",
+        "title": "To modify the enableDnsHostnames attribute"
+      }
+    ],
+    "MoveAddressToVpc": [
+      {
+        "input": {
+          "PublicIp": "54.123.4.56"
+        },
+        "output": {
+          "Status": "MoveInProgress"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example moves the specified Elastic IP address to the EC2-VPC platform.",
+        "id": "ec2-move-address-to-vpc-1",
+        "title": "To move an address to EC2-VPC"
+      }
+    ],
+    "PurchaseScheduledInstances": [
+      {
+        "input": {
+          "PurchaseRequests": [
+            {
+              "InstanceCount": 1,
+              "PurchaseToken": "eyJ2IjoiMSIsInMiOjEsImMiOi..."
+            }
+          ]
+        },
+        "output": {
+          "ScheduledInstanceSet": [
+            {
+              "AvailabilityZone": "us-west-2b",
+              "CreateDate": "2016-01-25T21:43:38.612Z",
+              "HourlyPrice": "0.095",
+              "InstanceCount": 1,
+              "InstanceType": "c4.large",
+              "NetworkPlatform": "EC2-VPC",
+              "NextSlotStartTime": "2016-01-31T09:00:00Z",
+              "Platform": "Linux/UNIX",
+              "Recurrence": {
+                "Frequency": "Weekly",
+                "Interval": 1,
+                "OccurrenceDaySet": [
+                  1
+                ],
+                "OccurrenceRelativeToEnd": false,
+                "OccurrenceUnit": ""
+              },
+              "ScheduledInstanceId": "sci-1234-1234-1234-1234-123456789012",
+              "SlotDurationInHours": 32,
+              "TermEndDate": "2017-01-31T09:00:00Z",
+              "TermStartDate": "2016-01-31T09:00:00Z",
+              "TotalScheduledInstanceHours": 1696
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example purchases a Scheduled Instance.",
+        "id": "ec2-purchase-scheduled-instances-1",
+        "title": "To purchase a Scheduled Instance"
+      }
+    ],
+    "RebootInstances": [
+      {
+        "input": {
+          "InstanceIds": [
+            "i-1234567890abcdef5"
+          ]
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example reboots the specified EC2 instance.",
+        "id": "to-reboot-an-ec2-instance-1529358566382",
+        "title": "To reboot an EC2 instance"
+      }
+    ],
+    "ReleaseAddress": [
+      {
+        "input": {
+          "AllocationId": "eipalloc-64d5890a"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example releases an Elastic IP address for use with instances in a VPC.",
+        "id": "ec2-release-address-1",
+        "title": "To release an Elastic IP address for EC2-VPC"
+      },
+      {
+        "input": {
+          "PublicIp": "198.51.100.0"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example releases an Elastic IP address for use with instances in EC2-Classic.",
+        "id": "ec2-release-address-2",
+        "title": "To release an Elastic IP addresses for EC2-Classic"
+      }
+    ],
+    "ReplaceNetworkAclAssociation": [
+      {
+        "input": {
+          "AssociationId": "aclassoc-e5b95c8c",
+          "NetworkAclId": "acl-5fb85d36"
+        },
+        "output": {
+          "NewAssociationId": "aclassoc-3999875b"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example associates the specified network ACL with the subnet for the specified network ACL association.",
+        "id": "ec2-replace-network-acl-association-1",
+        "title": "To replace the network ACL associated with a subnet"
+      }
+    ],
+    "ReplaceNetworkAclEntry": [
+      {
+        "input": {
+          "CidrBlock": "203.0.113.12/24",
+          "Egress": false,
+          "NetworkAclId": "acl-5fb85d36",
+          "PortRange": {
+            "From": 53,
+            "To": 53
+          },
+          "Protocol": "17",
+          "RuleAction": "allow",
+          "RuleNumber": 100
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example replaces an entry for the specified network ACL. The new rule 100 allows ingress traffic from 203.0.113.12/24 on UDP port 53 (DNS) into any associated subnet.",
+        "id": "ec2-replace-network-acl-entry-1",
+        "title": "To replace a network ACL entry"
+      }
+    ],
+    "ReplaceRoute": [
+      {
+        "input": {
+          "DestinationCidrBlock": "10.0.0.0/16",
+          "GatewayId": "vgw-9a4cacf3",
+          "RouteTableId": "rtb-22574640"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example replaces the specified route in the specified table table. The new route matches the specified CIDR and sends the traffic to the specified virtual private gateway.",
+        "id": "ec2-replace-route-1",
+        "title": "To replace a route"
+      }
+    ],
+    "ReplaceRouteTableAssociation": [
+      {
+        "input": {
+          "AssociationId": "rtbassoc-781d0d1a",
+          "RouteTableId": "rtb-22574640"
+        },
+        "output": {
+          "NewAssociationId": "rtbassoc-3a1f0f58"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example associates the specified route table with the subnet for the specified route table association.",
+        "id": "ec2-replace-route-table-association-1",
+        "title": "To replace the route table associated with a subnet"
+      }
+    ],
+    "RequestSpotFleet": [
+      {
+        "input": {
+          "SpotFleetRequestConfig": {
+            "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role",
+            "LaunchSpecifications": [
+              {
+                "IamInstanceProfile": {
+                  "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role"
+                },
+                "ImageId": "ami-1a2b3c4d",
+                "InstanceType": "m3.medium",
+                "KeyName": "my-key-pair",
+                "SecurityGroups": [
+                  {
+                    "GroupId": "sg-1a2b3c4d"
+                  }
+                ],
+                "SubnetId": "subnet-1a2b3c4d, subnet-3c4d5e6f"
+              }
+            ],
+            "SpotPrice": "0.04",
+            "TargetCapacity": 2
+          }
+        },
+        "output": {
+          "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a Spot fleet request with two launch specifications that differ only by subnet. The Spot fleet launches the instances in the specified subnet with the lowest price. If the instances are launched in a default VPC, they receive a public IP address by default. If the instances are launched in a nondefault VPC, they do not receive a public IP address by default. Note that you can't specify different subnets from the same Availability Zone in a Spot fleet request.",
+        "id": "ec2-request-spot-fleet-1",
+        "title": "To request a Spot fleet in the subnet with the lowest price"
+      },
+      {
+        "input": {
+          "SpotFleetRequestConfig": {
+            "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role",
+            "LaunchSpecifications": [
+              {
+                "IamInstanceProfile": {
+                  "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role"
+                },
+                "ImageId": "ami-1a2b3c4d",
+                "InstanceType": "m3.medium",
+                "KeyName": "my-key-pair",
+                "Placement": {
+                  "AvailabilityZone": "us-west-2a, us-west-2b"
+                },
+                "SecurityGroups": [
+                  {
+                    "GroupId": "sg-1a2b3c4d"
+                  }
+                ]
+              }
+            ],
+            "SpotPrice": "0.04",
+            "TargetCapacity": 2
+          }
+        },
+        "output": {
+          "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a Spot fleet request with two launch specifications that differ only by Availability Zone. The Spot fleet launches the instances in the specified Availability Zone with the lowest price. If your account supports EC2-VPC only, Amazon EC2 launches the Spot instances in the default subnet of the Availability Zone. If your account supports EC2-Classic, Amazon EC2 launches the instances in EC2-Classic in the Availability Zone.",
+        "id": "ec2-request-spot-fleet-2",
+        "title": "To request a Spot fleet in the Availability Zone with the lowest price"
+      },
+      {
+        "input": {
+          "SpotFleetRequestConfig": {
+            "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role",
+            "LaunchSpecifications": [
+              {
+                "IamInstanceProfile": {
+                  "Arn": "arn:aws:iam::880185128111:instance-profile/my-iam-role"
+                },
+                "ImageId": "ami-1a2b3c4d",
+                "InstanceType": "m3.medium",
+                "KeyName": "my-key-pair",
+                "NetworkInterfaces": [
+                  {
+                    "AssociatePublicIpAddress": true,
+                    "DeviceIndex": 0,
+                    "Groups": [
+                      "sg-1a2b3c4d"
+                    ],
+                    "SubnetId": "subnet-1a2b3c4d"
+                  }
+                ]
+              }
+            ],
+            "SpotPrice": "0.04",
+            "TargetCapacity": 2
+          }
+        },
+        "output": {
+          "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example assigns public addresses to instances launched in a nondefault VPC. Note that when you specify a network interface, you must include the subnet ID and security group ID using the network interface.",
+        "id": "ec2-request-spot-fleet-3",
+        "title": "To launch Spot instances in a subnet and assign them public IP addresses"
+      },
+      {
+        "input": {
+          "SpotFleetRequestConfig": {
+            "AllocationStrategy": "diversified",
+            "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role",
+            "LaunchSpecifications": [
+              {
+                "ImageId": "ami-1a2b3c4d",
+                "InstanceType": "c4.2xlarge",
+                "SubnetId": "subnet-1a2b3c4d"
+              },
+              {
+                "ImageId": "ami-1a2b3c4d",
+                "InstanceType": "m3.2xlarge",
+                "SubnetId": "subnet-1a2b3c4d"
+              },
+              {
+                "ImageId": "ami-1a2b3c4d",
+                "InstanceType": "r3.2xlarge",
+                "SubnetId": "subnet-1a2b3c4d"
+              }
+            ],
+            "SpotPrice": "0.70",
+            "TargetCapacity": 30
+          }
+        },
+        "output": {
+          "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a Spot fleet request that launches 30 instances using the diversified allocation strategy. The launch specifications differ by instance type. The Spot fleet distributes the instances across the launch specifications such that there are 10 instances of each type.",
+        "id": "ec2-request-spot-fleet-4",
+        "title": "To request a Spot fleet using the diversified allocation strategy"
+      }
+    ],
+    "RequestSpotInstances": [
+      {
+        "input": {
+          "InstanceCount": 5,
+          "LaunchSpecification": {
+            "IamInstanceProfile": {
+              "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role"
+            },
+            "ImageId": "ami-1a2b3c4d",
+            "InstanceType": "m3.medium",
+            "KeyName": "my-key-pair",
+            "Placement": {
+              "AvailabilityZone": "us-west-2a"
+            },
+            "SecurityGroupIds": [
+              "sg-1a2b3c4d"
+            ]
+          },
+          "SpotPrice": "0.03",
+          "Type": "one-time"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a one-time Spot Instance request for five instances in the specified Availability Zone. If your account supports EC2-VPC only, Amazon EC2 launches the instances in the default subnet of the specified Availability Zone. If your account supports EC2-Classic, Amazon EC2 launches the instances in EC2-Classic in the specified Availability Zone.",
+        "id": "ec2-request-spot-instances-1",
+        "title": "To create a one-time Spot Instance request"
+      },
+      {
+        "input": {
+          "InstanceCount": 5,
+          "LaunchSpecification": {
+            "IamInstanceProfile": {
+              "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role"
+            },
+            "ImageId": "ami-1a2b3c4d",
+            "InstanceType": "m3.medium",
+            "SecurityGroupIds": [
+              "sg-1a2b3c4d"
+            ],
+            "SubnetId": "subnet-1a2b3c4d"
+          },
+          "SpotPrice": "0.050",
+          "Type": "one-time"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example command creates a one-time Spot Instance request for five instances in the specified subnet. Amazon EC2 launches the instances in the specified subnet. If the VPC is a nondefault VPC, the instances do not receive a public IP address by default.",
+        "id": "ec2-request-spot-instances-2",
+        "title": "To create a one-time Spot Instance request"
+      }
+    ],
+    "ResetImageAttribute": [
+      {
+        "input": {
+          "Attribute": "launchPermission",
+          "ImageId": "ami-5731123e"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example resets the launchPermission attribute for the specified AMI. By default, AMIs are private.",
+        "id": "to-reset-the-launchpermission-attribute-1529359519534",
+        "title": "To reset the launchPermission attribute"
+      }
+    ],
+    "ResetInstanceAttribute": [
+      {
+        "input": {
+          "Attribute": "sourceDestCheck",
+          "InstanceId": "i-1234567890abcdef0"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example resets the sourceDestCheck attribute for the specified instance.",
+        "id": "to-reset-the-sourcedestcheck-attribute-1529359630708",
+        "title": "To reset the sourceDestCheck attribute"
+      }
+    ],
+    "ResetSnapshotAttribute": [
+      {
+        "input": {
+          "Attribute": "createVolumePermission",
+          "SnapshotId": "snap-1234567890abcdef0"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example resets the create volume permissions for snapshot ``snap-1234567890abcdef0``. If the command succeeds, no output is returned.",
+        "id": "to-reset-a-snapshot-attribute-1472508825735",
+        "title": "To reset a snapshot attribute"
+      }
+    ],
+    "RestoreAddressToClassic": [
+      {
+        "input": {
+          "PublicIp": "198.51.100.0"
+        },
+        "output": {
+          "PublicIp": "198.51.100.0",
+          "Status": "MoveInProgress"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example restores the specified Elastic IP address to the EC2-Classic platform.",
+        "id": "ec2-restore-address-to-classic-1",
+        "title": "To restore an address to EC2-Classic"
+      }
+    ],
+    "RunInstances": [
+      {
+        "input": {
+          "BlockDeviceMappings": [
+            {
+              "DeviceName": "/dev/sdh",
+              "Ebs": {
+                "VolumeSize": 100
+              }
+            }
+          ],
+          "ImageId": "ami-abc12345",
+          "InstanceType": "t2.micro",
+          "KeyName": "my-key-pair",
+          "MaxCount": 1,
+          "MinCount": 1,
+          "SecurityGroupIds": [
+            "sg-1a2b3c4d"
+          ],
+          "SubnetId": "subnet-6e7f829e",
+          "TagSpecifications": [
+            {
+              "ResourceType": "instance",
+              "Tags": [
+                {
+                  "Key": "Purpose",
+                  "Value": "test"
+                }
+              ]
+            }
+          ]
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example launches an instance using the specified AMI, instance type, security group, subnet, block device mapping, and tags.",
+        "id": "to-launch-an-instance-1529360150806",
+        "title": "To launch an instance"
+      }
+    ],
+    "RunScheduledInstances": [
+      {
+        "input": {
+          "InstanceCount": 1,
+          "LaunchSpecification": {
+            "IamInstanceProfile": {
+              "Name": "my-iam-role"
+            },
+            "ImageId": "ami-12345678",
+            "InstanceType": "c4.large",
+            "KeyName": "my-key-pair",
+            "NetworkInterfaces": [
+              {
+                "AssociatePublicIpAddress": true,
+                "DeviceIndex": 0,
+                "Groups": [
+                  "sg-12345678"
+                ],
+                "SubnetId": "subnet-12345678"
+              }
+            ]
+          },
+          "ScheduledInstanceId": "sci-1234-1234-1234-1234-123456789012"
+        },
+        "output": {
+          "InstanceIdSet": [
+            "i-1234567890abcdef0"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example launches the specified Scheduled Instance in a VPC.",
+        "id": "ec2-run-scheduled-instances-1",
+        "title": "To launch a Scheduled Instance in a VPC"
+      },
+      {
+        "input": {
+          "InstanceCount": 1,
+          "LaunchSpecification": {
+            "IamInstanceProfile": {
+              "Name": "my-iam-role"
+            },
+            "ImageId": "ami-12345678",
+            "InstanceType": "c4.large",
+            "KeyName": "my-key-pair",
+            "Placement": {
+              "AvailabilityZone": "us-west-2b"
+            },
+            "SecurityGroupIds": [
+              "sg-12345678"
+            ]
+          },
+          "ScheduledInstanceId": "sci-1234-1234-1234-1234-123456789012"
+        },
+        "output": {
+          "InstanceIdSet": [
+            "i-1234567890abcdef0"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example launches the specified Scheduled Instance in EC2-Classic.",
+        "id": "ec2-run-scheduled-instances-2",
+        "title": "To launch a Scheduled Instance in EC2-Classic"
+      }
+    ],
+    "StartInstances": [
+      {
+        "input": {
+          "InstanceIds": [
+            "i-1234567890abcdef0"
+          ]
+        },
+        "output": {
+          "StartingInstances": [
+            {
+              "CurrentState": {
+                "Code": 0,
+                "Name": "pending"
+              },
+              "InstanceId": "i-1234567890abcdef0",
+              "PreviousState": {
+                "Code": 80,
+                "Name": "stopped"
+              }
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example starts the specified EC2 instance.",
+        "id": "to-start-a-stopped-ec2-instance-1529358792730",
+        "title": "To start a stopped EC2 instance"
+      }
+    ],
+    "StopInstances": [
+      {
+        "input": {
+          "InstanceIds": [
+            "i-1234567890abcdef0"
+          ]
+        },
+        "output": {
+          "StoppingInstances": [
+            {
+              "CurrentState": {
+                "Code": 64,
+                "Name": "stopping"
+              },
+              "InstanceId": "i-1234567890abcdef0",
+              "PreviousState": {
+                "Code": 16,
+                "Name": "running"
+              }
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example stops the specified EC2 instance.",
+        "id": "to-stop-a-running-ec2-instance-1529358905540",
+        "title": "To stop a running EC2 instance"
+      }
+    ],
+    "TerminateInstances": [
+      {
+        "input": {
+          "InstanceIds": [
+            "i-1234567890abcdef0"
+          ]
+        },
+        "output": {
+          "TerminatingInstances": [
+            {
+              "CurrentState": {
+                "Code": 32,
+                "Name": "shutting-down"
+              },
+              "InstanceId": "i-1234567890abcdef0",
+              "PreviousState": {
+                "Code": 16,
+                "Name": "running"
+              }
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example terminates the specified EC2 instance.",
+        "id": "to-terminate-an-ec2-instance-1529359350660",
+        "title": "To terminate an EC2 instance"
+      }
+    ],
+    "UnassignPrivateIpAddresses": [
+      {
+        "input": {
+          "NetworkInterfaceId": "eni-e5aa89a3",
+          "PrivateIpAddresses": [
+            "10.0.0.82"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example unassigns the specified private IP address from the specified network interface.",
+        "id": "ec2-unassign-private-ip-addresses-1",
+        "title": "To unassign a secondary private IP address from a network interface"
+      }
+    ],
+    "UpdateSecurityGroupRuleDescriptionsEgress": [
+      {
+        "input": {
+          "GroupId": "sg-123abc12",
+          "IpPermissions": [
+            {
+              "FromPort": 80,
+              "IpProtocol": "tcp",
+              "IpRanges": [
+                {
+                  "CidrIp": "203.0.113.0/24",
+                  "Description": "Outbound HTTP access to server 2"
+                }
+              ],
+              "ToPort": 80
+            }
+          ]
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example updates the description for the specified security group rule.",
+        "id": "to-update-an-outbound-security-group-rule-description-1529360481544",
+        "title": "To update an outbound security group rule description"
+      }
+    ],
+    "UpdateSecurityGroupRuleDescriptionsIngress": [
+      {
+        "input": {
+          "GroupId": "sg-123abc12",
+          "IpPermissions": [
+            {
+              "FromPort": 22,
+              "IpProtocol": "tcp",
+              "IpRanges": [
+                {
+                  "CidrIp": "203.0.113.0/16",
+                  "Description": "SSH access from the LA office"
+                }
+              ],
+              "ToPort": 22
+            }
+          ]
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example updates the description for the specified security group rule.",
+        "id": "to-update-an-inbound-security-group-rule-description-1529360820372",
+        "title": "To update an inbound security group rule description"
+      }
+    ]
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-11-15/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-11-15/paginators-1.json
new file mode 100644
index 00000000..db522f58
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-11-15/paginators-1.json
@@ -0,0 +1,888 @@
+{
+  "pagination": {
+    "DescribeRouteTables": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "RouteTables"
+    },
+    "DescribeIamInstanceProfileAssociations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "IamInstanceProfileAssociations"
+    },
+    "DescribeInstanceStatus": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "InstanceStatuses"
+    },
+    "DescribeInstances": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Reservations"
+    },
+    "DescribeReservedInstancesOfferings": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ReservedInstancesOfferings"
+    },
+    "DescribeReservedInstancesModifications": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "ReservedInstancesModifications"
+    },
+    "DescribeSecurityGroups": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "SecurityGroups"
+    },
+    "DescribeSnapshots": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Snapshots"
+    },
+    "DescribeSpotFleetInstances": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ActiveInstances"
+    },
+    "DescribeSpotFleetRequests": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "SpotFleetRequestConfigs"
+    },
+    "DescribeSpotPriceHistory": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "SpotPriceHistory"
+    },
+    "DescribeTags": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Tags"
+    },
+    "DescribeVolumeStatus": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "VolumeStatuses"
+    },
+    "DescribeVolumes": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Volumes"
+    },
+    "DescribeNatGateways": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "NatGateways"
+    },
+    "DescribeNetworkInterfaces": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "NetworkInterfaces"
+    },
+    "DescribeVpcEndpoints": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "VpcEndpoints"
+    },
+    "DescribeVpcEndpointServices": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": [
+        "ServiceDetails",
+        "ServiceNames"
+      ]
+    },
+    "DescribeVpcEndpointConnections": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "VpcEndpointConnections"
+    },
+    "DescribeByoipCidrs": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ByoipCidrs"
+    },
+    "DescribeCapacityReservations": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "CapacityReservations"
+    },
+    "DescribeClassicLinkInstances": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Instances"
+    },
+    "DescribeClientVpnAuthorizationRules": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "AuthorizationRules"
+    },
+    "DescribeClientVpnConnections": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Connections"
+    },
+    "DescribeClientVpnEndpoints": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ClientVpnEndpoints"
+    },
+    "DescribeClientVpnRoutes": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Routes"
+    },
+    "DescribeClientVpnTargetNetworks": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ClientVpnTargetNetworks"
+    },
+    "DescribeEgressOnlyInternetGateways": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "EgressOnlyInternetGateways"
+    },
+    "DescribeFleets": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Fleets"
+    },
+    "DescribeFlowLogs": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "FlowLogs"
+    },
+    "DescribeFpgaImages": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "FpgaImages"
+    },
+    "DescribeHostReservationOfferings": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "OfferingSet"
+    },
+    "DescribeHostReservations": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "HostReservationSet"
+    },
+    "DescribeHosts": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Hosts"
+    },
+    "DescribeImportImageTasks": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ImportImageTasks"
+    },
+    "DescribeImportSnapshotTasks": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ImportSnapshotTasks"
+    },
+    "DescribeInstanceCreditSpecifications": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "InstanceCreditSpecifications"
+    },
+    "DescribeLaunchTemplateVersions": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "LaunchTemplateVersions"
+    },
+    "DescribeLaunchTemplates": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "LaunchTemplates"
+    },
+    "DescribeMovingAddresses": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "MovingAddressStatuses"
+    },
+    "DescribeNetworkInterfacePermissions": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "NetworkInterfacePermissions"
+    },
+    "DescribePrefixLists": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "PrefixLists"
+    },
+    "DescribePrincipalIdFormat": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Principals"
+    },
+    "DescribePublicIpv4Pools": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "PublicIpv4Pools"
+    },
+    "DescribeScheduledInstanceAvailability": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ScheduledInstanceAvailabilitySet"
+    },
+    "DescribeScheduledInstances": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ScheduledInstanceSet"
+    },
+    "DescribeStaleSecurityGroups": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "StaleSecurityGroupSet"
+    },
+    "DescribeTransitGatewayAttachments": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "TransitGatewayAttachments"
+    },
+    "DescribeTransitGatewayRouteTables": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "TransitGatewayRouteTables"
+    },
+    "DescribeTransitGatewayVpcAttachments": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "TransitGatewayVpcAttachments"
+    },
+    "DescribeTransitGateways": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "TransitGateways"
+    },
+    "DescribeVolumesModifications": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "VolumesModifications"
+    },
+    "DescribeVpcClassicLinkDnsSupport": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Vpcs"
+    },
+    "DescribeVpcEndpointConnectionNotifications": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ConnectionNotificationSet"
+    },
+    "DescribeVpcEndpointServiceConfigurations": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ServiceConfigurations"
+    },
+    "DescribeVpcEndpointServicePermissions": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "AllowedPrincipals"
+    },
+    "DescribeVpcPeeringConnections": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "VpcPeeringConnections"
+    },
+    "GetTransitGatewayAttachmentPropagations": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "TransitGatewayAttachmentPropagations"
+    },
+    "GetTransitGatewayRouteTableAssociations": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Associations"
+    },
+    "GetTransitGatewayRouteTablePropagations": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "TransitGatewayRouteTablePropagations"
+    },
+    "DescribeInternetGateways": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "InternetGateways"
+    },
+    "DescribeNetworkAcls": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "NetworkAcls"
+    },
+    "DescribeVpcs": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Vpcs"
+    },
+    "DescribeSpotInstanceRequests": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "SpotInstanceRequests"
+    },
+    "DescribeDhcpOptions": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "DhcpOptions"
+    },
+    "DescribeSubnets": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Subnets"
+    },
+    "DescribeTrafficMirrorFilters": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "TrafficMirrorFilters"
+    },
+    "DescribeTrafficMirrorSessions": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "TrafficMirrorSessions"
+    },
+    "DescribeTrafficMirrorTargets": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "TrafficMirrorTargets"
+    },
+    "DescribeExportImageTasks": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ExportImageTasks"
+    },
+    "DescribeFastSnapshotRestores": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "FastSnapshotRestores"
+    },
+    "DescribeIpv6Pools": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Ipv6Pools"
+    },
+    "GetAssociatedIpv6PoolCidrs": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Ipv6CidrAssociations"
+    },
+    "DescribeCoipPools": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "CoipPools"
+    },
+    "DescribeInstanceTypeOfferings": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "InstanceTypeOfferings"
+    },
+    "DescribeInstanceTypes": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "InstanceTypes"
+    },
+    "DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "LocalGatewayRouteTableVirtualInterfaceGroupAssociations"
+    },
+    "DescribeLocalGatewayRouteTableVpcAssociations": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "LocalGatewayRouteTableVpcAssociations"
+    },
+    "DescribeLocalGatewayRouteTables": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "LocalGatewayRouteTables"
+    },
+    "DescribeLocalGatewayVirtualInterfaceGroups": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "LocalGatewayVirtualInterfaceGroups"
+    },
+    "DescribeLocalGatewayVirtualInterfaces": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "LocalGatewayVirtualInterfaces"
+    },
+    "DescribeLocalGateways": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "LocalGateways"
+    },
+    "DescribeTransitGatewayMulticastDomains": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "TransitGatewayMulticastDomains"
+    },
+    "DescribeTransitGatewayPeeringAttachments": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "TransitGatewayPeeringAttachments"
+    },
+    "GetTransitGatewayMulticastDomainAssociations": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "MulticastDomainAssociations"
+    },
+    "SearchLocalGatewayRoutes": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Routes"
+    },
+    "SearchTransitGatewayMulticastGroups": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "MulticastGroups"
+    },
+    "DescribeManagedPrefixLists": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "PrefixLists"
+    },
+    "GetManagedPrefixListAssociations": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "PrefixListAssociations"
+    },
+    "GetManagedPrefixListEntries": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Entries"
+    },
+    "GetGroupsForCapacityReservation": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "CapacityReservationGroups"
+    },
+    "DescribeCarrierGateways": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "CarrierGateways"
+    },
+    "GetTransitGatewayPrefixListReferences": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "TransitGatewayPrefixListReferences"
+    },
+    "DescribeNetworkInsightsAnalyses": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "NetworkInsightsAnalyses"
+    },
+    "DescribeNetworkInsightsPaths": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "NetworkInsightsPaths"
+    },
+    "DescribeTransitGatewayConnectPeers": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "TransitGatewayConnectPeers"
+    },
+    "DescribeTransitGatewayConnects": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "TransitGatewayConnects"
+    },
+    "DescribeAddressesAttribute": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Addresses"
+    },
+    "DescribeReplaceRootVolumeTasks": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ReplaceRootVolumeTasks"
+    },
+    "DescribeStoreImageTasks": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "StoreImageTaskResults"
+    },
+    "DescribeSecurityGroupRules": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "SecurityGroupRules"
+    },
+    "DescribeInstanceEventWindows": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "InstanceEventWindows"
+    },
+    "DescribeTrunkInterfaceAssociations": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "InterfaceAssociations"
+    },
+    "GetVpnConnectionDeviceTypes": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "VpnConnectionDeviceTypes"
+    },
+    "DescribeCapacityReservationFleets": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "CapacityReservationFleets"
+    },
+    "GetInstanceTypesFromInstanceRequirements": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "InstanceTypes"
+    },
+    "GetSpotPlacementScores": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "SpotPlacementScores"
+    },
+    "DescribeSnapshotTierStatus": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "SnapshotTierStatuses"
+    },
+    "ListSnapshotsInRecycleBin": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Snapshots"
+    },
+    "DescribeIpamPools": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "IpamPools"
+    },
+    "DescribeIpamScopes": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "IpamScopes"
+    },
+    "DescribeIpams": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Ipams"
+    },
+    "DescribeNetworkInsightsAccessScopeAnalyses": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "NetworkInsightsAccessScopeAnalyses"
+    },
+    "DescribeNetworkInsightsAccessScopes": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "NetworkInsightsAccessScopes"
+    },
+    "GetIpamAddressHistory": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "HistoryRecords"
+    },
+    "GetIpamPoolAllocations": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "IpamPoolAllocations"
+    },
+    "GetIpamPoolCidrs": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "IpamPoolCidrs"
+    },
+    "GetIpamResourceCidrs": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "IpamResourceCidrs"
+    },
+    "DescribeFastLaunchImages": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "FastLaunchImages"
+    },
+    "ListImagesInRecycleBin": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Images"
+    },
+    "DescribeTransitGatewayPolicyTables": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "TransitGatewayPolicyTables"
+    },
+    "DescribeTransitGatewayRouteTableAnnouncements": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "TransitGatewayRouteTableAnnouncements"
+    },
+    "GetTransitGatewayPolicyTableAssociations": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Associations"
+    },
+    "DescribeAddressTransfers": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "AddressTransfers"
+    },
+    "DescribeAwsNetworkPerformanceMetricSubscriptions": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Subscriptions"
+    },
+    "GetAwsNetworkPerformanceData": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "DataResponses"
+    },
+    "DescribeVerifiedAccessEndpoints": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "VerifiedAccessEndpoints"
+    },
+    "DescribeVerifiedAccessGroups": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "VerifiedAccessGroups"
+    },
+    "DescribeVerifiedAccessInstanceLoggingConfigurations": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "LoggingConfigurations"
+    },
+    "DescribeVerifiedAccessInstances": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "VerifiedAccessInstances"
+    },
+    "DescribeVerifiedAccessTrustProviders": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "VerifiedAccessTrustProviders"
+    },
+    "DescribeImages": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Images"
+    },
+    "DescribeIpamResourceDiscoveries": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "IpamResourceDiscoveries"
+    },
+    "DescribeIpamResourceDiscoveryAssociations": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "IpamResourceDiscoveryAssociations"
+    },
+    "GetIpamDiscoveredAccounts": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "IpamDiscoveredAccounts"
+    },
+    "GetIpamDiscoveredResourceCidrs": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "IpamDiscoveredResourceCidrs"
+    },
+    "GetNetworkInsightsAccessScopeAnalysisFindings": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "AnalysisFindings"
+    },
+    "DescribeInstanceConnectEndpoints": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "InstanceConnectEndpoints"
+    },
+    "GetSecurityGroupsForVpc": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "SecurityGroupForVpcs"
+    },
+    "DescribeCapacityBlockOfferings": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "CapacityBlockOfferings"
+    },
+    "DescribeInstanceTopology": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Instances"
+    },
+    "DescribeMacHosts": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "MacHosts"
+    },
+    "DescribeCapacityReservationBillingRequests": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "CapacityReservationBillingRequests"
+    },
+    "DescribeInstanceImageMetadata": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "InstanceImageMetadata"
+    },
+    "DescribeSecurityGroupVpcAssociations": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "SecurityGroupVpcAssociations"
+    },
+    "DescribeCapacityBlockExtensionHistory": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "CapacityBlockExtensions"
+    },
+    "DescribeCapacityBlockExtensionOfferings": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "CapacityBlockExtensionOfferings"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-11-15/paginators-1.sdk-extras.json b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-11-15/paginators-1.sdk-extras.json
new file mode 100644
index 00000000..823bbb5d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-11-15/paginators-1.sdk-extras.json
@@ -0,0 +1,13 @@
+{
+  "version": 1.0,
+  "merge": {
+    "pagination": {
+      "GetNetworkInsightsAccessScopeAnalysisFindings": {
+        "non_aggregate_keys": [
+          "AnalysisStatus",
+          "NetworkInsightsAccessScopeAnalysisId"
+        ]
+      }
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-11-15/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-11-15/service-2.json.gz
new file mode 100644
index 00000000..948a53eb
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-11-15/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-11-15/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-11-15/waiters-2.json
new file mode 100644
index 00000000..e890388e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ec2/2016-11-15/waiters-2.json
@@ -0,0 +1,726 @@
+{
+  "version": 2,
+  "waiters": {
+    "InstanceExists": {
+      "delay": 5,
+      "maxAttempts": 40,
+      "operation": "DescribeInstances",
+      "acceptors": [
+        {
+          "matcher": "path",
+          "expected": true,
+          "argument": "length(Reservations[]) > `0`",
+          "state": "success"
+        },
+        {
+          "matcher": "error",
+          "expected": "InvalidInstanceID.NotFound",
+          "state": "retry"
+        }
+      ]
+    },
+    "BundleTaskComplete": {
+      "delay": 15,
+      "operation": "DescribeBundleTasks",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "complete",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "BundleTasks[].State"
+        },
+        {
+          "expected": "failed",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "BundleTasks[].State"
+        }
+      ]
+    },
+    "ConversionTaskCancelled": {
+      "delay": 15,
+      "operation": "DescribeConversionTasks",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "cancelled",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "ConversionTasks[].State"
+        }
+      ]
+    },
+    "ConversionTaskCompleted": {
+      "delay": 15,
+      "operation": "DescribeConversionTasks",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "completed",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "ConversionTasks[].State"
+        },
+        {
+          "expected": "cancelled",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "ConversionTasks[].State"
+        },
+        {
+          "expected": "cancelling",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "ConversionTasks[].State"
+        }
+      ]
+    },
+    "ConversionTaskDeleted": {
+      "delay": 15,
+      "operation": "DescribeConversionTasks",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "deleted",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "ConversionTasks[].State"
+        }
+      ]
+    },
+    "CustomerGatewayAvailable": {
+      "delay": 15,
+      "operation": "DescribeCustomerGateways",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "CustomerGateways[].State"
+        },
+        {
+          "expected": "deleted",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "CustomerGateways[].State"
+        },
+        {
+          "expected": "deleting",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "CustomerGateways[].State"
+        }
+      ]
+    },
+    "ExportTaskCancelled": {
+      "delay": 15,
+      "operation": "DescribeExportTasks",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "cancelled",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "ExportTasks[].State"
+        }
+      ]
+    },
+    "ExportTaskCompleted": {
+      "delay": 15,
+      "operation": "DescribeExportTasks",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "completed",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "ExportTasks[].State"
+        }
+      ]
+    },
+    "ImageExists": {
+      "operation": "DescribeImages",
+      "maxAttempts": 40,
+      "delay": 15,
+      "acceptors": [
+        {
+          "matcher": "path",
+          "expected": true,
+          "argument": "length(Images[]) > `0`",
+          "state": "success"
+        },
+        {
+          "matcher": "error",
+          "expected": "InvalidAMIID.NotFound",
+          "state": "retry"
+        }
+      ]
+    },
+    "ImageAvailable": {
+      "operation": "DescribeImages",
+      "maxAttempts": 40,
+      "delay": 15,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "pathAll",
+          "argument": "Images[].State",
+          "expected": "available"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "Images[].State",
+          "expected": "failed"
+        }
+      ]
+    },
+    "InstanceRunning": {
+      "delay": 15,
+      "operation": "DescribeInstances",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "running",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "shutting-down",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "terminated",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "stopping",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "matcher": "error",
+          "expected": "InvalidInstanceID.NotFound",
+          "state": "retry"
+        }
+      ]
+    },
+    "InstanceStatusOk": {
+      "operation": "DescribeInstanceStatus",
+      "maxAttempts": 40,
+      "delay": 15,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "pathAll",
+          "argument": "InstanceStatuses[].InstanceStatus.Status",
+          "expected": "ok"
+        },
+        {
+          "matcher": "error",
+          "expected": "InvalidInstanceID.NotFound",
+          "state": "retry"
+        }
+      ]
+    },
+    "InstanceStopped": {
+      "delay": 15,
+      "operation": "DescribeInstances",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "stopped",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "pending",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "terminated",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        }
+      ]
+    },
+    "InstanceTerminated": {
+      "delay": 15,
+      "operation": "DescribeInstances",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "terminated",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "pending",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        },
+        {
+          "expected": "stopping",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Reservations[].Instances[].State.Name"
+        }
+      ]
+    },
+    "InternetGatewayExists": {
+      "operation": "DescribeInternetGateways",
+      "delay": 5,
+      "maxAttempts": 6,
+      "acceptors": [
+        {
+          "expected": true,
+          "matcher": "path",
+          "state": "success",
+          "argument": "length(InternetGateways[].InternetGatewayId) > `0`"
+        },
+        {
+          "expected": "InvalidInternetGateway.NotFound",
+          "matcher": "error",
+          "state": "retry"
+        }
+      ]
+    },
+    "KeyPairExists": {
+      "operation": "DescribeKeyPairs",
+      "delay": 5,
+      "maxAttempts": 6,
+      "acceptors": [
+        {
+          "expected": true,
+          "matcher": "path",
+          "state": "success",
+          "argument": "length(KeyPairs[].KeyName) > `0`"
+        },
+        {
+          "expected": "InvalidKeyPair.NotFound",
+          "matcher": "error",
+          "state": "retry"
+        }
+      ]
+    },
+    "NatGatewayAvailable": {
+      "operation": "DescribeNatGateways",
+      "delay": 15,
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "pathAll",
+          "argument": "NatGateways[].State",
+          "expected": "available"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "NatGateways[].State",
+          "expected": "failed"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "NatGateways[].State",
+          "expected": "deleting"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "NatGateways[].State",
+          "expected": "deleted"
+        },
+        {
+          "state": "retry",
+          "matcher": "error",
+          "expected": "NatGatewayNotFound"
+        }
+      ]
+    },
+    "NatGatewayDeleted": {
+      "operation": "DescribeNatGateways",
+      "delay": 15,
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "pathAll",
+          "argument": "NatGateways[].State",
+          "expected": "deleted"
+        },
+        {
+          "state": "success",
+          "matcher": "error",
+          "expected": "NatGatewayNotFound"
+        }
+      ]
+    },
+    "NetworkInterfaceAvailable": {
+      "operation": "DescribeNetworkInterfaces",
+      "delay": 20,
+      "maxAttempts": 10,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "NetworkInterfaces[].Status"
+        },
+        {
+          "expected": "InvalidNetworkInterfaceID.NotFound",
+          "matcher": "error",
+          "state": "failure"
+        }
+      ]
+    },
+    "PasswordDataAvailable": {
+      "operation": "GetPasswordData",
+      "maxAttempts": 40,
+      "delay": 15,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "path",
+          "argument": "length(PasswordData) > `0`",
+          "expected": true
+        }
+      ]
+    },
+    "SnapshotCompleted": {
+      "delay": 15,
+      "operation": "DescribeSnapshots",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "completed",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Snapshots[].State"
+        },
+        {
+          "expected": "error",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Snapshots[].State"
+        }
+      ]
+    },
+    "SnapshotImported": {
+      "delay": 15,
+      "operation": "DescribeImportSnapshotTasks",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "completed",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "ImportSnapshotTasks[].SnapshotTaskDetail.Status"
+        },
+        {
+          "expected": "error",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "ImportSnapshotTasks[].SnapshotTaskDetail.Status"
+        }
+      ]
+    },
+    "SecurityGroupExists": {
+      "operation": "DescribeSecurityGroups",
+      "delay": 5,
+      "maxAttempts": 6,
+      "acceptors": [
+        {
+          "expected": true,
+          "matcher": "path",
+          "state": "success",
+          "argument": "length(SecurityGroups[].GroupId) > `0`"
+        },
+        {
+          "expected": "InvalidGroup.NotFound",
+          "matcher": "error",
+          "state": "retry"
+        }
+      ]
+    },
+    "SpotInstanceRequestFulfilled": {
+      "operation": "DescribeSpotInstanceRequests",
+      "maxAttempts": 40,
+      "delay": 15,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "pathAll",
+          "argument": "SpotInstanceRequests[].Status.Code",
+          "expected": "fulfilled"
+        },
+        {
+          "state": "success",
+          "matcher": "pathAll",
+          "argument": "SpotInstanceRequests[].Status.Code",
+          "expected": "request-canceled-and-instance-running"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "SpotInstanceRequests[].Status.Code",
+          "expected": "schedule-expired"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "SpotInstanceRequests[].Status.Code",
+          "expected": "canceled-before-fulfillment"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "SpotInstanceRequests[].Status.Code",
+          "expected": "bad-parameters"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "SpotInstanceRequests[].Status.Code",
+          "expected": "system-error"
+        },
+        {
+          "state": "retry",
+          "matcher": "error",
+          "expected": "InvalidSpotInstanceRequestID.NotFound"
+        }
+      ]
+    },
+    "StoreImageTaskComplete": {
+      "delay": 5,
+      "operation": "DescribeStoreImageTasks",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "Completed",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "StoreImageTaskResults[].StoreTaskState"
+        },
+        {
+          "expected": "Failed",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "StoreImageTaskResults[].StoreTaskState"
+        },
+        {
+          "expected": "InProgress",
+          "matcher": "pathAny",
+          "state": "retry",
+          "argument": "StoreImageTaskResults[].StoreTaskState"
+        }
+      ]
+    },
+    "SubnetAvailable": {
+      "delay": 15,
+      "operation": "DescribeSubnets",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Subnets[].State"
+        }
+      ]
+    },
+    "SystemStatusOk": {
+      "operation": "DescribeInstanceStatus",
+      "maxAttempts": 40,
+      "delay": 15,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "pathAll",
+          "argument": "InstanceStatuses[].SystemStatus.Status",
+          "expected": "ok"
+        }
+      ]
+    },
+    "VolumeAvailable": {
+      "delay": 15,
+      "operation": "DescribeVolumes",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Volumes[].State"
+        },
+        {
+          "expected": "deleted",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Volumes[].State"
+        }
+      ]
+    },
+    "VolumeDeleted": {
+      "delay": 15,
+      "operation": "DescribeVolumes",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "deleted",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Volumes[].State"
+        },
+        {
+          "matcher": "error",
+          "expected": "InvalidVolume.NotFound",
+          "state": "success"
+        }
+      ]
+    },
+    "VolumeInUse": {
+      "delay": 15,
+      "operation": "DescribeVolumes",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "in-use",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Volumes[].State"
+        },
+        {
+          "expected": "deleted",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Volumes[].State"
+        }
+      ]
+    },
+    "VpcAvailable": {
+      "delay": 15,
+      "operation": "DescribeVpcs",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Vpcs[].State"
+        }
+      ]
+    },
+    "VpcExists": {
+      "operation": "DescribeVpcs",
+      "delay": 1,
+      "maxAttempts": 5,
+      "acceptors": [
+        {
+          "matcher": "status",
+          "expected": 200,
+          "state": "success"
+        },
+        {
+          "matcher": "error",
+          "expected": "InvalidVpcID.NotFound",
+          "state": "retry"
+        }
+      ]
+    },
+    "VpnConnectionAvailable": {
+      "delay": 15,
+      "operation": "DescribeVpnConnections",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "VpnConnections[].State"
+        },
+        {
+          "expected": "deleting",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "VpnConnections[].State"
+        },
+        {
+          "expected": "deleted",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "VpnConnections[].State"
+        }
+      ]
+    },
+    "VpnConnectionDeleted": {
+      "delay": 15,
+      "operation": "DescribeVpnConnections",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "deleted",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "VpnConnections[].State"
+        },
+        {
+          "expected": "pending",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "VpnConnections[].State"
+        }
+      ]
+    },
+    "VpcPeeringConnectionExists": {
+      "delay": 15,
+      "operation": "DescribeVpcPeeringConnections",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "matcher": "status",
+          "expected": 200,
+          "state": "success"
+        },
+        {
+          "matcher": "error",
+          "expected": "InvalidVpcPeeringConnectionID.NotFound",
+          "state": "retry"
+        }
+      ]
+    },
+    "VpcPeeringConnectionDeleted": {
+      "delay": 15,
+      "operation": "DescribeVpcPeeringConnections",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "deleted",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "VpcPeeringConnections[].Status.Code"
+        },
+        {
+          "matcher": "error",
+          "expected": "InvalidVpcPeeringConnectionID.NotFound",
+          "state": "success"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ecr-public/2020-10-30/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ecr-public/2020-10-30/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..4f1a4546
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ecr-public/2020-10-30/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ecr-public/2020-10-30/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/ecr-public/2020-10-30/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ecr-public/2020-10-30/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ecr-public/2020-10-30/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/ecr-public/2020-10-30/paginators-1.json
new file mode 100644
index 00000000..b9dbda45
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ecr-public/2020-10-30/paginators-1.json
@@ -0,0 +1,28 @@
+{
+  "pagination": {
+    "DescribeImageTags": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "imageTagDetails"
+    },
+    "DescribeImages": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "imageDetails"
+    },
+    "DescribeRegistries": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "registries"
+    },
+    "DescribeRepositories": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "repositories"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ecr-public/2020-10-30/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ecr-public/2020-10-30/service-2.json.gz
new file mode 100644
index 00000000..aa58fb34
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ecr-public/2020-10-30/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ecr/2015-09-21/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ecr/2015-09-21/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..25fc8ce8
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ecr/2015-09-21/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ecr/2015-09-21/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/ecr/2015-09-21/examples-1.json
new file mode 100644
index 00000000..7daf57f3
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ecr/2015-09-21/examples-1.json
@@ -0,0 +1,195 @@
+{
+  "version": "1.0",
+  "examples": {
+    "BatchDeleteImage": [
+      {
+        "input": {
+          "imageIds": [
+            {
+              "imageTag": "precise"
+            }
+          ],
+          "repositoryName": "ubuntu"
+        },
+        "output": {
+          "failures": [
+
+          ],
+          "imageIds": [
+            {
+              "imageDigest": "sha256:examplee6d1e504117a17000003d3753086354a38375961f2e665416ef4b1b2f",
+              "imageTag": "precise"
+            }
+          ]
+        },
+        "comments": {
+        },
+        "description": "This example deletes images with the tags precise and trusty in a repository called ubuntu in the default registry for an account.",
+        "id": "batchdeleteimages-example-1470860541707",
+        "title": "To delete multiple images"
+      }
+    ],
+    "BatchGetImage": [
+      {
+        "input": {
+          "imageIds": [
+            {
+              "imageTag": "precise"
+            }
+          ],
+          "repositoryName": "ubuntu"
+        },
+        "output": {
+          "failures": [
+
+          ],
+          "images": [
+            {
+              "imageId": {
+                "imageDigest": "sha256:example76bdff6d83a09ba2a818f0d00000063724a9ac3ba5019c56f74ebf42a",
+                "imageTag": "precise"
+              },
+              "imageManifest": "{\n \"schemaVersion\": 1,\n \"name\": \"ubuntu\",\n \"tag\": \"precise\",\n...",
+              "registryId": "244698725403",
+              "repositoryName": "ubuntu"
+            }
+          ]
+        },
+        "comments": {
+          "output": {
+            "imageManifest": "In this example, the imageManifest in the output JSON has been truncated."
+          }
+        },
+        "description": "This example obtains information for an image with a specified image digest ID from the repository named ubuntu in the current account.",
+        "id": "batchgetimage-example-1470862771437",
+        "title": "To obtain multiple images in a single request"
+      }
+    ],
+    "CreateRepository": [
+      {
+        "input": {
+          "repositoryName": "project-a/nginx-web-app"
+        },
+        "output": {
+          "repository": {
+            "registryId": "012345678901",
+            "repositoryArn": "arn:aws:ecr:us-west-2:012345678901:repository/project-a/nginx-web-app",
+            "repositoryName": "project-a/nginx-web-app"
+          }
+        },
+        "comments": {
+          "output": {
+            "imageManifest": "In this example, the imageManifest in the output JSON has been truncated."
+          }
+        },
+        "description": "This example creates a repository called nginx-web-app inside the project-a namespace in the default registry for an account.",
+        "id": "createrepository-example-1470863688724",
+        "title": "To create a new repository"
+      }
+    ],
+    "DeleteRepository": [
+      {
+        "input": {
+          "force": true,
+          "repositoryName": "ubuntu"
+        },
+        "output": {
+          "repository": {
+            "registryId": "012345678901",
+            "repositoryArn": "arn:aws:ecr:us-west-2:012345678901:repository/ubuntu",
+            "repositoryName": "ubuntu"
+          }
+        },
+        "comments": {
+          "output": {
+            "imageManifest": "In this example, the imageManifest in the output JSON has been truncated."
+          }
+        },
+        "description": "This example force deletes a repository named ubuntu in the default registry for an account. The force parameter is required if the repository contains images.",
+        "id": "deleterepository-example-1470863805703",
+        "title": "To force delete a repository"
+      }
+    ],
+    "DeleteRepositoryPolicy": [
+      {
+        "input": {
+          "repositoryName": "ubuntu"
+        },
+        "output": {
+          "policyText": "{ ... }",
+          "registryId": "012345678901",
+          "repositoryName": "ubuntu"
+        },
+        "comments": {
+        },
+        "description": "This example deletes the policy associated with the repository named ubuntu in the current account.",
+        "id": "deleterepositorypolicy-example-1470866943748",
+        "title": "To delete the policy associated with a repository"
+      }
+    ],
+    "DescribeRepositories": [
+      {
+        "input": {
+        },
+        "output": {
+          "repositories": [
+            {
+              "registryId": "012345678910",
+              "repositoryArn": "arn:aws:ecr:us-west-2:012345678910:repository/ubuntu",
+              "repositoryName": "ubuntu"
+            },
+            {
+              "registryId": "012345678910",
+              "repositoryArn": "arn:aws:ecr:us-west-2:012345678910:repository/test",
+              "repositoryName": "test"
+            }
+          ]
+        },
+        "comments": {
+          "output": {
+          }
+        },
+        "description": "The following example obtains a list and description of all repositories in the default registry to which the current user has access.",
+        "id": "describe-repositories-1470856017467",
+        "title": "To describe all repositories in the current account"
+      }
+    ],
+    "GetRepositoryPolicy": [
+      {
+        "input": {
+          "repositoryName": "ubuntu"
+        },
+        "output": {
+          "policyText": "{\n  \"Version\" : \"2008-10-17\",\n  \"Statement\" : [ {\n    \"Sid\" : \"new statement\",\n    \"Effect\" : \"Allow\",\n    \"Principal\" : {\n     \"AWS\" : \"arn:aws:iam::012345678901:role/CodeDeployDemo\"\n    },\n\"Action\" : [ \"ecr:GetDownloadUrlForLayer\", \"ecr:BatchGetImage\", \"ecr:BatchCheckLayerAvailability\" ]\n } ]\n}",
+          "registryId": "012345678901",
+          "repositoryName": "ubuntu"
+        },
+        "comments": {
+        },
+        "description": "This example obtains the repository policy for the repository named ubuntu.",
+        "id": "getrepositorypolicy-example-1470867669211",
+        "title": "To get the current policy for a repository"
+      }
+    ],
+    "ListImages": [
+      {
+        "input": {
+          "repositoryName": "ubuntu"
+        },
+        "output": {
+          "imageIds": [
+            {
+              "imageDigest": "sha256:764f63476bdff6d83a09ba2a818f0d35757063724a9ac3ba5019c56f74ebf42a",
+              "imageTag": "precise"
+            }
+          ]
+        },
+        "comments": {
+        },
+        "description": "This example lists all of the images in the repository named ubuntu in the default registry in the current account. ",
+        "id": "listimages-example-1470868161594",
+        "title": "To list all images in a repository"
+      }
+    ]
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ecr/2015-09-21/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/ecr/2015-09-21/paginators-1.json
new file mode 100644
index 00000000..a2161d3c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ecr/2015-09-21/paginators-1.json
@@ -0,0 +1,66 @@
+{
+  "pagination": {
+    "ListImages": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "imageIds"
+    },
+    "DescribeImages": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "imageDetails"
+    },
+    "DescribeRepositories": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "repositories"
+    },
+    "DescribeImageScanFindings": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "non_aggregate_keys": [
+        "registryId",
+        "repositoryName",
+        "imageId",
+        "imageScanStatus",
+        "imageScanFindings"
+      ],
+      "output_token": "nextToken",
+      "result_key": [
+        "imageScanFindings.findings",
+        "imageScanFindings.enhancedFindings"
+      ]
+    },
+    "GetLifecyclePolicyPreview": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "non_aggregate_keys": [
+        "registryId",
+        "repositoryName",
+        "lifecyclePolicyText",
+        "status",
+        "summary"
+      ],
+      "output_token": "nextToken",
+      "result_key": "previewResults"
+    },
+    "DescribePullThroughCacheRules": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "pullThroughCacheRules"
+    },
+    "DescribeRepositoryCreationTemplates": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "non_aggregate_keys": [
+        "registryId"
+      ],
+      "output_token": "nextToken",
+      "result_key": "repositoryCreationTemplates"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ecr/2015-09-21/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ecr/2015-09-21/service-2.json.gz
new file mode 100644
index 00000000..11382c0a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ecr/2015-09-21/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ecr/2015-09-21/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/ecr/2015-09-21/waiters-2.json
new file mode 100644
index 00000000..9ef9608f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ecr/2015-09-21/waiters-2.json
@@ -0,0 +1,45 @@
+{
+    "version": 2,
+    "waiters": {
+        "ImageScanComplete": {
+            "description": "Wait until an image scan is complete and findings can be accessed",
+            "operation": "DescribeImageScanFindings",
+            "delay": 5,
+            "maxAttempts": 60,
+            "acceptors": [
+                {
+                    "state": "success",
+                    "matcher": "path",
+                    "argument": "imageScanStatus.status",
+                    "expected": "COMPLETE"
+                },
+                {
+                    "state": "failure",
+                    "matcher": "path",
+                    "argument": "imageScanStatus.status",
+                    "expected": "FAILED"
+                }
+            ]
+        },
+        "LifecyclePolicyPreviewComplete": {
+            "description": "Wait until a lifecycle policy preview request is complete and results can be accessed",
+            "operation": "GetLifecyclePolicyPreview",
+            "delay": 5,
+            "maxAttempts": 20,
+            "acceptors": [
+                {
+                    "state": "success",
+                    "matcher": "path",
+                    "argument": "status",
+                    "expected": "COMPLETE"
+                },
+                {
+                    "state": "failure",
+                    "matcher": "path",
+                    "argument": "status",
+                    "expected": "FAILED"
+                }
+            ]
+        }
+    }
+}
\ No newline at end of file
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ecs/2014-11-13/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ecs/2014-11-13/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..1a61841b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ecs/2014-11-13/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ecs/2014-11-13/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/ecs/2014-11-13/examples-1.json
new file mode 100644
index 00000000..0fbf7b36
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ecs/2014-11-13/examples-1.json
@@ -0,0 +1,1137 @@
+{
+  "version": "1.0",
+  "examples": {
+    "CreateCluster": [
+      {
+        "input": {
+          "clusterName": "my_cluster"
+        },
+        "output": {
+          "cluster": {
+            "activeServicesCount": 0,
+            "clusterArn": "arn:aws:ecs:us-east-1:012345678910:cluster/my_cluster",
+            "clusterName": "my_cluster",
+            "pendingTasksCount": 0,
+            "registeredContainerInstancesCount": 0,
+            "runningTasksCount": 0,
+            "status": "ACTIVE"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a cluster in your default region.",
+        "id": "to-create-a-new-cluster-1472514079365",
+        "title": "To create a new cluster"
+      }
+    ],
+    "CreateService": [
+      {
+        "input": {
+          "desiredCount": 10,
+          "serviceName": "ecs-simple-service",
+          "taskDefinition": "hello_world"
+        },
+        "output": {
+          "service": {
+            "clusterArn": "arn:aws:ecs:us-east-1:012345678910:cluster/default",
+            "createdAt": "2016-08-29T16:13:47.298Z",
+            "deploymentConfiguration": {
+              "maximumPercent": 200,
+              "minimumHealthyPercent": 100
+            },
+            "deployments": [
+              {
+                "createdAt": "2016-08-29T16:13:47.298Z",
+                "desiredCount": 10,
+                "id": "ecs-svc/9223370564342348388",
+                "pendingCount": 0,
+                "runningCount": 0,
+                "status": "PRIMARY",
+                "taskDefinition": "arn:aws:ecs:us-east-1:012345678910:task-definition/hello_world:6",
+                "updatedAt": "2016-08-29T16:13:47.298Z"
+              },
+              {
+                "createdAt": "2016-08-29T15:52:44.481Z",
+                "desiredCount": 0,
+                "id": "ecs-svc/9223370564343611322",
+                "pendingCount": 0,
+                "runningCount": 0,
+                "status": "ACTIVE",
+                "taskDefinition": "arn:aws:ecs:us-east-1:012345678910:task-definition/hello_world:6",
+                "updatedAt": "2016-08-29T16:11:38.941Z"
+              }
+            ],
+            "desiredCount": 10,
+            "events": [
+
+            ],
+            "loadBalancers": [
+
+            ],
+            "pendingCount": 0,
+            "runningCount": 0,
+            "serviceArn": "arn:aws:ecs:us-east-1:012345678910:service/ecs-simple-service",
+            "serviceName": "ecs-simple-service",
+            "status": "ACTIVE",
+            "taskDefinition": "arn:aws:ecs:us-east-1:012345678910:task-definition/hello_world:6"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a service in your default region called ``ecs-simple-service``. The service uses the ``hello_world`` task definition and it maintains 10 copies of that task.",
+        "id": "to-create-a-new-service-1472512584282",
+        "title": "To create a new service"
+      },
+      {
+        "input": {
+          "desiredCount": 10,
+          "loadBalancers": [
+            {
+              "containerName": "simple-app",
+              "containerPort": 80,
+              "loadBalancerName": "EC2Contai-EcsElast-15DCDAURT3ZO2"
+            }
+          ],
+          "role": "ecsServiceRole",
+          "serviceName": "ecs-simple-service-elb",
+          "taskDefinition": "console-sample-app-static"
+        },
+        "output": {
+          "service": {
+            "clusterArn": "arn:aws:ecs:us-east-1:012345678910:cluster/default",
+            "createdAt": "2016-08-29T16:02:54.884Z",
+            "deploymentConfiguration": {
+              "maximumPercent": 200,
+              "minimumHealthyPercent": 100
+            },
+            "deployments": [
+              {
+                "createdAt": "2016-08-29T16:02:54.884Z",
+                "desiredCount": 10,
+                "id": "ecs-svc/9223370564343000923",
+                "pendingCount": 0,
+                "runningCount": 0,
+                "status": "PRIMARY",
+                "taskDefinition": "arn:aws:ecs:us-east-1:012345678910:task-definition/console-sample-app-static:6",
+                "updatedAt": "2016-08-29T16:02:54.884Z"
+              }
+            ],
+            "desiredCount": 10,
+            "events": [
+
+            ],
+            "loadBalancers": [
+              {
+                "containerName": "simple-app",
+                "containerPort": 80,
+                "loadBalancerName": "EC2Contai-EcsElast-15DCDAURT3ZO2"
+              }
+            ],
+            "pendingCount": 0,
+            "roleArn": "arn:aws:iam::012345678910:role/ecsServiceRole",
+            "runningCount": 0,
+            "serviceArn": "arn:aws:ecs:us-east-1:012345678910:service/ecs-simple-service-elb",
+            "serviceName": "ecs-simple-service-elb",
+            "status": "ACTIVE",
+            "taskDefinition": "arn:aws:ecs:us-east-1:012345678910:task-definition/console-sample-app-static:6"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a service in your default region called ``ecs-simple-service-elb``. The service uses the ``ecs-demo`` task definition and it maintains 10 copies of that task. You must reference an existing load balancer in the same region by its name.",
+        "id": "to-create-a-new-service-behind-a-load-balancer-1472512484823",
+        "title": "To create a new service behind a load balancer"
+      }
+    ],
+    "DeleteAccountSetting": [
+      {
+        "input": {
+          "name": "serviceLongArnFormat"
+        },
+        "output": {
+          "setting": {
+            "name": "serviceLongArnFormat",
+            "value": "enabled",
+            "principalArn": "arn:aws:iam::<aws_account_id>:user/principalName"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the account setting for your user for the specified resource type.",
+        "id": "to-delete-the-account-setting-for-your-user-account-1549524548115",
+        "title": "To delete your account setting"
+      },
+      {
+        "input": {
+          "name": "containerInstanceLongArnFormat",
+          "principalArn": "arn:aws:iam::<aws_account_id>:user/principalName"
+        },
+        "output": {
+          "setting": {
+            "name": "containerInstanceLongArnFormat",
+            "value": "enabled",
+            "principalArn": "arn:aws:iam::<aws_account_id>:user/principalName"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the account setting for a specific IAM user or IAM role for the specified resource type. Only the root user can view or modify the account settings for another user.",
+        "id": "to-delete-the-account-setting-for-a-specific-iam-user-or-iam-role-1549524612917",
+        "title": "To delete the account settings for a specific IAM user or IAM role"
+      }
+    ],
+    "DeleteCluster": [
+      {
+        "input": {
+          "cluster": "my_cluster"
+        },
+        "output": {
+          "cluster": {
+            "activeServicesCount": 0,
+            "clusterArn": "arn:aws:ecs:us-east-1:012345678910:cluster/my_cluster",
+            "clusterName": "my_cluster",
+            "pendingTasksCount": 0,
+            "registeredContainerInstancesCount": 0,
+            "runningTasksCount": 0,
+            "status": "INACTIVE"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes an empty cluster in your default region.",
+        "id": "to-delete-an-empty-cluster-1472512705352",
+        "title": "To delete an empty cluster"
+      }
+    ],
+    "DeleteService": [
+      {
+        "input": {
+          "service": "my-http-service"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the my-http-service service. The service must have a desired count and running count of 0 before you can delete it.",
+        "id": "e8183e38-f86e-4390-b811-f74f30a6007d",
+        "title": "To delete a service"
+      }
+    ],
+    "DeregisterContainerInstance": [
+      {
+        "input": {
+          "cluster": "default",
+          "containerInstance": "container_instance_UUID",
+          "force": true
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deregisters a container instance from the specified cluster in your default region. If there are still tasks running on the container instance, you must either stop those tasks before deregistering, or use the force option.",
+        "id": "bf624927-cf64-4f4b-8b7e-c024a4e682f6",
+        "title": "To deregister a container instance from a cluster"
+      }
+    ],
+    "DescribeClusters": [
+      {
+        "input": {
+          "clusters": [
+            "default"
+          ]
+        },
+        "output": {
+          "clusters": [
+            {
+              "clusterArn": "arn:aws:ecs:us-east-1:aws_account_id:cluster/default",
+              "clusterName": "default",
+              "status": "ACTIVE"
+            }
+          ],
+          "failures": [
+
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example provides a description of the specified cluster in your default region.",
+        "id": "ba88d100-9672-4231-80da-a4bd210bf728",
+        "title": "To describe a cluster"
+      }
+    ],
+    "DescribeContainerInstances": [
+      {
+        "input": {
+          "cluster": "default",
+          "containerInstances": [
+            "f2756532-8f13-4d53-87c9-aed50dc94cd7"
+          ]
+        },
+        "output": {
+          "containerInstances": [
+            {
+              "agentConnected": true,
+              "containerInstanceArn": "arn:aws:ecs:us-east-1:012345678910:container-instance/f2756532-8f13-4d53-87c9-aed50dc94cd7",
+              "ec2InstanceId": "i-807f3249",
+              "pendingTasksCount": 0,
+              "registeredResources": [
+                {
+                  "name": "CPU",
+                  "type": "INTEGER",
+                  "doubleValue": 0.0,
+                  "integerValue": 2048,
+                  "longValue": 0
+                },
+                {
+                  "name": "MEMORY",
+                  "type": "INTEGER",
+                  "doubleValue": 0.0,
+                  "integerValue": 3768,
+                  "longValue": 0
+                },
+                {
+                  "name": "PORTS",
+                  "type": "STRINGSET",
+                  "doubleValue": 0.0,
+                  "integerValue": 0,
+                  "longValue": 0,
+                  "stringSetValue": [
+                    "2376",
+                    "22",
+                    "51678",
+                    "2375"
+                  ]
+                }
+              ],
+              "remainingResources": [
+                {
+                  "name": "CPU",
+                  "type": "INTEGER",
+                  "doubleValue": 0.0,
+                  "integerValue": 1948,
+                  "longValue": 0
+                },
+                {
+                  "name": "MEMORY",
+                  "type": "INTEGER",
+                  "doubleValue": 0.0,
+                  "integerValue": 3668,
+                  "longValue": 0
+                },
+                {
+                  "name": "PORTS",
+                  "type": "STRINGSET",
+                  "doubleValue": 0.0,
+                  "integerValue": 0,
+                  "longValue": 0,
+                  "stringSetValue": [
+                    "2376",
+                    "22",
+                    "80",
+                    "51678",
+                    "2375"
+                  ]
+                }
+              ],
+              "runningTasksCount": 1,
+              "status": "ACTIVE"
+            }
+          ],
+          "failures": [
+
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example provides a description of the specified container instance in your default region, using the container instance UUID as an identifier.",
+        "id": "c8f439de-eb27-4269-8ca7-2c0a7ba75ab0",
+        "title": "To describe container instance"
+      }
+    ],
+    "DescribeServices": [
+      {
+        "input": {
+          "services": [
+            "ecs-simple-service"
+          ]
+        },
+        "output": {
+          "failures": [
+
+          ],
+          "services": [
+            {
+              "clusterArn": "arn:aws:ecs:us-east-1:012345678910:cluster/default",
+              "createdAt": "2016-08-29T16:25:52.130Z",
+              "deploymentConfiguration": {
+                "maximumPercent": 200,
+                "minimumHealthyPercent": 100
+              },
+              "deployments": [
+                {
+                  "createdAt": "2016-08-29T16:25:52.130Z",
+                  "desiredCount": 1,
+                  "id": "ecs-svc/9223370564341623665",
+                  "pendingCount": 0,
+                  "runningCount": 0,
+                  "status": "PRIMARY",
+                  "taskDefinition": "arn:aws:ecs:us-east-1:012345678910:task-definition/hello_world:6",
+                  "updatedAt": "2016-08-29T16:25:52.130Z"
+                }
+              ],
+              "desiredCount": 1,
+              "events": [
+                {
+                  "createdAt": "2016-08-29T16:25:58.520Z",
+                  "id": "38c285e5-d335-4b68-8b15-e46dedc8e88d",
+                  "message": "(service ecs-simple-service) was unable to place a task because no container instance met all of its requirements. The closest matching (container-instance 3f4de1c5-ffdd-4954-af7e-75b4be0c8841) is already using a port required by your task. For more information, see the Troubleshooting section of the Amazon ECS Developer Guide."
+                }
+              ],
+              "loadBalancers": [
+
+              ],
+              "pendingCount": 0,
+              "runningCount": 0,
+              "serviceArn": "arn:aws:ecs:us-east-1:012345678910:service/ecs-simple-service",
+              "serviceName": "ecs-simple-service",
+              "status": "ACTIVE",
+              "taskDefinition": "arn:aws:ecs:us-east-1:012345678910:task-definition/hello_world:6"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+            "services[0].events[0].message": "In this example, there is a service event that shows unavailable cluster resources."
+          }
+        },
+        "description": "This example provides descriptive information about the service named ``ecs-simple-service``.",
+        "id": "to-describe-a-service-1472513256350",
+        "title": "To describe a service"
+      }
+    ],
+    "DescribeTaskDefinition": [
+      {
+        "input": {
+          "taskDefinition": "hello_world:8"
+        },
+        "output": {
+          "taskDefinition": {
+            "containerDefinitions": [
+              {
+                "name": "wordpress",
+                "cpu": 10,
+                "environment": [
+
+                ],
+                "essential": true,
+                "image": "wordpress",
+                "links": [
+                  "mysql"
+                ],
+                "memory": 500,
+                "mountPoints": [
+
+                ],
+                "portMappings": [
+                  {
+                    "containerPort": 80,
+                    "hostPort": 80
+                  }
+                ],
+                "volumesFrom": [
+
+                ]
+              },
+              {
+                "name": "mysql",
+                "cpu": 10,
+                "environment": [
+                  {
+                    "name": "MYSQL_ROOT_PASSWORD",
+                    "value": "password"
+                  }
+                ],
+                "essential": true,
+                "image": "mysql",
+                "memory": 500,
+                "mountPoints": [
+
+                ],
+                "portMappings": [
+
+                ],
+                "volumesFrom": [
+
+                ]
+              }
+            ],
+            "family": "hello_world",
+            "revision": 8,
+            "taskDefinitionArn": "arn:aws:ecs:us-east-1:<aws_account_id>:task-definition/hello_world:8",
+            "volumes": [
+
+            ]
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example provides a description of the specified task definition.",
+        "id": "4c21eeb1-f1da-4a08-8c44-297fc8d0ea88",
+        "title": "To describe a task definition"
+      }
+    ],
+    "DescribeTasks": [
+      {
+        "input": {
+          "tasks": [
+            "c5cba4eb-5dad-405e-96db-71ef8eefe6a8"
+          ]
+        },
+        "output": {
+          "failures": [
+
+          ],
+          "tasks": [
+            {
+              "clusterArn": "arn:aws:ecs:<region>:<aws_account_id>:cluster/default",
+              "containerInstanceArn": "arn:aws:ecs:<region>:<aws_account_id>:container-instance/18f9eda5-27d7-4c19-b133-45adc516e8fb",
+              "containers": [
+                {
+                  "name": "ecs-demo",
+                  "containerArn": "arn:aws:ecs:<region>:<aws_account_id>:container/7c01765b-c588-45b3-8290-4ba38bd6c5a6",
+                  "lastStatus": "RUNNING",
+                  "networkBindings": [
+                    {
+                      "bindIP": "0.0.0.0",
+                      "containerPort": 80,
+                      "hostPort": 80
+                    }
+                  ],
+                  "taskArn": "arn:aws:ecs:<region>:<aws_account_id>:task/c5cba4eb-5dad-405e-96db-71ef8eefe6a8"
+                }
+              ],
+              "desiredStatus": "RUNNING",
+              "lastStatus": "RUNNING",
+              "overrides": {
+                "containerOverrides": [
+                  {
+                    "name": "ecs-demo"
+                  }
+                ]
+              },
+              "startedBy": "ecs-svc/9223370608528463088",
+              "taskArn": "arn:aws:ecs:<region>:<aws_account_id>:task/c5cba4eb-5dad-405e-96db-71ef8eefe6a8",
+              "taskDefinitionArn": "arn:aws:ecs:<region>:<aws_account_id>:task-definition/amazon-ecs-sample:1"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example provides a description of the specified task, using the task UUID as an identifier.",
+        "id": "a90b0cde-f965-4946-b55e-cfd8cc54e827",
+        "title": "To describe a task"
+      }
+    ],
+    "ListAccountSettings": [
+      {
+        "input": {
+          "effectiveSettings": true
+        },
+        "output": {
+          "settings": [
+            {
+              "name": "containerInstanceLongArnFormat",
+              "value": "disabled",
+              "principalArn": "arn:aws:iam::<aws_account_id>:user/principalName"
+            },
+            {
+              "name": "serviceLongArnFormat",
+              "value": "enabled",
+              "principalArn": "arn:aws:iam::<aws_account_id>:user/principalName"
+            },
+            {
+              "name": "taskLongArnFormat",
+              "value": "disabled",
+              "principalArn": "arn:aws:iam::<aws_account_id>:user/principalName"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example displays the effective account settings for your account.",
+        "id": "to-view-your-account-settings-1549524118170",
+        "title": "To view your effective account settings"
+      },
+      {
+        "input": {
+          "effectiveSettings": true,
+          "principalArn": "arn:aws:iam::<aws_account_id>:user/principalName"
+        },
+        "output": {
+          "settings": [
+            {
+              "name": "containerInstanceLongArnFormat",
+              "value": "disabled",
+              "principalArn": "arn:aws:iam::<aws_account_id>:user/principalName"
+            },
+            {
+              "name": "serviceLongArnFormat",
+              "value": "enabled",
+              "principalArn": "arn:aws:iam::<aws_account_id>:user/principalName"
+            },
+            {
+              "name": "taskLongArnFormat",
+              "value": "disabled",
+              "principalArn": "arn:aws:iam::<aws_account_id>:user/principalName"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example displays the effective account settings for the specified user or role.",
+        "id": "to-view-the-account-settings-for-a-specific-iam-user-or-iam-role-1549524237932",
+        "title": "To view the effective account settings for a specific IAM user or IAM role"
+      }
+    ],
+    "ListClusters": [
+      {
+        "input": {
+        },
+        "output": {
+          "clusterArns": [
+            "arn:aws:ecs:us-east-1:<aws_account_id>:cluster/test",
+            "arn:aws:ecs:us-east-1:<aws_account_id>:cluster/default"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example lists all of your available clusters in your default region.",
+        "id": "e337d059-134f-4125-ba8e-4f499139facf",
+        "title": "To list your available clusters"
+      }
+    ],
+    "ListContainerInstances": [
+      {
+        "input": {
+          "cluster": "default"
+        },
+        "output": {
+          "containerInstanceArns": [
+            "arn:aws:ecs:us-east-1:<aws_account_id>:container-instance/f6bbb147-5370-4ace-8c73-c7181ded911f",
+            "arn:aws:ecs:us-east-1:<aws_account_id>:container-instance/ffe3d344-77e2-476c-a4d0-bf560ad50acb"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example lists all of your available container instances in the specified cluster in your default region.",
+        "id": "62a82a94-713c-4e18-8420-1d2b2ba9d484",
+        "title": "To list your available container instances in a cluster"
+      }
+    ],
+    "ListServices": [
+      {
+        "input": {
+        },
+        "output": {
+          "serviceArns": [
+            "arn:aws:ecs:us-east-1:012345678910:service/my-http-service"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example lists the services running in the default cluster for an account.",
+        "id": "1d9a8037-4e0e-4234-a528-609656809a3a",
+        "title": "To list the services in a cluster"
+      }
+    ],
+    "ListTagsForResource": [
+      {
+        "input": {
+          "resourceArn": "arn:aws:ecs:region:aws_account_id:cluster/dev"
+        },
+        "output": {
+          "tags": [
+            {
+              "key": "team",
+              "value": "dev"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example lists the tags for the 'dev' cluster.",
+        "id": "to-list-the-tags-for-a-cluster-1540582700259",
+        "title": "To list the tags for a cluster."
+      }
+    ],
+    "ListTaskDefinitionFamilies": [
+      {
+        "input": {
+        },
+        "output": {
+          "families": [
+            "node-js-app",
+            "web-timer",
+            "hpcc",
+            "hpcc-c4-8xlarge"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example lists all of your registered task definition families.",
+        "id": "b5c89769-1d94-4ca2-a79e-8069103c7f75",
+        "title": "To list your registered task definition families"
+      },
+      {
+        "input": {
+          "familyPrefix": "hpcc"
+        },
+        "output": {
+          "families": [
+            "hpcc",
+            "hpcc-c4-8xlarge"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example lists the task definition revisions that start with \"hpcc\".",
+        "id": "8a4cf9a6-42c1-4fe3-852d-99ac8968e11b",
+        "title": "To filter your registered task definition families"
+      }
+    ],
+    "ListTaskDefinitions": [
+      {
+        "input": {
+        },
+        "output": {
+          "taskDefinitionArns": [
+            "arn:aws:ecs:us-east-1:<aws_account_id>:task-definition/sleep300:2",
+            "arn:aws:ecs:us-east-1:<aws_account_id>:task-definition/sleep360:1",
+            "arn:aws:ecs:us-east-1:<aws_account_id>:task-definition/wordpress:3",
+            "arn:aws:ecs:us-east-1:<aws_account_id>:task-definition/wordpress:4",
+            "arn:aws:ecs:us-east-1:<aws_account_id>:task-definition/wordpress:5",
+            "arn:aws:ecs:us-east-1:<aws_account_id>:task-definition/wordpress:6"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example lists all of your registered task definitions.",
+        "id": "b381ebaf-7eba-4d60-b99b-7f6ae49d3d60",
+        "title": "To list your registered task definitions"
+      },
+      {
+        "input": {
+          "familyPrefix": "wordpress"
+        },
+        "output": {
+          "taskDefinitionArns": [
+            "arn:aws:ecs:us-east-1:<aws_account_id>:task-definition/wordpress:3",
+            "arn:aws:ecs:us-east-1:<aws_account_id>:task-definition/wordpress:4",
+            "arn:aws:ecs:us-east-1:<aws_account_id>:task-definition/wordpress:5",
+            "arn:aws:ecs:us-east-1:<aws_account_id>:task-definition/wordpress:6"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example lists the task definition revisions of a specified family.",
+        "id": "734e7afd-753a-4bc2-85d0-badddce10910",
+        "title": "To list the registered task definitions in a family"
+      }
+    ],
+    "ListTasks": [
+      {
+        "input": {
+          "cluster": "default"
+        },
+        "output": {
+          "taskArns": [
+            "arn:aws:ecs:us-east-1:012345678910:task/0cc43cdb-3bee-4407-9c26-c0e6ea5bee84",
+            "arn:aws:ecs:us-east-1:012345678910:task/6b809ef6-c67e-4467-921f-ee261c15a0a1"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example lists all of the tasks in a cluster.",
+        "id": "9a6ec707-1a77-45d0-b2eb-516b5dd9e924",
+        "title": "To list the tasks in a cluster"
+      },
+      {
+        "input": {
+          "cluster": "default",
+          "containerInstance": "f6bbb147-5370-4ace-8c73-c7181ded911f"
+        },
+        "output": {
+          "taskArns": [
+            "arn:aws:ecs:us-east-1:012345678910:task/0cc43cdb-3bee-4407-9c26-c0e6ea5bee84"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example lists the tasks of a specified container instance. Specifying a ``containerInstance`` value limits  the  results  to  tasks  that belong to that container instance.",
+        "id": "024bf3b7-9cbb-44e3-848f-9d074e1fecce",
+        "title": "To list the tasks on a particular container instance"
+      }
+    ],
+    "PutAccountSetting": [
+      {
+        "input": {
+          "name": "serviceLongArnFormat",
+          "value": "enabled"
+        },
+        "output": {
+          "setting": {
+            "name": "serviceLongArnFormat",
+            "value": "enabled",
+            "principalArn": "arn:aws:iam::<aws_account_id>:user/principalName"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example modifies your account settings to opt in to the new ARN and resource ID format for Amazon ECS services. If you’re using this command as the root user, then changes apply to the entire AWS account, unless an IAM user or role explicitly overrides these settings for themselves.",
+        "id": "to-modify-the-account-settings-for-your-iam-user-account-1549523130939",
+        "title": "To modify your account settings"
+      },
+      {
+        "input": {
+          "name": "containerInstanceLongArnFormat",
+          "value": "enabled",
+          "principalArn": "arn:aws:iam::<aws_account_id>:user/principalName"
+        },
+        "output": {
+          "setting": {
+            "name": "containerInstanceLongArnFormat",
+            "value": "enabled",
+            "principalArn": "arn:aws:iam::<aws_account_id>:user/principalName"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example modifies the account setting for a specific IAM user or IAM role to opt in to the new ARN and resource ID format for Amazon ECS container instances. If you’re using this command as the root user, then changes apply to the entire AWS account, unless an IAM user or role explicitly overrides these settings for themselves.",
+        "id": "to-modify-the-account-settings-for-a-specific-iam-user-or-iam-role-1549523518390",
+        "title": "To modify the account settings for a specific IAM user or IAM role"
+      }
+    ],
+    "PutAccountSettingDefault": [
+      {
+        "input": {
+          "name": "serviceLongArnFormat",
+          "value": "enabled"
+        },
+        "output": {
+          "setting": {
+            "name": "serviceLongArnFormat",
+            "value": "enabled",
+            "principalArn": "arn:aws:iam::<aws_account_id>:root"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example modifies the default account setting for the specified resource for all IAM users or roles on an account. These changes apply to the entire AWS account, unless an IAM user or role explicitly overrides these settings for themselves.",
+        "id": "to-modify-the-default-account-settings-for-all-iam-users-or-roles-on-your-account-1549523794603",
+        "title": "To modify the default account settings for all IAM users or roles on an account"
+      }
+    ],
+    "RegisterTaskDefinition": [
+      {
+        "input": {
+          "containerDefinitions": [
+            {
+              "name": "sleep",
+              "command": [
+                "sleep",
+                "360"
+              ],
+              "cpu": 10,
+              "essential": true,
+              "image": "busybox",
+              "memory": 10
+            }
+          ],
+          "family": "sleep360",
+          "taskRoleArn": "",
+          "volumes": [
+
+          ]
+        },
+        "output": {
+          "taskDefinition": {
+            "containerDefinitions": [
+              {
+                "name": "sleep",
+                "command": [
+                  "sleep",
+                  "360"
+                ],
+                "cpu": 10,
+                "environment": [
+
+                ],
+                "essential": true,
+                "image": "busybox",
+                "memory": 10,
+                "mountPoints": [
+
+                ],
+                "portMappings": [
+
+                ],
+                "volumesFrom": [
+
+                ]
+              }
+            ],
+            "family": "sleep360",
+            "revision": 1,
+            "taskDefinitionArn": "arn:aws:ecs:us-east-1:<aws_account_id>:task-definition/sleep360:19",
+            "volumes": [
+
+            ]
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example registers a task definition to the specified family.",
+        "id": "to-register-a-task-definition-1470764550877",
+        "title": "To register a task definition"
+      }
+    ],
+    "RunTask": [
+      {
+        "input": {
+          "cluster": "default",
+          "taskDefinition": "sleep360:1"
+        },
+        "output": {
+          "tasks": [
+            {
+              "containerInstanceArn": "arn:aws:ecs:us-east-1:<aws_account_id>:container-instance/ffe3d344-77e2-476c-a4d0-bf560ad50acb",
+              "containers": [
+                {
+                  "name": "sleep",
+                  "containerArn": "arn:aws:ecs:us-east-1:<aws_account_id>:container/58591c8e-be29-4ddf-95aa-ee459d4c59fd",
+                  "lastStatus": "PENDING",
+                  "taskArn": "arn:aws:ecs:us-east-1:<aws_account_id>:task/a9f21ea7-c9f5-44b1-b8e6-b31f50ed33c0"
+                }
+              ],
+              "desiredStatus": "RUNNING",
+              "lastStatus": "PENDING",
+              "overrides": {
+                "containerOverrides": [
+                  {
+                    "name": "sleep"
+                  }
+                ]
+              },
+              "taskArn": "arn:aws:ecs:us-east-1:<aws_account_id>:task/a9f21ea7-c9f5-44b1-b8e6-b31f50ed33c0",
+              "taskDefinitionArn": "arn:aws:ecs:us-east-1:<aws_account_id>:task-definition/sleep360:1"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example runs the specified task definition on your default cluster.",
+        "id": "6f238c83-a133-42cd-ab3d-abeca0560445",
+        "title": "To run a task on your default cluster"
+      }
+    ],
+    "TagResource": [
+      {
+        "input": {
+          "resourceArn": "arn:aws:ecs:region:aws_account_id:cluster/dev",
+          "tags": [
+            {
+              "key": "team",
+              "value": "dev"
+            }
+          ]
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example tags the 'dev' cluster with key 'team' and value 'dev'.",
+        "id": "to-tag-a-cluster-1540581863751",
+        "title": "To tag a cluster."
+      }
+    ],
+    "UntagResource": [
+      {
+        "input": {
+          "resourceArn": "arn:aws:ecs:region:aws_account_id:cluster/dev",
+          "tagKeys": [
+            "team"
+          ]
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the 'team' tag from the 'dev' cluster.",
+        "id": "to-untag-a-cluster-1540582546056",
+        "title": "To untag a cluster."
+      }
+    ],
+    "UpdateService": [
+      {
+        "input": {
+          "service": "my-http-service",
+          "taskDefinition": "amazon-ecs-sample"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example updates the my-http-service service to use the amazon-ecs-sample task definition.",
+        "id": "cc9e8900-0cc2-44d2-8491-64d1d3d37887",
+        "title": "To change the task definition used in a service"
+      },
+      {
+        "input": {
+          "desiredCount": 10,
+          "service": "my-http-service"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example updates the desired count of the my-http-service service to 10.",
+        "id": "9581d6c5-02e3-4140-8cc1-5a4301586633",
+        "title": "To change the number of tasks in a service"
+      }
+    ]
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ecs/2014-11-13/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/ecs/2014-11-13/paginators-1.json
new file mode 100644
index 00000000..cd66d4ab
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ecs/2014-11-13/paginators-1.json
@@ -0,0 +1,58 @@
+{
+  "pagination": {
+    "ListClusters": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "clusterArns"
+    },
+    "ListContainerInstances": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "containerInstanceArns"
+    },
+    "ListTaskDefinitions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "taskDefinitionArns"
+    },
+    "ListTaskDefinitionFamilies": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "families"
+    },
+    "ListTasks": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "taskArns"
+    },
+    "ListServices": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "serviceArns"
+    },
+    "ListAccountSettings": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "settings"
+    },
+    "ListAttributes": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "attributes"
+    },
+    "ListServicesByNamespace": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "serviceArns"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ecs/2014-11-13/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ecs/2014-11-13/service-2.json.gz
new file mode 100644
index 00000000..8ad8bb8a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ecs/2014-11-13/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ecs/2014-11-13/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/ecs/2014-11-13/waiters-2.json
new file mode 100644
index 00000000..8a0b19d8
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ecs/2014-11-13/waiters-2.json
@@ -0,0 +1,93 @@
+{
+  "version": 2,
+  "waiters": {
+    "TasksRunning": {
+      "delay": 6,
+      "operation": "DescribeTasks",
+      "maxAttempts": 100,
+      "acceptors": [
+        {
+          "expected": "STOPPED",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "tasks[].lastStatus"
+        },
+        {
+          "expected": "MISSING",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "failures[].reason"
+        },
+        {
+          "expected": "RUNNING",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "tasks[].lastStatus"
+        }
+      ]
+    },
+    "TasksStopped": {
+      "delay": 6,
+      "operation": "DescribeTasks",
+      "maxAttempts": 100,
+      "acceptors": [
+        {
+          "expected": "STOPPED",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "tasks[].lastStatus"
+        }
+      ]
+    },
+    "ServicesStable": {
+      "delay": 15,
+      "operation": "DescribeServices",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "MISSING",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "failures[].reason"
+        },
+        {
+          "expected": "DRAINING",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "services[].status"
+        },
+        {
+          "expected": "INACTIVE",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "services[].status"
+        },
+        {
+          "expected": true,
+          "matcher": "path",
+          "state": "success",
+          "argument": "length(services[?!(length(deployments) == `1` && runningCount == desiredCount)]) == `0`"
+        }
+      ]
+    },
+    "ServicesInactive": {
+      "delay": 15,
+      "operation": "DescribeServices",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "MISSING",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "failures[].reason"
+        },
+        {
+          "expected": "INACTIVE",
+          "matcher": "pathAny",
+          "state": "success",
+          "argument": "services[].status"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/efs/2015-02-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/efs/2015-02-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..0eba8fe3
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/efs/2015-02-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/efs/2015-02-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/efs/2015-02-01/examples-1.json
new file mode 100644
index 00000000..f3c75b34
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/efs/2015-02-01/examples-1.json
@@ -0,0 +1,294 @@
+{
+  "version": "1.0",
+  "examples": {
+    "CreateFileSystem": [
+      {
+        "input": {
+          "Backup": true,
+          "CreationToken": "tokenstring",
+          "Encrypted": true,
+          "PerformanceMode": "generalPurpose",
+          "Tags": [
+            {
+              "Key": "Name",
+              "Value": "MyFileSystem"
+            }
+          ]
+        },
+        "output": {
+          "CreationTime": "1481841524.0",
+          "CreationToken": "tokenstring",
+          "Encrypted": true,
+          "FileSystemId": "fs-01234567",
+          "LifeCycleState": "creating",
+          "NumberOfMountTargets": 0,
+          "OwnerId": "012345678912",
+          "PerformanceMode": "generalPurpose",
+          "SizeInBytes": {
+            "Value": 0
+          },
+          "Tags": [
+            {
+              "Key": "Name",
+              "Value": "MyFileSystem"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This operation creates a new, encrypted file system with automatic backups enabled, and the default generalpurpose performance mode.",
+        "id": "to-create-a-new-file-system-1481840798547",
+        "title": "To create a new file system"
+      }
+    ],
+    "CreateMountTarget": [
+      {
+        "input": {
+          "FileSystemId": "fs-01234567",
+          "SubnetId": "subnet-1234abcd"
+        },
+        "output": {
+          "FileSystemId": "fs-01234567",
+          "IpAddress": "192.0.0.2",
+          "LifeCycleState": "creating",
+          "MountTargetId": "fsmt-12340abc",
+          "NetworkInterfaceId": "eni-cedf6789",
+          "OwnerId": "012345678912",
+          "SubnetId": "subnet-1234abcd"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This operation creates a new mount target for an EFS file system.",
+        "id": "to-create-a-new-mount-target-1481842289329",
+        "title": "To create a new mount target"
+      }
+    ],
+    "CreateTags": [
+      {
+        "input": {
+          "FileSystemId": "fs-01234567",
+          "Tags": [
+            {
+              "Key": "Name",
+              "Value": "MyFileSystem"
+            }
+          ]
+        },
+        "comments": {
+        },
+        "description": "This operation creates a new tag for an EFS file system.",
+        "id": "to-create-a-new-tag-1481843409357",
+        "title": "To create a new tag"
+      }
+    ],
+    "DeleteFileSystem": [
+      {
+        "input": {
+          "FileSystemId": "fs-01234567"
+        },
+        "comments": {
+        },
+        "description": "This operation deletes an EFS file system.",
+        "id": "to-delete-a-file-system-1481847318348",
+        "title": "To delete a file system"
+      }
+    ],
+    "DeleteMountTarget": [
+      {
+        "input": {
+          "MountTargetId": "fsmt-12340abc"
+        },
+        "comments": {
+        },
+        "description": "This operation deletes a mount target.",
+        "id": "to-delete-a-mount-target-1481847635607",
+        "title": "To delete a mount target"
+      }
+    ],
+    "DeleteTags": [
+      {
+        "input": {
+          "FileSystemId": "fs-01234567",
+          "TagKeys": [
+            "Name"
+          ]
+        },
+        "comments": {
+        },
+        "description": "This operation deletes tags for an EFS file system.",
+        "id": "to-delete-tags-for-an-efs-file-system-1481848189061",
+        "title": "To delete tags for an EFS file system"
+      }
+    ],
+    "DescribeFileSystems": [
+      {
+        "input": {
+        },
+        "output": {
+          "FileSystems": [
+            {
+              "CreationTime": "1481841524.0",
+              "CreationToken": "tokenstring",
+              "FileSystemId": "fs-01234567",
+              "LifeCycleState": "available",
+              "Name": "MyFileSystem",
+              "NumberOfMountTargets": 1,
+              "OwnerId": "012345678912",
+              "PerformanceMode": "generalPurpose",
+              "SizeInBytes": {
+                "Value": 6144
+              },
+              "Tags": [
+                {
+                  "Key": "Name",
+                  "Value": "MyFileSystem"
+                }
+              ]
+            }
+          ]
+        },
+        "comments": {
+        },
+        "description": "This operation describes all of the EFS file systems in an account.",
+        "id": "to-describe-an-efs-file-system-1481848448460",
+        "title": "To describe an EFS file system"
+      }
+    ],
+    "DescribeLifecycleConfiguration": [
+      {
+        "input": {
+          "FileSystemId": "fs-01234567"
+        },
+        "output": {
+          "LifecyclePolicies": [
+            {
+              "TransitionToIA": "AFTER_30_DAYS"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This operation describes a file system's LifecycleConfiguration. EFS lifecycle management uses the LifecycleConfiguration object to identify which files to move to the EFS Infrequent Access (IA) storage class. ",
+        "id": "to-describe-the-lifecycle-configuration-for-a-file-system-1551200664502",
+        "title": "To describe the lifecycle configuration for a file system"
+      }
+    ],
+    "DescribeMountTargetSecurityGroups": [
+      {
+        "input": {
+          "MountTargetId": "fsmt-12340abc"
+        },
+        "output": {
+          "SecurityGroups": [
+            "sg-4567abcd"
+          ]
+        },
+        "comments": {
+        },
+        "description": "This operation describes all of the security groups for a file system's mount target.",
+        "id": "to-describe-the-security-groups-for-a-mount-target-1481849317823",
+        "title": "To describe the security groups for a mount target"
+      }
+    ],
+    "DescribeMountTargets": [
+      {
+        "input": {
+          "FileSystemId": "fs-01234567"
+        },
+        "output": {
+          "MountTargets": [
+            {
+              "FileSystemId": "fs-01234567",
+              "IpAddress": "192.0.0.2",
+              "LifeCycleState": "available",
+              "MountTargetId": "fsmt-12340abc",
+              "NetworkInterfaceId": "eni-cedf6789",
+              "OwnerId": "012345678912",
+              "SubnetId": "subnet-1234abcd"
+            }
+          ]
+        },
+        "comments": {
+        },
+        "description": "This operation describes all of a file system's mount targets.",
+        "id": "to-describe-the-mount-targets-for-a-file-system-1481849958584",
+        "title": "To describe the mount targets for a file system"
+      }
+    ],
+    "DescribeTags": [
+      {
+        "input": {
+          "FileSystemId": "fs-01234567"
+        },
+        "output": {
+          "Tags": [
+            {
+              "Key": "Name",
+              "Value": "MyFileSystem"
+            }
+          ]
+        },
+        "comments": {
+        },
+        "description": "This operation describes all of a file system's tags.",
+        "id": "to-describe-the-tags-for-a-file-system-1481850497090",
+        "title": "To describe the tags for a file system"
+      }
+    ],
+    "ModifyMountTargetSecurityGroups": [
+      {
+        "input": {
+          "MountTargetId": "fsmt-12340abc",
+          "SecurityGroups": [
+            "sg-abcd1234"
+          ]
+        },
+        "comments": {
+        },
+        "description": "This operation modifies the security groups associated with a mount target for a file system.",
+        "id": "to-modify-the-security-groups-associated-with-a-mount-target-for-a-file-system-1481850772562",
+        "title": "To modify the security groups associated with a mount target for a file system"
+      }
+    ],
+    "PutLifecycleConfiguration": [
+      {
+        "input": {
+          "FileSystemId": "fs-01234567",
+          "LifecyclePolicies": [
+            {
+              "TransitionToIA": "AFTER_30_DAYS"
+            }
+          ]
+        },
+        "output": {
+          "LifecyclePolicies": [
+            {
+              "TransitionToIA": "AFTER_30_DAYS"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This operation enables lifecycle management on a file system by creating a new LifecycleConfiguration object. A LifecycleConfiguration object defines when files in an Amazon EFS file system are automatically transitioned to the lower-cost EFS Infrequent Access (IA) storage class. A LifecycleConfiguration applies to all files in a file system.",
+        "id": "creates-a-new-lifecycleconfiguration-object-for-a-file-system-1551201594692",
+        "title": "Creates a new lifecycleconfiguration object for a file system"
+      }
+    ]
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/efs/2015-02-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/efs/2015-02-01/paginators-1.json
new file mode 100644
index 00000000..047d3e2f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/efs/2015-02-01/paginators-1.json
@@ -0,0 +1,34 @@
+{
+  "pagination": {
+    "DescribeFileSystems": {
+      "input_token": "Marker",
+      "output_token": "NextMarker",
+      "limit_key": "MaxItems",
+      "result_key": "FileSystems"
+    },
+    "DescribeMountTargets": {
+      "input_token": "Marker",
+      "output_token": "NextMarker",
+      "limit_key": "MaxItems",
+      "result_key": "MountTargets"
+    },
+    "DescribeTags": {
+      "input_token": "Marker",
+      "output_token": "NextMarker",
+      "limit_key": "MaxItems",
+      "result_key": "Tags"
+    },
+    "DescribeAccessPoints": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "AccessPoints"
+    },
+    "DescribeReplicationConfigurations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Replications"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/efs/2015-02-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/efs/2015-02-01/service-2.json.gz
new file mode 100644
index 00000000..fdfa54a0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/efs/2015-02-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/eks-auth/2023-11-26/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/eks-auth/2023-11-26/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..07bbef79
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/eks-auth/2023-11-26/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/eks-auth/2023-11-26/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/eks-auth/2023-11-26/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/eks-auth/2023-11-26/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/eks-auth/2023-11-26/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/eks-auth/2023-11-26/service-2.json.gz
new file mode 100644
index 00000000..0fd67897
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/eks-auth/2023-11-26/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/eks-auth/2023-11-26/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/eks-auth/2023-11-26/waiters-2.json
new file mode 100644
index 00000000..4b20636a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/eks-auth/2023-11-26/waiters-2.json
@@ -0,0 +1,5 @@
+{
+  "version": 2,
+  "waiters": {
+  }
+}
\ No newline at end of file
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/eks/2017-11-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/eks/2017-11-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..ccd3a2fb
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/eks/2017-11-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/eks/2017-11-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/eks/2017-11-01/examples-1.json
new file mode 100644
index 00000000..8ea25175
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/eks/2017-11-01/examples-1.json
@@ -0,0 +1,135 @@
+{
+  "version": "1.0",
+  "examples": {
+    "CreateCluster": [
+      {
+        "input": {
+          "version": "1.10",
+          "name": "prod",
+          "clientRequestToken": "1d2129a1-3d38-460a-9756-e5b91fddb951",
+          "resourcesVpcConfig": {
+            "securityGroupIds": [
+              "sg-6979fe18"
+            ],
+            "subnetIds": [
+              "subnet-6782e71e",
+              "subnet-e7e761ac"
+            ]
+          },
+          "roleArn": "arn:aws:iam::012345678910:role/eks-service-role-AWSServiceRoleForAmazonEKS-J7ONKE3BQ4PI"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example creates an Amazon EKS cluster called prod.",
+        "id": "to-create-a-new-cluster-1527868185648",
+        "title": "To create a new cluster"
+      }
+    ],
+    "DeleteCluster": [
+      {
+        "input": {
+          "name": "devel"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example command deletes a cluster named `devel` in your default region.",
+        "id": "to-delete-a-cluster-1527868641252",
+        "title": "To delete a cluster"
+      }
+    ],
+    "DescribeCluster": [
+      {
+        "input": {
+          "name": "devel"
+        },
+        "output": {
+          "cluster": {
+            "version": "1.10",
+            "name": "devel",
+            "arn": "arn:aws:eks:us-west-2:012345678910:cluster/devel",
+            "certificateAuthority": {
+              "data": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUN5RENDQWJDZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFWTVJNd0VRWURWUVFERXdwcmRXSmwKY201bGRHVnpNQjRYRFRFNE1EVXpNVEl6TVRFek1Wb1hEVEk0TURVeU9ESXpNVEV6TVZvd0ZURVRNQkVHQTFVRQpBeE1LYTNWaVpYSnVaWFJsY3pDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTTZWCjVUaG4rdFcySm9Xa2hQMzRlVUZMNitaRXJOZGIvWVdrTmtDdWNGS2RaaXl2TjlMVmdvUmV2MjlFVFZlN1ZGbSsKUTJ3ZURyRXJiQyt0dVlibkFuN1ZLYmE3ay9hb1BHekZMdmVnb0t6b0M1N2NUdGVwZzRIazRlK2tIWHNaME10MApyb3NzcjhFM1ROeExETnNJTThGL1cwdjhsTGNCbWRPcjQyV2VuTjFHZXJnaDNSZ2wzR3JIazBnNTU0SjFWenJZCm9hTi8zODFUczlOTFF2QTBXb0xIcjBFRlZpTFdSZEoyZ3lXaC9ybDVyOFNDOHZaQXg1YW1BU0hVd01aTFpWRC8KTDBpOW4wRVM0MkpVdzQyQmxHOEdpd3NhTkJWV3lUTHZKclNhRXlDSHFtVVZaUTFDZkFXUjl0L3JleVVOVXM3TApWV1FqM3BFbk9RMitMSWJrc0RzQ0F3RUFBYU1qTUNFd0RnWURWUjBQQVFIL0JBUURBZ0trTUE4R0ExVWRFd0VCCi93UUZNQU1CQWY4d0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFNZ3RsQ1dIQ2U2YzVHMXl2YlFTS0Q4K2hUalkKSm1NSG56L2EvRGt0WG9YUjFVQzIrZUgzT1BZWmVjRVZZZHVaSlZCckNNQ2VWR0ZkeWdBYlNLc1FxWDg0S2RXbAp1MU5QaERDSmEyRHliN2pVMUV6VThTQjFGZUZ5ZFE3a0hNS1E1blpBRVFQOTY4S01hSGUrSm0yQ2x1UFJWbEJVCjF4WlhTS1gzTVZ0K1Q0SU1EV2d6c3JRSjVuQkRjdEtLcUZtM3pKdVVubHo5ZEpVckdscEltMjVJWXJDckxYUFgKWkUwRUtRNWEzMHhkVWNrTHRGQkQrOEtBdFdqSS9yZUZPNzM1YnBMdVoyOTBaNm42QlF3elRrS0p4cnhVc3QvOAppNGsxcnlsaUdWMm5SSjBUYjNORkczNHgrYWdzYTRoSTFPbU90TFM0TmgvRXJxT3lIUXNDc2hEQUtKUT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo="
+            },
+            "createdAt": 1527807879.988,
+            "endpoint": "https://A0DCCD80A04F01705DD065655C30CC3D.yl4.us-west-2.eks.amazonaws.com",
+            "resourcesVpcConfig": {
+              "securityGroupIds": [
+                "sg-6979fe18"
+              ],
+              "subnetIds": [
+                "subnet-6782e71e",
+                "subnet-e7e761ac"
+              ],
+              "vpcId": "vpc-950809ec"
+            },
+            "roleArn": "arn:aws:iam::012345678910:role/eks-service-role-AWSServiceRoleForAmazonEKS-J7ONKE3BQ4PI",
+            "status": "ACTIVE"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example command provides a description of the specified cluster in your default region.",
+        "id": "to-describe-a-cluster-1527868708512",
+        "title": "To describe a cluster"
+      }
+    ],
+    "ListClusters": [
+      {
+        "input": {
+        },
+        "output": {
+          "clusters": [
+            "devel",
+            "prod"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example command lists all of your available clusters in your default region.",
+        "id": "to-list-your-available-clusters-1527868801040",
+        "title": "To list your available clusters"
+      }
+    ],
+    "ListTagsForResource": [
+      {
+        "input": {
+          "resourceArn": "arn:aws:eks:us-west-2:012345678910:cluster/beta"
+        },
+        "output": {
+          "tags": {
+            "aws:tag:domain": "beta"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example lists all of the tags for the `beta` cluster.",
+        "id": "to-list-tags-for-a-cluster-1568666903378",
+        "title": "To list tags for a cluster"
+      }
+    ]
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/eks/2017-11-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/eks/2017-11-01/paginators-1.json
new file mode 100644
index 00000000..6be3631f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/eks/2017-11-01/paginators-1.json
@@ -0,0 +1,92 @@
+{
+  "pagination": {
+    "ListClusters": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "clusters"
+    },
+    "ListUpdates": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "updateIds"
+    },
+    "ListNodegroups": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "nodegroups"
+    },
+    "ListFargateProfiles": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "fargateProfileNames"
+    },
+    "DescribeAddonVersions": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "addons"
+    },
+    "ListAddons": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "addons"
+    },
+    "ListIdentityProviderConfigs": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "identityProviderConfigs"
+    },
+    "ListEksAnywhereSubscriptions": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "subscriptions"
+    },
+    "ListPodIdentityAssociations": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "associations"
+    },
+    "ListAccessEntries": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "accessEntries"
+    },
+    "ListAccessPolicies": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "accessPolicies"
+    },
+    "ListAssociatedAccessPolicies": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "non_aggregate_keys": [
+        "clusterName",
+        "principalArn"
+      ],
+      "output_token": "nextToken",
+      "result_key": "associatedAccessPolicies"
+    },
+    "ListInsights": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "insights"
+    },
+    "DescribeClusterVersions": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "clusterVersions"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/eks/2017-11-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/eks/2017-11-01/service-2.json.gz
new file mode 100644
index 00000000..0c48e57a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/eks/2017-11-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/eks/2017-11-01/service-2.sdk-extras.json b/.venv/lib/python3.12/site-packages/botocore/data/eks/2017-11-01/service-2.sdk-extras.json
new file mode 100644
index 00000000..b636c211
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/eks/2017-11-01/service-2.sdk-extras.json
@@ -0,0 +1,8 @@
+{
+    "version": 1.0,
+    "merge": {
+        "metadata": {
+            "serviceId":"EKS"
+        }
+    }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/eks/2017-11-01/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/eks/2017-11-01/waiters-2.json
new file mode 100644
index 00000000..c0689097
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/eks/2017-11-01/waiters-2.json
@@ -0,0 +1,177 @@
+{
+  "version": 2,
+  "waiters": {
+    "ClusterActive": {
+      "delay": 30,
+      "operation": "DescribeCluster",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "DELETING",
+          "matcher": "path",
+          "state": "failure",
+          "argument": "cluster.status"
+        },
+        {
+          "expected": "FAILED",
+          "matcher": "path",
+          "state": "failure",
+          "argument": "cluster.status"
+        },
+        {
+          "expected": "ACTIVE",
+          "matcher": "path",
+          "state": "success",
+          "argument": "cluster.status"
+        }
+      ]
+    },
+    "ClusterDeleted": {
+      "delay": 30,
+      "operation": "DescribeCluster",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "ACTIVE",
+          "matcher": "path",
+          "state": "failure",
+          "argument": "cluster.status"
+        },
+        {
+          "expected": "CREATING",
+          "matcher": "path",
+          "state": "failure",
+          "argument": "cluster.status"
+        },
+        {
+          "expected": "PENDING",
+          "matcher": "path",
+          "state": "failure",
+          "argument": "cluster.status"
+        },
+        {
+          "expected": "ResourceNotFoundException",
+          "matcher": "error",
+          "state": "success"
+        }
+      ]
+    },
+    "NodegroupActive": {
+      "delay": 30,
+      "operation": "DescribeNodegroup",
+      "maxAttempts": 80,
+      "acceptors": [
+        {
+          "expected": "CREATE_FAILED",
+          "matcher": "path",
+          "state": "failure",
+          "argument": "nodegroup.status"
+        },
+        {
+          "expected": "ACTIVE",
+          "matcher": "path",
+          "state": "success",
+          "argument": "nodegroup.status"
+        }
+      ]
+    },
+    "NodegroupDeleted": {
+      "delay": 30,
+      "operation": "DescribeNodegroup",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "DELETE_FAILED",
+          "matcher": "path",
+          "state": "failure",
+          "argument": "nodegroup.status"
+        },
+        {
+          "expected": "ResourceNotFoundException",
+          "matcher": "error",
+          "state": "success"
+        }
+      ]
+    },
+    "AddonActive": {
+      "delay": 10,
+      "operation": "DescribeAddon",
+      "maxAttempts": 60,
+      "acceptors": [
+        {
+          "expected": "CREATE_FAILED",
+          "matcher": "path",
+          "state": "failure",
+          "argument": "addon.status"
+        },
+        {
+          "expected": "DEGRADED",
+          "matcher": "path",
+          "state": "failure",
+          "argument": "addon.status"
+        },
+        {
+          "expected": "ACTIVE",
+          "matcher": "path",
+          "state": "success",
+          "argument": "addon.status"
+        }
+      ]
+    },
+    "AddonDeleted": {
+      "delay": 10,
+      "operation": "DescribeAddon",
+      "maxAttempts": 60,
+      "acceptors": [
+        {
+          "expected": "DELETE_FAILED",
+          "matcher": "path",
+          "state": "failure",
+          "argument": "addon.status"
+        },
+        {
+          "expected": "ResourceNotFoundException",
+          "matcher": "error",
+          "state": "success"
+        }
+      ]
+    },
+    "FargateProfileActive": {
+      "delay": 10,
+      "operation": "DescribeFargateProfile",
+      "maxAttempts": 60,
+      "acceptors": [
+        {
+          "expected": "CREATE_FAILED",
+          "matcher": "path",
+          "state": "failure",
+          "argument": "fargateProfile.status"
+        },
+        {
+          "expected": "ACTIVE",
+          "matcher": "path",
+          "state": "success",
+          "argument": "fargateProfile.status"
+        }
+      ]
+    },
+    "FargateProfileDeleted": {
+      "delay": 30,
+      "operation": "DescribeFargateProfile",
+      "maxAttempts": 60,
+      "acceptors": [
+        {
+          "expected": "DELETE_FAILED",
+          "matcher": "path",
+          "state": "failure",
+          "argument": "fargateProfile.status"
+        },
+        {
+          "expected": "ResourceNotFoundException",
+          "matcher": "error",
+          "state": "success"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/elasticache/2014-09-30/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/elasticache/2014-09-30/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..e1d5f821
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/elasticache/2014-09-30/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/elasticache/2014-09-30/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/elasticache/2014-09-30/paginators-1.json
new file mode 100644
index 00000000..8724740d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/elasticache/2014-09-30/paginators-1.json
@@ -0,0 +1,76 @@
+{
+  "pagination": {
+    "DescribeCacheClusters": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "CacheClusters"
+    },
+    "DescribeCacheEngineVersions": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "CacheEngineVersions"
+    },
+    "DescribeCacheParameterGroups": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "CacheParameterGroups"
+    },
+    "DescribeCacheParameters": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "Parameters"
+    },
+    "DescribeCacheSecurityGroups": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "CacheSecurityGroups"
+    },
+    "DescribeCacheSubnetGroups": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "CacheSubnetGroups"
+    },
+    "DescribeEngineDefaultParameters": {
+      "input_token": "Marker",
+      "output_token": "EngineDefaults.Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "EngineDefaults.Parameters"
+    },
+    "DescribeEvents": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "Events"
+    },
+    "DescribeReservedCacheNodes": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "ReservedCacheNodes"
+    },
+    "DescribeReservedCacheNodesOfferings": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "ReservedCacheNodesOfferings"
+    },
+    "DescribeReplicationGroups": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "ReplicationGroups"
+    },
+    "DescribeSnapshots": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "Snapshots"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/elasticache/2014-09-30/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/elasticache/2014-09-30/service-2.json.gz
new file mode 100644
index 00000000..fa4fe06b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/elasticache/2014-09-30/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/elasticache/2014-09-30/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/elasticache/2014-09-30/waiters-2.json
new file mode 100644
index 00000000..ccb904aa
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/elasticache/2014-09-30/waiters-2.json
@@ -0,0 +1,139 @@
+{
+  "version": 2,
+  "waiters": {
+    "CacheClusterAvailable": {
+      "delay": 30,
+      "operation": "DescribeCacheClusters",
+      "maxAttempts": 60,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "CacheClusters[].CacheClusterStatus"
+        },
+        {
+          "expected": "deleted",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "CacheClusters[].CacheClusterStatus"
+        },
+        {
+          "expected": "deleting",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "CacheClusters[].CacheClusterStatus"
+        },
+        {
+          "expected": "incompatible-network",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "CacheClusters[].CacheClusterStatus"
+        },
+        {
+          "expected": "restore-failed",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "CacheClusters[].CacheClusterStatus"
+        }
+      ]
+    },
+    "CacheClusterDeleted": {
+      "delay": 30,
+      "operation": "DescribeCacheClusters",
+      "maxAttempts": 60,
+      "acceptors": [
+        {
+          "expected": "CacheClusterNotFound",
+          "matcher": "error",
+          "state": "success"
+        },
+        {
+          "expected": "creating",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "CacheClusters[].CacheClusterStatus"
+        },
+        {
+          "expected": "modifying",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "CacheClusters[].CacheClusterStatus"
+        },
+        {
+          "expected": "rebooting",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "CacheClusters[].CacheClusterStatus"
+        }
+      ]
+    },
+    "ReplicationGroupAvailable": {
+      "delay": 30,
+      "operation": "DescribeReplicationGroups",
+      "maxAttempts": 60,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "ReplicationGroups[].Status"
+        },
+        {
+          "expected": "deleted",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "ReplicationGroups[].Status"
+        },
+        {
+          "expected": "deleting",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "ReplicationGroups[].Status"
+        },
+        {
+          "expected": "incompatible-network",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "ReplicationGroups[].Status"
+        },
+        {
+          "expected": "restore-failed",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "ReplicationGroups[].Status"
+        }
+      ]
+    },
+    "ReplicationGroupDeleted": {
+      "delay": 30,
+      "operation": "DescribeReplicationGroups",
+      "maxAttempts": 60,
+      "acceptors": [
+        {
+          "expected": "ReplicationGroupNotFoundFault",
+          "matcher": "error",
+          "state": "success"
+        },
+        {
+          "expected": "creating",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "ReplicationGroups[].Status"
+        },
+        {
+          "expected": "modifying",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "ReplicationGroups[].Status"
+        },
+        {
+          "expected": "rebooting",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "ReplicationGroups[].Status"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/elasticache/2015-02-02/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/elasticache/2015-02-02/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..00d5a0f7
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/elasticache/2015-02-02/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/elasticache/2015-02-02/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/elasticache/2015-02-02/examples-1.json
new file mode 100644
index 00000000..f1d21bd7
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/elasticache/2015-02-02/examples-1.json
@@ -0,0 +1,3149 @@
+{
+  "version": "1.0",
+  "examples": {
+    "AddTagsToResource": [
+      {
+        "input": {
+          "ResourceName": "arn:aws:elasticache:us-east-1:1234567890:cluster:my-mem-cluster",
+          "Tags": [
+            {
+              "Key": "APIVersion",
+              "Value": "20150202"
+            },
+            {
+              "Key": "Service",
+              "Value": "ElastiCache"
+            }
+          ]
+        },
+        "output": {
+          "TagList": [
+            {
+              "Key": "APIVersion",
+              "Value": "20150202"
+            },
+            {
+              "Key": "Service",
+              "Value": "ElastiCache"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Adds up to 10 tags, key/value pairs, to a cluster or snapshot resource.",
+        "id": "addtagstoresource-1482430264385",
+        "title": "AddTagsToResource"
+      }
+    ],
+    "AuthorizeCacheSecurityGroupIngress": [
+      {
+        "input": {
+          "CacheSecurityGroupName": "my-sec-grp",
+          "EC2SecurityGroupName": "my-ec2-sec-grp",
+          "EC2SecurityGroupOwnerId": "1234567890"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Allows network ingress to a cache security group. Applications using ElastiCache must be running on Amazon EC2. Amazon EC2 security groups are used as the authorization mechanism.",
+        "id": "authorizecachecachesecuritygroupingress-1483046446206",
+        "title": "AuthorizeCacheCacheSecurityGroupIngress"
+      }
+    ],
+    "CopySnapshot": [
+      {
+        "input": {
+          "SourceSnapshotName": "my-snapshot",
+          "TargetBucket": "",
+          "TargetSnapshotName": "my-snapshot-copy"
+        },
+        "output": {
+          "Snapshot": {
+            "AutoMinorVersionUpgrade": true,
+            "CacheClusterCreateTime": "2016-12-21T22:24:04.955Z",
+            "CacheClusterId": "my-redis4",
+            "CacheNodeType": "cache.m3.large",
+            "CacheParameterGroupName": "default.redis3.2",
+            "CacheSubnetGroupName": "default",
+            "Engine": "redis",
+            "EngineVersion": "3.2.4",
+            "NodeSnapshots": [
+              {
+                "CacheNodeCreateTime": "2016-12-21T22:24:04.955Z",
+                "CacheNodeId": "0001",
+                "CacheSize": "3 MB",
+                "SnapshotCreateTime": "2016-12-28T07:00:52Z"
+              }
+            ],
+            "NumCacheNodes": 1,
+            "Port": 6379,
+            "PreferredAvailabilityZone": "us-east-1c",
+            "PreferredMaintenanceWindow": "tue:09:30-tue:10:30",
+            "SnapshotName": "my-snapshot-copy",
+            "SnapshotRetentionLimit": 7,
+            "SnapshotSource": "manual",
+            "SnapshotStatus": "creating",
+            "SnapshotWindow": "07:00-08:00",
+            "VpcId": "vpc-3820329f3"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Copies a snapshot to a specified name.",
+        "id": "copysnapshot-1482961393820",
+        "title": "CopySnapshot"
+      }
+    ],
+    "CreateCacheCluster": [
+      {
+        "input": {
+          "AZMode": "cross-az",
+          "CacheClusterId": "my-memcached-cluster",
+          "CacheNodeType": "cache.r3.large",
+          "CacheSubnetGroupName": "default",
+          "Engine": "memcached",
+          "EngineVersion": "1.4.24",
+          "NumCacheNodes": 2,
+          "Port": 11211
+        },
+        "output": {
+          "CacheCluster": {
+            "AutoMinorVersionUpgrade": true,
+            "CacheClusterId": "my-memcached-cluster",
+            "CacheClusterStatus": "creating",
+            "CacheNodeType": "cache.r3.large",
+            "CacheParameterGroup": {
+              "CacheNodeIdsToReboot": [
+
+              ],
+              "CacheParameterGroupName": "default.memcached1.4",
+              "ParameterApplyStatus": "in-sync"
+            },
+            "CacheSecurityGroups": [
+
+            ],
+            "CacheSubnetGroupName": "default",
+            "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:",
+            "Engine": "memcached",
+            "EngineVersion": "1.4.24",
+            "NumCacheNodes": 2,
+            "PendingModifiedValues": {
+            },
+            "PreferredAvailabilityZone": "Multiple",
+            "PreferredMaintenanceWindow": "wed:09:00-wed:10:00"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Creates a Memcached cluster with 2 nodes. ",
+        "id": "createcachecluster-1474994727381",
+        "title": "CreateCacheCluster"
+      },
+      {
+        "input": {
+          "AutoMinorVersionUpgrade": true,
+          "CacheClusterId": "my-redis",
+          "CacheNodeType": "cache.r3.larage",
+          "CacheSubnetGroupName": "default",
+          "Engine": "redis",
+          "EngineVersion": "3.2.4",
+          "NumCacheNodes": 1,
+          "Port": 6379,
+          "PreferredAvailabilityZone": "us-east-1c",
+          "SnapshotRetentionLimit": 7
+        },
+        "output": {
+          "CacheCluster": {
+            "AutoMinorVersionUpgrade": true,
+            "CacheClusterId": "my-redis",
+            "CacheClusterStatus": "creating",
+            "CacheNodeType": "cache.m3.large",
+            "CacheParameterGroup": {
+              "CacheNodeIdsToReboot": [
+
+              ],
+              "CacheParameterGroupName": "default.redis3.2",
+              "ParameterApplyStatus": "in-sync"
+            },
+            "CacheSecurityGroups": [
+
+            ],
+            "CacheSubnetGroupName": "default",
+            "ClientDownloadLandingPage": "https: //console.aws.amazon.com/elasticache/home#client-download: ",
+            "Engine": "redis",
+            "EngineVersion": "3.2.4",
+            "NumCacheNodes": 1,
+            "PendingModifiedValues": {
+            },
+            "PreferredAvailabilityZone": "us-east-1c",
+            "PreferredMaintenanceWindow": "fri: 05: 30-fri: 06: 30",
+            "SnapshotRetentionLimit": 7,
+            "SnapshotWindow": "10: 00-11: 00"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Creates a Redis cluster with 1 node. ",
+        "id": "createcachecluster-1474994727381",
+        "title": "CreateCacheCluster"
+      }
+    ],
+    "CreateCacheParameterGroup": [
+      {
+        "input": {
+          "CacheParameterGroupFamily": "redis2.8",
+          "CacheParameterGroupName": "custom-redis2-8",
+          "Description": "Custom Redis 2.8 parameter group."
+        },
+        "output": {
+          "CacheParameterGroup": {
+            "CacheParameterGroupFamily": "redis2.8",
+            "CacheParameterGroupName": "custom-redis2-8",
+            "Description": "Custom Redis 2.8 parameter group."
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Creates the Amazon ElastiCache parameter group custom-redis2-8.",
+        "id": "createcacheparametergroup-1474997699362",
+        "title": "CreateCacheParameterGroup"
+      }
+    ],
+    "CreateCacheSecurityGroup": [
+      {
+        "input": {
+          "CacheSecurityGroupName": "my-cache-sec-grp",
+          "Description": "Example ElastiCache security group."
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Creates an ElastiCache security group. ElastiCache security groups are only for clusters not running in an AWS VPC.",
+        "id": "createcachesecuritygroup-1483041506604",
+        "title": "CreateCacheSecurityGroup"
+      }
+    ],
+    "CreateCacheSubnetGroup": [
+      {
+        "input": {
+          "CacheSubnetGroupDescription": "Sample subnet group",
+          "CacheSubnetGroupName": "my-sn-grp2",
+          "SubnetIds": [
+            "subnet-6f28c982",
+            "subnet-bcd382f3",
+            "subnet-845b3e7c0"
+          ]
+        },
+        "output": {
+          "CacheSubnetGroup": {
+            "CacheSubnetGroupDescription": "My subnet group.",
+            "CacheSubnetGroupName": "my-sn-grp",
+            "Subnets": [
+              {
+                "SubnetAvailabilityZone": {
+                  "Name": "us-east-1a"
+                },
+                "SubnetIdentifier": "subnet-6f28c982"
+              },
+              {
+                "SubnetAvailabilityZone": {
+                  "Name": "us-east-1c"
+                },
+                "SubnetIdentifier": "subnet-bcd382f3"
+              },
+              {
+                "SubnetAvailabilityZone": {
+                  "Name": "us-east-1b"
+                },
+                "SubnetIdentifier": "subnet-845b3e7c0"
+              }
+            ],
+            "VpcId": "vpc-91280df6"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Creates a new cache subnet group.",
+        "id": "createcachesubnet-1483042274558",
+        "title": "CreateCacheSubnet"
+      }
+    ],
+    "CreateReplicationGroup": [
+      {
+        "input": {
+          "AutomaticFailoverEnabled": true,
+          "CacheNodeType": "cache.m3.medium",
+          "Engine": "redis",
+          "EngineVersion": "2.8.24",
+          "NumCacheClusters": 3,
+          "ReplicationGroupDescription": "A Redis replication group.",
+          "ReplicationGroupId": "my-redis-rg",
+          "SnapshotRetentionLimit": 30
+        },
+        "output": {
+          "ReplicationGroup": {
+            "AutomaticFailover": "enabling",
+            "Description": "A Redis replication group.",
+            "MemberClusters": [
+              "my-redis-rg-001",
+              "my-redis-rg-002",
+              "my-redis-rg-003"
+            ],
+            "PendingModifiedValues": {
+            },
+            "ReplicationGroupId": "my-redis-rg",
+            "SnapshottingClusterId": "my-redis-rg-002",
+            "Status": "creating"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Creates a Redis replication group with 3 nodes.",
+        "id": "createcachereplicationgroup-1474998730655",
+        "title": "CreateCacheReplicationGroup"
+      },
+      {
+        "input": {
+          "AutoMinorVersionUpgrade": true,
+          "CacheNodeType": "cache.m3.medium",
+          "CacheParameterGroupName": "default.redis3.2.cluster.on",
+          "Engine": "redis",
+          "EngineVersion": "3.2.4",
+          "NodeGroupConfiguration": [
+            {
+              "PrimaryAvailabilityZone": "us-east-1c",
+              "ReplicaAvailabilityZones": [
+                "us-east-1b"
+              ],
+              "ReplicaCount": 1,
+              "Slots": "0-8999"
+            },
+            {
+              "PrimaryAvailabilityZone": "us-east-1a",
+              "ReplicaAvailabilityZones": [
+                "us-east-1a",
+                "us-east-1c"
+              ],
+              "ReplicaCount": 2,
+              "Slots": "9000-16383"
+            }
+          ],
+          "NumNodeGroups": 2,
+          "ReplicationGroupDescription": "A multi-sharded replication group",
+          "ReplicationGroupId": "clustered-redis-rg",
+          "SnapshotRetentionLimit": 8
+        },
+        "output": {
+          "ReplicationGroup": {
+            "AutomaticFailover": "enabled",
+            "Description": "Sharded replication group",
+            "MemberClusters": [
+              "rc-rg3-0001-001",
+              "rc-rg3-0001-002",
+              "rc-rg3-0002-001",
+              "rc-rg3-0002-002",
+              "rc-rg3-0002-003"
+            ],
+            "PendingModifiedValues": {
+            },
+            "ReplicationGroupId": "clustered-redis-rg",
+            "SnapshotRetentionLimit": 8,
+            "SnapshotWindow": "05:30-06:30",
+            "Status": "creating"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Creates a Redis (cluster mode enabled) replication group with two shards. One shard has one read replica node and the other shard has two read replicas.",
+        "id": "createreplicationgroup-1483657035585",
+        "title": "CreateReplicationGroup"
+      }
+    ],
+    "CreateSnapshot": [
+      {
+        "input": {
+          "CacheClusterId": "onenoderedis",
+          "SnapshotName": "snapshot-1"
+        },
+        "output": {
+          "Snapshot": {
+            "AutoMinorVersionUpgrade": true,
+            "CacheClusterCreateTime": "2017-02-03T15:43:36.278Z",
+            "CacheClusterId": "onenoderedis",
+            "CacheNodeType": "cache.m3.medium",
+            "CacheParameterGroupName": "default.redis3.2",
+            "CacheSubnetGroupName": "default",
+            "Engine": "redis",
+            "EngineVersion": "3.2.4",
+            "NodeSnapshots": [
+              {
+                "CacheNodeCreateTime": "2017-02-03T15:43:36.278Z",
+                "CacheNodeId": "0001",
+                "CacheSize": ""
+              }
+            ],
+            "NumCacheNodes": 1,
+            "Port": 6379,
+            "PreferredAvailabilityZone": "us-west-2c",
+            "PreferredMaintenanceWindow": "sat:08:00-sat:09:00",
+            "SnapshotName": "snapshot-1",
+            "SnapshotRetentionLimit": 1,
+            "SnapshotSource": "manual",
+            "SnapshotStatus": "creating",
+            "SnapshotWindow": "00:00-01:00",
+            "VpcId": "vpc-73c3cd17"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Creates a snapshot of a non-clustered Redis cluster that has only one node.",
+        "id": "createsnapshot-1474999681024",
+        "title": "CreateSnapshot - NonClustered Redis, no read-replicas"
+      },
+      {
+        "input": {
+          "CacheClusterId": "threenoderedis-001",
+          "SnapshotName": "snapshot-2"
+        },
+        "output": {
+          "Snapshot": {
+            "AutoMinorVersionUpgrade": true,
+            "CacheClusterCreateTime": "2017-02-03T15:43:36.278Z",
+            "CacheClusterId": "threenoderedis-001",
+            "CacheNodeType": "cache.m3.medium",
+            "CacheParameterGroupName": "default.redis3.2",
+            "CacheSubnetGroupName": "default",
+            "Engine": "redis",
+            "EngineVersion": "3.2.4",
+            "NodeSnapshots": [
+              {
+                "CacheNodeCreateTime": "2017-02-03T15:43:36.278Z",
+                "CacheNodeId": "0001",
+                "CacheSize": ""
+              }
+            ],
+            "NumCacheNodes": 1,
+            "Port": 6379,
+            "PreferredAvailabilityZone": "us-west-2c",
+            "PreferredMaintenanceWindow": "sat:08:00-sat:09:00",
+            "SnapshotName": "snapshot-2",
+            "SnapshotRetentionLimit": 1,
+            "SnapshotSource": "manual",
+            "SnapshotStatus": "creating",
+            "SnapshotWindow": "00:00-01:00",
+            "VpcId": "vpc-73c3cd17"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Creates a snapshot of a non-clustered Redis cluster that has only three nodes, primary and two read-replicas. CacheClusterId must be a specific node in the cluster.",
+        "id": "createsnapshot-1474999681024",
+        "title": "CreateSnapshot - NonClustered Redis, 2 read-replicas"
+      },
+      {
+        "input": {
+          "ReplicationGroupId": "clusteredredis",
+          "SnapshotName": "snapshot-2x5"
+        },
+        "output": {
+          "Snapshot": {
+            "AutoMinorVersionUpgrade": true,
+            "AutomaticFailover": "enabled",
+            "CacheNodeType": "cache.m3.medium",
+            "CacheParameterGroupName": "default.redis3.2.cluster.on",
+            "CacheSubnetGroupName": "default",
+            "Engine": "redis",
+            "EngineVersion": "3.2.4",
+            "NodeSnapshots": [
+              {
+                "CacheSize": "",
+                "NodeGroupId": "0001"
+              },
+              {
+                "CacheSize": "",
+                "NodeGroupId": "0002"
+              }
+            ],
+            "NumNodeGroups": 2,
+            "Port": 6379,
+            "PreferredMaintenanceWindow": "mon:09:30-mon:10:30",
+            "ReplicationGroupDescription": "Redis cluster with 2 shards.",
+            "ReplicationGroupId": "clusteredredis",
+            "SnapshotName": "snapshot-2x5",
+            "SnapshotRetentionLimit": 1,
+            "SnapshotSource": "manual",
+            "SnapshotStatus": "creating",
+            "SnapshotWindow": "12:00-13:00",
+            "VpcId": "vpc-73c3cd17"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Creates a snapshot of a clustered Redis cluster that has 2 shards, each with a primary and 4 read-replicas.",
+        "id": "createsnapshot-clustered-redis-1486144841758",
+        "title": "CreateSnapshot-clustered Redis"
+      }
+    ],
+    "DeleteCacheCluster": [
+      {
+        "input": {
+          "CacheClusterId": "my-memcached"
+        },
+        "output": {
+          "CacheCluster": {
+            "AutoMinorVersionUpgrade": true,
+            "CacheClusterCreateTime": "2016-12-22T16:05:17.314Z",
+            "CacheClusterId": "my-memcached",
+            "CacheClusterStatus": "deleting",
+            "CacheNodeType": "cache.r3.large",
+            "CacheParameterGroup": {
+              "CacheNodeIdsToReboot": [
+
+              ],
+              "CacheParameterGroupName": "default.memcached1.4",
+              "ParameterApplyStatus": "in-sync"
+            },
+            "CacheSecurityGroups": [
+
+            ],
+            "CacheSubnetGroupName": "default",
+            "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:",
+            "ConfigurationEndpoint": {
+              "Address": "my-memcached2.ameaqx.cfg.use1.cache.amazonaws.com",
+              "Port": 11211
+            },
+            "Engine": "memcached",
+            "EngineVersion": "1.4.24",
+            "NumCacheNodes": 2,
+            "PendingModifiedValues": {
+            },
+            "PreferredAvailabilityZone": "Multiple",
+            "PreferredMaintenanceWindow": "tue:07:30-tue:08:30"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Deletes an Amazon ElastiCache cluster.",
+        "id": "deletecachecluster-1475010605291",
+        "title": "DeleteCacheCluster"
+      }
+    ],
+    "DeleteCacheParameterGroup": [
+      {
+        "input": {
+          "CacheParameterGroupName": "custom-mem1-4"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Deletes the Amazon ElastiCache parameter group custom-mem1-4.",
+        "id": "deletecacheparametergroup-1475010933957",
+        "title": "DeleteCacheParameterGroup"
+      }
+    ],
+    "DeleteCacheSecurityGroup": [
+      {
+        "input": {
+          "CacheSecurityGroupName": "my-sec-group"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Deletes a cache security group.",
+        "id": "deletecachesecuritygroup-1483046967507",
+        "title": "DeleteCacheSecurityGroup"
+      }
+    ],
+    "DeleteCacheSubnetGroup": [
+      {
+        "input": {
+          "CacheSubnetGroupName": "my-subnet-group"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Deletes the Amazon ElastiCache subnet group my-subnet-group.",
+        "id": "deletecachesubnetgroup-1475011431325",
+        "title": "DeleteCacheSubnetGroup"
+      }
+    ],
+    "DeleteReplicationGroup": [
+      {
+        "input": {
+          "ReplicationGroupId": "my-redis-rg",
+          "RetainPrimaryCluster": false
+        },
+        "output": {
+          "ReplicationGroup": {
+            "AutomaticFailover": "disabled",
+            "Description": "simple redis cluster",
+            "PendingModifiedValues": {
+            },
+            "ReplicationGroupId": "my-redis-rg",
+            "Status": "deleting"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Deletes the Amazon ElastiCache replication group my-redis-rg.",
+        "id": "deletereplicationgroup-1475011641804",
+        "title": "DeleteReplicationGroup"
+      }
+    ],
+    "DeleteSnapshot": [
+      {
+        "input": {
+          "SnapshotName": "snapshot-20161212"
+        },
+        "output": {
+          "Snapshot": {
+            "AutoMinorVersionUpgrade": true,
+            "CacheClusterCreateTime": "2016-12-21T22:27:12.543Z",
+            "CacheClusterId": "my-redis5",
+            "CacheNodeType": "cache.m3.large",
+            "CacheParameterGroupName": "default.redis3.2",
+            "CacheSubnetGroupName": "default",
+            "Engine": "redis",
+            "EngineVersion": "3.2.4",
+            "NodeSnapshots": [
+              {
+                "CacheNodeCreateTime": "2016-12-21T22:27:12.543Z",
+                "CacheNodeId": "0001",
+                "CacheSize": "3 MB",
+                "SnapshotCreateTime": "2016-12-21T22:30:26Z"
+              }
+            ],
+            "NumCacheNodes": 1,
+            "Port": 6379,
+            "PreferredAvailabilityZone": "us-east-1c",
+            "PreferredMaintenanceWindow": "fri:05:30-fri:06:30",
+            "SnapshotName": "snapshot-20161212",
+            "SnapshotRetentionLimit": 7,
+            "SnapshotSource": "manual",
+            "SnapshotStatus": "deleting",
+            "SnapshotWindow": "10:00-11:00",
+            "VpcId": "vpc-91280df6"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Deletes the Redis snapshot snapshot-20160822.",
+        "id": "deletesnapshot-1475011945779",
+        "title": "DeleteSnapshot"
+      }
+    ],
+    "DescribeCacheClusters": [
+      {
+        "input": {
+          "CacheClusterId": "my-mem-cluster"
+        },
+        "output": {
+          "CacheClusters": [
+            {
+              "AutoMinorVersionUpgrade": true,
+              "CacheClusterCreateTime": "2016-12-21T21:59:43.794Z",
+              "CacheClusterId": "my-mem-cluster",
+              "CacheClusterStatus": "available",
+              "CacheNodeType": "cache.t2.medium",
+              "CacheParameterGroup": {
+                "CacheNodeIdsToReboot": [
+
+                ],
+                "CacheParameterGroupName": "default.memcached1.4",
+                "ParameterApplyStatus": "in-sync"
+              },
+              "CacheSecurityGroups": [
+
+              ],
+              "CacheSubnetGroupName": "default",
+              "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:",
+              "ConfigurationEndpoint": {
+                "Address": "my-mem-cluster.abcdef.cfg.use1.cache.amazonaws.com",
+                "Port": 11211
+              },
+              "Engine": "memcached",
+              "EngineVersion": "1.4.24",
+              "NumCacheNodes": 2,
+              "PendingModifiedValues": {
+              },
+              "PreferredAvailabilityZone": "Multiple",
+              "PreferredMaintenanceWindow": "wed:06:00-wed:07:00"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Lists the details for up to 50 cache clusters.",
+        "id": "describecacheclusters-1475012269754",
+        "title": "DescribeCacheClusters"
+      },
+      {
+        "input": {
+          "CacheClusterId": "my-mem-cluster",
+          "ShowCacheNodeInfo": true
+        },
+        "output": {
+          "CacheClusters": [
+            {
+              "AutoMinorVersionUpgrade": true,
+              "CacheClusterCreateTime": "2016-12-21T21:59:43.794Z",
+              "CacheClusterId": "my-mem-cluster",
+              "CacheClusterStatus": "available",
+              "CacheNodeType": "cache.t2.medium",
+              "CacheNodes": [
+                {
+                  "CacheNodeCreateTime": "2016-12-21T21:59:43.794Z",
+                  "CacheNodeId": "0001",
+                  "CacheNodeStatus": "available",
+                  "CustomerAvailabilityZone": "us-east-1b",
+                  "Endpoint": {
+                    "Address": "my-mem-cluster.ameaqx.0001.use1.cache.amazonaws.com",
+                    "Port": 11211
+                  },
+                  "ParameterGroupStatus": "in-sync"
+                },
+                {
+                  "CacheNodeCreateTime": "2016-12-21T21:59:43.794Z",
+                  "CacheNodeId": "0002",
+                  "CacheNodeStatus": "available",
+                  "CustomerAvailabilityZone": "us-east-1a",
+                  "Endpoint": {
+                    "Address": "my-mem-cluster.ameaqx.0002.use1.cache.amazonaws.com",
+                    "Port": 11211
+                  },
+                  "ParameterGroupStatus": "in-sync"
+                }
+              ],
+              "CacheParameterGroup": {
+                "CacheNodeIdsToReboot": [
+
+                ],
+                "CacheParameterGroupName": "default.memcached1.4",
+                "ParameterApplyStatus": "in-sync"
+              },
+              "CacheSecurityGroups": [
+
+              ],
+              "CacheSubnetGroupName": "default",
+              "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:",
+              "ConfigurationEndpoint": {
+                "Address": "my-mem-cluster.ameaqx.cfg.use1.cache.amazonaws.com",
+                "Port": 11211
+              },
+              "Engine": "memcached",
+              "EngineVersion": "1.4.24",
+              "NumCacheNodes": 2,
+              "PendingModifiedValues": {
+              },
+              "PreferredAvailabilityZone": "Multiple",
+              "PreferredMaintenanceWindow": "wed:06:00-wed:07:00"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Lists the details for the cache cluster my-mem-cluster.",
+        "id": "describecacheclusters-1475012269754",
+        "title": "DescribeCacheClusters"
+      }
+    ],
+    "DescribeCacheEngineVersions": [
+      {
+        "input": {
+        },
+        "output": {
+          "CacheEngineVersions": [
+            {
+              "CacheEngineDescription": "memcached",
+              "CacheEngineVersionDescription": "memcached version 1.4.14",
+              "CacheParameterGroupFamily": "memcached1.4",
+              "Engine": "memcached",
+              "EngineVersion": "1.4.14"
+            },
+            {
+              "CacheEngineDescription": "memcached",
+              "CacheEngineVersionDescription": "memcached version 1.4.24",
+              "CacheParameterGroupFamily": "memcached1.4",
+              "Engine": "memcached",
+              "EngineVersion": "1.4.24"
+            },
+            {
+              "CacheEngineDescription": "memcached",
+              "CacheEngineVersionDescription": "memcached version 1.4.33",
+              "CacheParameterGroupFamily": "memcached1.4",
+              "Engine": "memcached",
+              "EngineVersion": "1.4.33"
+            },
+            {
+              "CacheEngineDescription": "memcached",
+              "CacheEngineVersionDescription": "memcached version 1.4.5",
+              "CacheParameterGroupFamily": "memcached1.4",
+              "Engine": "memcached",
+              "EngineVersion": "1.4.5"
+            },
+            {
+              "CacheEngineDescription": "Redis",
+              "CacheEngineVersionDescription": "redis version 2.6.13",
+              "CacheParameterGroupFamily": "redis2.6",
+              "Engine": "redis",
+              "EngineVersion": "2.6.13"
+            },
+            {
+              "CacheEngineDescription": "Redis",
+              "CacheEngineVersionDescription": "redis version 2.8.19",
+              "CacheParameterGroupFamily": "redis2.8",
+              "Engine": "redis",
+              "EngineVersion": "2.8.19"
+            },
+            {
+              "CacheEngineDescription": "Redis",
+              "CacheEngineVersionDescription": "redis version 2.8.21",
+              "CacheParameterGroupFamily": "redis2.8",
+              "Engine": "redis",
+              "EngineVersion": "2.8.21"
+            },
+            {
+              "CacheEngineDescription": "Redis",
+              "CacheEngineVersionDescription": "redis version 2.8.22 R5",
+              "CacheParameterGroupFamily": "redis2.8",
+              "Engine": "redis",
+              "EngineVersion": "2.8.22"
+            },
+            {
+              "CacheEngineDescription": "Redis",
+              "CacheEngineVersionDescription": "redis version 2.8.23 R4",
+              "CacheParameterGroupFamily": "redis2.8",
+              "Engine": "redis",
+              "EngineVersion": "2.8.23"
+            },
+            {
+              "CacheEngineDescription": "Redis",
+              "CacheEngineVersionDescription": "redis version 2.8.24 R3",
+              "CacheParameterGroupFamily": "redis2.8",
+              "Engine": "redis",
+              "EngineVersion": "2.8.24"
+            },
+            {
+              "CacheEngineDescription": "Redis",
+              "CacheEngineVersionDescription": "redis version 2.8.6",
+              "CacheParameterGroupFamily": "redis2.8",
+              "Engine": "redis",
+              "EngineVersion": "2.8.6"
+            },
+            {
+              "CacheEngineDescription": "Redis",
+              "CacheEngineVersionDescription": "redis version 3.2.4",
+              "CacheParameterGroupFamily": "redis3.2",
+              "Engine": "redis",
+              "EngineVersion": "3.2.4"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Lists the details for up to 25 Memcached and Redis cache engine versions.",
+        "id": "describecacheengineversions-1475012638790",
+        "title": "DescribeCacheEngineVersions"
+      },
+      {
+        "input": {
+          "DefaultOnly": false,
+          "Engine": "redis",
+          "MaxRecords": 50
+        },
+        "output": {
+          "CacheEngineVersions": [
+            {
+              "CacheEngineDescription": "Redis",
+              "CacheEngineVersionDescription": "redis version 2.6.13",
+              "CacheParameterGroupFamily": "redis2.6",
+              "Engine": "redis",
+              "EngineVersion": "2.6.13"
+            },
+            {
+              "CacheEngineDescription": "Redis",
+              "CacheEngineVersionDescription": "redis version 2.8.19",
+              "CacheParameterGroupFamily": "redis2.8",
+              "Engine": "redis",
+              "EngineVersion": "2.8.19"
+            },
+            {
+              "CacheEngineDescription": "Redis",
+              "CacheEngineVersionDescription": "redis version 2.8.21",
+              "CacheParameterGroupFamily": "redis2.8",
+              "Engine": "redis",
+              "EngineVersion": "2.8.21"
+            },
+            {
+              "CacheEngineDescription": "Redis",
+              "CacheEngineVersionDescription": "redis version 2.8.22 R5",
+              "CacheParameterGroupFamily": "redis2.8",
+              "Engine": "redis",
+              "EngineVersion": "2.8.22"
+            },
+            {
+              "CacheEngineDescription": "Redis",
+              "CacheEngineVersionDescription": "redis version 2.8.23 R4",
+              "CacheParameterGroupFamily": "redis2.8",
+              "Engine": "redis",
+              "EngineVersion": "2.8.23"
+            },
+            {
+              "CacheEngineDescription": "Redis",
+              "CacheEngineVersionDescription": "redis version 2.8.24 R3",
+              "CacheParameterGroupFamily": "redis2.8",
+              "Engine": "redis",
+              "EngineVersion": "2.8.24"
+            },
+            {
+              "CacheEngineDescription": "Redis",
+              "CacheEngineVersionDescription": "redis version 2.8.6",
+              "CacheParameterGroupFamily": "redis2.8",
+              "Engine": "redis",
+              "EngineVersion": "2.8.6"
+            },
+            {
+              "CacheEngineDescription": "Redis",
+              "CacheEngineVersionDescription": "redis version 3.2.4",
+              "CacheParameterGroupFamily": "redis3.2",
+              "Engine": "redis",
+              "EngineVersion": "3.2.4"
+            }
+          ],
+          "Marker": ""
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Lists the details for up to 50 Redis cache engine versions.",
+        "id": "describecacheengineversions-1475012638790",
+        "title": "DescribeCacheEngineVersions"
+      }
+    ],
+    "DescribeCacheParameterGroups": [
+      {
+        "input": {
+          "CacheParameterGroupName": "custom-mem1-4"
+        },
+        "output": {
+          "CacheParameterGroups": [
+            {
+              "CacheParameterGroupFamily": "memcached1.4",
+              "CacheParameterGroupName": "custom-mem1-4",
+              "Description": "Custom memcache param group"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Returns a list of cache parameter group descriptions. If a cache parameter group name is specified, the list contains only the descriptions for that group.",
+        "id": "describecacheparametergroups-1483045457557",
+        "title": "DescribeCacheParameterGroups"
+      }
+    ],
+    "DescribeCacheParameters": [
+      {
+        "input": {
+          "CacheParameterGroupName": "custom-redis2-8",
+          "MaxRecords": 100,
+          "Source": "user"
+        },
+        "output": {
+          "Marker": "",
+          "Parameters": [
+            {
+              "AllowedValues": "yes,no",
+              "ChangeType": "requires-reboot",
+              "DataType": "string",
+              "Description": "Apply rehashing or not.",
+              "IsModifiable": true,
+              "MinimumEngineVersion": "2.8.6",
+              "ParameterName": "activerehashing",
+              "ParameterValue": "yes",
+              "Source": "system"
+            },
+            {
+              "AllowedValues": "always,everysec,no",
+              "ChangeType": "immediate",
+              "DataType": "string",
+              "Description": "fsync policy for AOF persistence",
+              "IsModifiable": true,
+              "MinimumEngineVersion": "2.8.6",
+              "ParameterName": "appendfsync",
+              "ParameterValue": "everysec",
+              "Source": "system"
+            },
+            {
+              "AllowedValues": "yes,no",
+              "ChangeType": "immediate",
+              "DataType": "string",
+              "Description": "Enable Redis persistence.",
+              "IsModifiable": true,
+              "MinimumEngineVersion": "2.8.6",
+              "ParameterName": "appendonly",
+              "ParameterValue": "no",
+              "Source": "system"
+            },
+            {
+              "AllowedValues": "0-",
+              "ChangeType": "immediate",
+              "DataType": "integer",
+              "Description": "Normal client output buffer hard limit in bytes.",
+              "IsModifiable": true,
+              "MinimumEngineVersion": "2.8.6",
+              "ParameterName": "client-output-buffer-limit-normal-hard-limit",
+              "ParameterValue": "0",
+              "Source": "system"
+            },
+            {
+              "AllowedValues": "0-",
+              "ChangeType": "immediate",
+              "DataType": "integer",
+              "Description": "Normal client output buffer soft limit in bytes.",
+              "IsModifiable": true,
+              "MinimumEngineVersion": "2.8.6",
+              "ParameterName": "client-output-buffer-limit-normal-soft-limit",
+              "ParameterValue": "0",
+              "Source": "system"
+            },
+            {
+              "AllowedValues": "0-",
+              "ChangeType": "immediate",
+              "DataType": "integer",
+              "Description": "Normal client output buffer soft limit in seconds.",
+              "IsModifiable": true,
+              "MinimumEngineVersion": "2.8.6",
+              "ParameterName": "client-output-buffer-limit-normal-soft-seconds",
+              "ParameterValue": "0",
+              "Source": "system"
+            },
+            {
+              "AllowedValues": "0-",
+              "ChangeType": "immediate",
+              "DataType": "integer",
+              "Description": "Pubsub client output buffer hard limit in bytes.",
+              "IsModifiable": true,
+              "MinimumEngineVersion": "2.8.6",
+              "ParameterName": "client-output-buffer-limit-pubsub-hard-limit",
+              "ParameterValue": "33554432",
+              "Source": "system"
+            },
+            {
+              "AllowedValues": "0-",
+              "ChangeType": "immediate",
+              "DataType": "integer",
+              "Description": "Pubsub client output buffer soft limit in bytes.",
+              "IsModifiable": true,
+              "MinimumEngineVersion": "2.8.6",
+              "ParameterName": "client-output-buffer-limit-pubsub-soft-limit",
+              "ParameterValue": "8388608",
+              "Source": "system"
+            },
+            {
+              "AllowedValues": "0-",
+              "ChangeType": "immediate",
+              "DataType": "integer",
+              "Description": "Pubsub client output buffer soft limit in seconds.",
+              "IsModifiable": true,
+              "MinimumEngineVersion": "2.8.6",
+              "ParameterName": "client-output-buffer-limit-pubsub-soft-seconds",
+              "ParameterValue": "60",
+              "Source": "system"
+            },
+            {
+              "AllowedValues": "0-",
+              "ChangeType": "immediate",
+              "DataType": "integer",
+              "Description": "Slave client output buffer soft limit in seconds.",
+              "IsModifiable": false,
+              "MinimumEngineVersion": "2.8.6",
+              "ParameterName": "client-output-buffer-limit-slave-soft-seconds",
+              "ParameterValue": "60",
+              "Source": "system"
+            },
+            {
+              "AllowedValues": "yes,no",
+              "ChangeType": "immediate",
+              "DataType": "string",
+              "Description": "If enabled, clients who attempt to write to a read-only slave will be disconnected. Applicable to 2.8.23 and higher.",
+              "IsModifiable": true,
+              "MinimumEngineVersion": "2.8.23",
+              "ParameterName": "close-on-slave-write",
+              "ParameterValue": "yes",
+              "Source": "system"
+            },
+            {
+              "AllowedValues": "1-1200000",
+              "ChangeType": "requires-reboot",
+              "DataType": "integer",
+              "Description": "Set the number of databases.",
+              "IsModifiable": true,
+              "MinimumEngineVersion": "2.8.6",
+              "ParameterName": "databases",
+              "ParameterValue": "16",
+              "Source": "system"
+            },
+            {
+              "AllowedValues": "0-",
+              "ChangeType": "immediate",
+              "DataType": "integer",
+              "Description": "The maximum number of hash entries in order for the dataset to be compressed.",
+              "IsModifiable": true,
+              "MinimumEngineVersion": "2.8.6",
+              "ParameterName": "hash-max-ziplist-entries",
+              "ParameterValue": "512",
+              "Source": "system"
+            },
+            {
+              "AllowedValues": "0-",
+              "ChangeType": "immediate",
+              "DataType": "integer",
+              "Description": "The threshold of biggest hash entries in order for the dataset to be compressed.",
+              "IsModifiable": true,
+              "MinimumEngineVersion": "2.8.6",
+              "ParameterName": "hash-max-ziplist-value",
+              "ParameterValue": "64",
+              "Source": "system"
+            },
+            {
+              "AllowedValues": "0-",
+              "ChangeType": "immediate",
+              "DataType": "integer",
+              "Description": "The maximum number of list entries in order for the dataset to be compressed.",
+              "IsModifiable": true,
+              "MinimumEngineVersion": "2.8.6",
+              "ParameterName": "list-max-ziplist-entries",
+              "ParameterValue": "512",
+              "Source": "system"
+            },
+            {
+              "AllowedValues": "0-",
+              "ChangeType": "immediate",
+              "DataType": "integer",
+              "Description": "The threshold of biggest list entries in order for the dataset to be compressed.",
+              "IsModifiable": true,
+              "MinimumEngineVersion": "2.8.6",
+              "ParameterName": "list-max-ziplist-value",
+              "ParameterValue": "64",
+              "Source": "system"
+            },
+            {
+              "AllowedValues": "5000",
+              "ChangeType": "immediate",
+              "DataType": "integer",
+              "Description": "Max execution time of a Lua script in milliseconds. 0 for unlimited execution without warnings.",
+              "IsModifiable": false,
+              "MinimumEngineVersion": "2.8.6",
+              "ParameterName": "lua-time-limit",
+              "ParameterValue": "5000",
+              "Source": "system"
+            },
+            {
+              "AllowedValues": "1-65000",
+              "ChangeType": "requires-reboot",
+              "DataType": "integer",
+              "Description": "The maximum number of Redis clients.",
+              "IsModifiable": false,
+              "MinimumEngineVersion": "2.8.6",
+              "ParameterName": "maxclients",
+              "ParameterValue": "65000",
+              "Source": "system"
+            },
+            {
+              "AllowedValues": "volatile-lru,allkeys-lru,volatile-random,allkeys-random,volatile-ttl,noeviction",
+              "ChangeType": "immediate",
+              "DataType": "string",
+              "Description": "Max memory policy.",
+              "IsModifiable": true,
+              "MinimumEngineVersion": "2.8.6",
+              "ParameterName": "maxmemory-policy",
+              "ParameterValue": "volatile-lru",
+              "Source": "system"
+            },
+            {
+              "AllowedValues": "1-",
+              "ChangeType": "immediate",
+              "DataType": "integer",
+              "Description": "Max memory samples.",
+              "IsModifiable": true,
+              "MinimumEngineVersion": "2.8.6",
+              "ParameterName": "maxmemory-samples",
+              "ParameterValue": "3",
+              "Source": "system"
+            },
+            {
+              "AllowedValues": "0-",
+              "ChangeType": "immediate",
+              "DataType": "integer",
+              "Description": "Maximum number of seconds within which the master must receive a ping from a slave to take writes. Use this parameter together with min-slaves-to-write to regulate when the master stops accepting writes. Setting this value to 0 means the master always takes writes.",
+              "IsModifiable": true,
+              "MinimumEngineVersion": "2.8.6",
+              "ParameterName": "min-slaves-max-lag",
+              "ParameterValue": "10",
+              "Source": "system"
+            },
+            {
+              "AllowedValues": "0-",
+              "ChangeType": "immediate",
+              "DataType": "integer",
+              "Description": "Number of slaves that must be connected in order for master to take writes. Use this parameter together with min-slaves-max-lag to regulate when the master stops accepting writes. Setting this to 0 means the master always takes writes.",
+              "IsModifiable": true,
+              "MinimumEngineVersion": "2.8.6",
+              "ParameterName": "min-slaves-to-write",
+              "ParameterValue": "0",
+              "Source": "system"
+            },
+            {
+              "ChangeType": "immediate",
+              "DataType": "string",
+              "Description": "The keyspace events for Redis to notify Pub/Sub clients about. By default all notifications are disabled",
+              "IsModifiable": true,
+              "MinimumEngineVersion": "2.8.6",
+              "ParameterName": "notify-keyspace-events",
+              "Source": "system"
+            },
+            {
+              "AllowedValues": "16384-",
+              "ChangeType": "immediate",
+              "DataType": "integer",
+              "Description": "The replication backlog size in bytes for PSYNC. This is the size of the buffer which accumulates slave data when slave is disconnected for some time, so that when slave reconnects again, only transfer the portion of data which the slave missed. Minimum value is 16K.",
+              "IsModifiable": true,
+              "MinimumEngineVersion": "2.8.6",
+              "ParameterName": "repl-backlog-size",
+              "ParameterValue": "1048576",
+              "Source": "system"
+            },
+            {
+              "AllowedValues": "0-",
+              "ChangeType": "immediate",
+              "DataType": "integer",
+              "Description": "The amount of time in seconds after the master no longer have any slaves connected for the master to free the replication backlog. A value of 0 means to never release the backlog.",
+              "IsModifiable": true,
+              "MinimumEngineVersion": "2.8.6",
+              "ParameterName": "repl-backlog-ttl",
+              "ParameterValue": "3600",
+              "Source": "system"
+            },
+            {
+              "AllowedValues": "11-",
+              "ChangeType": "immediate",
+              "DataType": "integer",
+              "Description": "The timeout in seconds for bulk transfer I/O during sync and master timeout from the perspective of the slave, and slave timeout from the perspective of the master.",
+              "IsModifiable": true,
+              "MinimumEngineVersion": "2.8.6",
+              "ParameterName": "repl-timeout",
+              "ParameterValue": "60",
+              "Source": "system"
+            },
+            {
+              "AllowedValues": "0-",
+              "ChangeType": "immediate",
+              "DataType": "integer",
+              "Description": "The amount of memory reserved for non-cache memory usage, in bytes. You may want to increase this parameter for nodes with read replicas, AOF enabled, etc, to reduce swap usage.",
+              "IsModifiable": true,
+              "MinimumEngineVersion": "2.8.6",
+              "ParameterName": "reserved-memory",
+              "ParameterValue": "0",
+              "Source": "system"
+            },
+            {
+              "AllowedValues": "0-",
+              "ChangeType": "immediate",
+              "DataType": "integer",
+              "Description": "The limit in the size of the set in order for the dataset to be compressed.",
+              "IsModifiable": true,
+              "MinimumEngineVersion": "2.8.6",
+              "ParameterName": "set-max-intset-entries",
+              "ParameterValue": "512",
+              "Source": "system"
+            },
+            {
+              "AllowedValues": "yes,no",
+              "ChangeType": "immediate",
+              "DataType": "string",
+              "Description": "Configures if chaining of slaves is allowed",
+              "IsModifiable": false,
+              "MinimumEngineVersion": "2.8.6",
+              "ParameterName": "slave-allow-chaining",
+              "ParameterValue": "no",
+              "Source": "system"
+            },
+            {
+              "AllowedValues": "-",
+              "ChangeType": "immediate",
+              "DataType": "integer",
+              "Description": "The execution time, in microseconds, to exceed in order for the command to get logged. Note that a negative number disables the slow log, while a value of zero forces the logging of every command.",
+              "IsModifiable": true,
+              "MinimumEngineVersion": "2.8.6",
+              "ParameterName": "slowlog-log-slower-than",
+              "ParameterValue": "10000",
+              "Source": "system"
+            },
+            {
+              "AllowedValues": "0-",
+              "ChangeType": "immediate",
+              "DataType": "integer",
+              "Description": "The length of the slow log. There is no limit to this length. Just be aware that it will consume memory. You can reclaim memory used by the slow log with SLOWLOG RESET.",
+              "IsModifiable": true,
+              "MinimumEngineVersion": "2.8.6",
+              "ParameterName": "slowlog-max-len",
+              "ParameterValue": "128",
+              "Source": "system"
+            },
+            {
+              "AllowedValues": "0-",
+              "ChangeType": "immediate",
+              "DataType": "integer",
+              "Description": "If non-zero, send ACKs every given number of seconds.",
+              "IsModifiable": true,
+              "MinimumEngineVersion": "2.8.6",
+              "ParameterName": "tcp-keepalive",
+              "ParameterValue": "0",
+              "Source": "system"
+            },
+            {
+              "AllowedValues": "0,20-",
+              "ChangeType": "immediate",
+              "DataType": "integer",
+              "Description": "Close connection if client is idle for a given number of seconds, or never if 0.",
+              "IsModifiable": true,
+              "MinimumEngineVersion": "2.8.6",
+              "ParameterName": "timeout",
+              "ParameterValue": "0",
+              "Source": "system"
+            },
+            {
+              "AllowedValues": "0-",
+              "ChangeType": "immediate",
+              "DataType": "integer",
+              "Description": "The maximum number of sorted set entries in order for the dataset to be compressed.",
+              "IsModifiable": true,
+              "MinimumEngineVersion": "2.8.6",
+              "ParameterName": "zset-max-ziplist-entries",
+              "ParameterValue": "128",
+              "Source": "system"
+            },
+            {
+              "AllowedValues": "0-",
+              "ChangeType": "immediate",
+              "DataType": "integer",
+              "Description": "The threshold of biggest sorted set entries in order for the dataset to be compressed.",
+              "IsModifiable": true,
+              "MinimumEngineVersion": "2.8.6",
+              "ParameterName": "zset-max-ziplist-value",
+              "ParameterValue": "64",
+              "Source": "system"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Lists up to 100 user parameter values for the parameter group custom.redis2.8.",
+        "id": "describecacheparameters-1475013576900",
+        "title": "DescribeCacheParameters"
+      }
+    ],
+    "DescribeCacheSecurityGroups": [
+      {
+        "input": {
+          "CacheSecurityGroupName": "my-sec-group"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Returns a list of cache security group descriptions. If a cache security group name is specified, the list contains only the description of that group.",
+        "id": "describecachesecuritygroups-1483047200801",
+        "title": "DescribeCacheSecurityGroups"
+      }
+    ],
+    "DescribeCacheSubnetGroups": [
+      {
+        "input": {
+          "MaxRecords": 25
+        },
+        "output": {
+          "CacheSubnetGroups": [
+            {
+              "CacheSubnetGroupDescription": "Default CacheSubnetGroup",
+              "CacheSubnetGroupName": "default",
+              "Subnets": [
+                {
+                  "SubnetAvailabilityZone": {
+                    "Name": "us-east-1a"
+                  },
+                  "SubnetIdentifier": "subnet-1a2b3c4d"
+                },
+                {
+                  "SubnetAvailabilityZone": {
+                    "Name": "us-east-1c"
+                  },
+                  "SubnetIdentifier": "subnet-a1b2c3d4"
+                },
+                {
+                  "SubnetAvailabilityZone": {
+                    "Name": "us-east-1e"
+                  },
+                  "SubnetIdentifier": "subnet-abcd1234"
+                },
+                {
+                  "SubnetAvailabilityZone": {
+                    "Name": "us-east-1b"
+                  },
+                  "SubnetIdentifier": "subnet-1234abcd"
+                }
+              ],
+              "VpcId": "vpc-91280df6"
+            }
+          ],
+          "Marker": ""
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Describes up to 25 cache subnet groups.",
+        "id": "describecachesubnetgroups-1482439214064",
+        "title": "DescribeCacheSubnetGroups"
+      }
+    ],
+    "DescribeEngineDefaultParameters": [
+      {
+        "input": {
+          "CacheParameterGroupFamily": "redis2.8",
+          "MaxRecords": 25
+        },
+        "output": {
+          "EngineDefaults": {
+            "CacheNodeTypeSpecificParameters": [
+              {
+                "AllowedValues": "0-",
+                "CacheNodeTypeSpecificValues": [
+                  {
+                    "CacheNodeType": "cache.c1.xlarge",
+                    "Value": "650117120"
+                  },
+                  {
+                    "CacheNodeType": "cache.m1.large",
+                    "Value": "702545920"
+                  },
+                  {
+                    "CacheNodeType": "cache.m1.medium",
+                    "Value": "309329920"
+                  },
+                  {
+                    "CacheNodeType": "cache.m1.small",
+                    "Value": "94371840"
+                  },
+                  {
+                    "CacheNodeType": "cache.m1.xlarge",
+                    "Value": "1488977920"
+                  },
+                  {
+                    "CacheNodeType": "cache.m2.2xlarge",
+                    "Value": "3502243840"
+                  },
+                  {
+                    "CacheNodeType": "cache.m2.4xlarge",
+                    "Value": "7088373760"
+                  },
+                  {
+                    "CacheNodeType": "cache.m2.xlarge",
+                    "Value": "1709178880"
+                  },
+                  {
+                    "CacheNodeType": "cache.m3.2xlarge",
+                    "Value": "2998927360"
+                  },
+                  {
+                    "CacheNodeType": "cache.m3.large",
+                    "Value": "650117120"
+                  },
+                  {
+                    "CacheNodeType": "cache.m3.medium",
+                    "Value": "309329920"
+                  },
+                  {
+                    "CacheNodeType": "cache.m3.xlarge",
+                    "Value": "1426063360"
+                  },
+                  {
+                    "CacheNodeType": "cache.m4.10xlarge",
+                    "Value": "16604761424"
+                  },
+                  {
+                    "CacheNodeType": "cache.m4.2xlarge",
+                    "Value": "3188912636"
+                  },
+                  {
+                    "CacheNodeType": "cache.m4.4xlarge",
+                    "Value": "6525729063"
+                  },
+                  {
+                    "CacheNodeType": "cache.m4.large",
+                    "Value": "689259315"
+                  },
+                  {
+                    "CacheNodeType": "cache.m4.xlarge",
+                    "Value": "1532850176"
+                  },
+                  {
+                    "CacheNodeType": "cache.r3.2xlarge",
+                    "Value": "6081740800"
+                  },
+                  {
+                    "CacheNodeType": "cache.r3.4xlarge",
+                    "Value": "12268339200"
+                  },
+                  {
+                    "CacheNodeType": "cache.r3.8xlarge",
+                    "Value": "24536678400"
+                  },
+                  {
+                    "CacheNodeType": "cache.r3.large",
+                    "Value": "1468006400"
+                  },
+                  {
+                    "CacheNodeType": "cache.r3.xlarge",
+                    "Value": "3040870400"
+                  },
+                  {
+                    "CacheNodeType": "cache.t1.micro",
+                    "Value": "14260633"
+                  },
+                  {
+                    "CacheNodeType": "cache.t2.medium",
+                    "Value": "346134937"
+                  },
+                  {
+                    "CacheNodeType": "cache.t2.micro",
+                    "Value": "58195968"
+                  },
+                  {
+                    "CacheNodeType": "cache.t2.small",
+                    "Value": "166513868"
+                  }
+                ],
+                "ChangeType": "immediate",
+                "DataType": "integer",
+                "Description": "Slave client output buffer hard limit in bytes.",
+                "IsModifiable": false,
+                "MinimumEngineVersion": "2.8.6",
+                "ParameterName": "client-output-buffer-limit-slave-hard-limit",
+                "Source": "system"
+              },
+              {
+                "AllowedValues": "0-",
+                "CacheNodeTypeSpecificValues": [
+                  {
+                    "CacheNodeType": "cache.c1.xlarge",
+                    "Value": "650117120"
+                  },
+                  {
+                    "CacheNodeType": "cache.m1.large",
+                    "Value": "702545920"
+                  },
+                  {
+                    "CacheNodeType": "cache.m1.medium",
+                    "Value": "309329920"
+                  },
+                  {
+                    "CacheNodeType": "cache.m1.small",
+                    "Value": "94371840"
+                  },
+                  {
+                    "CacheNodeType": "cache.m1.xlarge",
+                    "Value": "1488977920"
+                  },
+                  {
+                    "CacheNodeType": "cache.m2.2xlarge",
+                    "Value": "3502243840"
+                  },
+                  {
+                    "CacheNodeType": "cache.m2.4xlarge",
+                    "Value": "7088373760"
+                  },
+                  {
+                    "CacheNodeType": "cache.m2.xlarge",
+                    "Value": "1709178880"
+                  },
+                  {
+                    "CacheNodeType": "cache.m3.2xlarge",
+                    "Value": "2998927360"
+                  },
+                  {
+                    "CacheNodeType": "cache.m3.large",
+                    "Value": "650117120"
+                  },
+                  {
+                    "CacheNodeType": "cache.m3.medium",
+                    "Value": "309329920"
+                  },
+                  {
+                    "CacheNodeType": "cache.m3.xlarge",
+                    "Value": "1426063360"
+                  },
+                  {
+                    "CacheNodeType": "cache.m4.10xlarge",
+                    "Value": "16604761424"
+                  },
+                  {
+                    "CacheNodeType": "cache.m4.2xlarge",
+                    "Value": "3188912636"
+                  },
+                  {
+                    "CacheNodeType": "cache.m4.4xlarge",
+                    "Value": "6525729063"
+                  },
+                  {
+                    "CacheNodeType": "cache.m4.large",
+                    "Value": "689259315"
+                  },
+                  {
+                    "CacheNodeType": "cache.m4.xlarge",
+                    "Value": "1532850176"
+                  },
+                  {
+                    "CacheNodeType": "cache.r3.2xlarge",
+                    "Value": "6081740800"
+                  },
+                  {
+                    "CacheNodeType": "cache.r3.4xlarge",
+                    "Value": "12268339200"
+                  },
+                  {
+                    "CacheNodeType": "cache.r3.8xlarge",
+                    "Value": "24536678400"
+                  },
+                  {
+                    "CacheNodeType": "cache.r3.large",
+                    "Value": "1468006400"
+                  },
+                  {
+                    "CacheNodeType": "cache.r3.xlarge",
+                    "Value": "3040870400"
+                  },
+                  {
+                    "CacheNodeType": "cache.t1.micro",
+                    "Value": "14260633"
+                  },
+                  {
+                    "CacheNodeType": "cache.t2.medium",
+                    "Value": "346134937"
+                  },
+                  {
+                    "CacheNodeType": "cache.t2.micro",
+                    "Value": "58195968"
+                  },
+                  {
+                    "CacheNodeType": "cache.t2.small",
+                    "Value": "166513868"
+                  }
+                ],
+                "ChangeType": "immediate",
+                "DataType": "integer",
+                "Description": "Slave client output buffer soft limit in bytes.",
+                "IsModifiable": false,
+                "MinimumEngineVersion": "2.8.6",
+                "ParameterName": "client-output-buffer-limit-slave-soft-limit",
+                "Source": "system"
+              },
+              {
+                "AllowedValues": "0-",
+                "CacheNodeTypeSpecificValues": [
+                  {
+                    "CacheNodeType": "cache.c1.xlarge",
+                    "Value": "6501171200"
+                  },
+                  {
+                    "CacheNodeType": "cache.m1.large",
+                    "Value": "7025459200"
+                  },
+                  {
+                    "CacheNodeType": "cache.m1.medium",
+                    "Value": "3093299200"
+                  },
+                  {
+                    "CacheNodeType": "cache.m1.small",
+                    "Value": "943718400"
+                  },
+                  {
+                    "CacheNodeType": "cache.m1.xlarge",
+                    "Value": "14889779200"
+                  },
+                  {
+                    "CacheNodeType": "cache.m2.2xlarge",
+                    "Value": "35022438400"
+                  },
+                  {
+                    "CacheNodeType": "cache.m2.4xlarge",
+                    "Value": "70883737600"
+                  },
+                  {
+                    "CacheNodeType": "cache.m2.xlarge",
+                    "Value": "17091788800"
+                  },
+                  {
+                    "CacheNodeType": "cache.m3.2xlarge",
+                    "Value": "29989273600"
+                  },
+                  {
+                    "CacheNodeType": "cache.m3.large",
+                    "Value": "6501171200"
+                  },
+                  {
+                    "CacheNodeType": "cache.m3.medium",
+                    "Value": "2988441600"
+                  },
+                  {
+                    "CacheNodeType": "cache.m3.xlarge",
+                    "Value": "14260633600"
+                  },
+                  {
+                    "CacheNodeType": "cache.m4.10xlarge",
+                    "Value": "166047614239"
+                  },
+                  {
+                    "CacheNodeType": "cache.m4.2xlarge",
+                    "Value": "31889126359"
+                  },
+                  {
+                    "CacheNodeType": "cache.m4.4xlarge",
+                    "Value": "65257290629"
+                  },
+                  {
+                    "CacheNodeType": "cache.m4.large",
+                    "Value": "6892593152"
+                  },
+                  {
+                    "CacheNodeType": "cache.m4.xlarge",
+                    "Value": "15328501760"
+                  },
+                  {
+                    "CacheNodeType": "cache.r3.2xlarge",
+                    "Value": "62495129600"
+                  },
+                  {
+                    "CacheNodeType": "cache.r3.4xlarge",
+                    "Value": "126458265600"
+                  },
+                  {
+                    "CacheNodeType": "cache.r3.8xlarge",
+                    "Value": "254384537600"
+                  },
+                  {
+                    "CacheNodeType": "cache.r3.large",
+                    "Value": "14470348800"
+                  },
+                  {
+                    "CacheNodeType": "cache.r3.xlarge",
+                    "Value": "30513561600"
+                  },
+                  {
+                    "CacheNodeType": "cache.t1.micro",
+                    "Value": "142606336"
+                  },
+                  {
+                    "CacheNodeType": "cache.t2.medium",
+                    "Value": "3461349376"
+                  },
+                  {
+                    "CacheNodeType": "cache.t2.micro",
+                    "Value": "581959680"
+                  },
+                  {
+                    "CacheNodeType": "cache.t2.small",
+                    "Value": "1665138688"
+                  }
+                ],
+                "ChangeType": "immediate",
+                "DataType": "integer",
+                "Description": "The maximum configurable amount of memory to use to store items, in bytes.",
+                "IsModifiable": false,
+                "MinimumEngineVersion": "2.8.6",
+                "ParameterName": "maxmemory",
+                "Source": "system"
+              }
+            ],
+            "CacheParameterGroupFamily": "redis2.8",
+            "Marker": "bWluLXNsYXZlcy10by13cml0ZQ==",
+            "Parameters": [
+              {
+                "AllowedValues": "yes,no",
+                "ChangeType": "requires-reboot",
+                "DataType": "string",
+                "Description": "Apply rehashing or not.",
+                "IsModifiable": true,
+                "MinimumEngineVersion": "2.8.6",
+                "ParameterName": "activerehashing",
+                "ParameterValue": "yes",
+                "Source": "system"
+              },
+              {
+                "AllowedValues": "always,everysec,no",
+                "ChangeType": "immediate",
+                "DataType": "string",
+                "Description": "fsync policy for AOF persistence",
+                "IsModifiable": true,
+                "MinimumEngineVersion": "2.8.6",
+                "ParameterName": "appendfsync",
+                "ParameterValue": "everysec",
+                "Source": "system"
+              },
+              {
+                "AllowedValues": "yes,no",
+                "ChangeType": "immediate",
+                "DataType": "string",
+                "Description": "Enable Redis persistence.",
+                "IsModifiable": true,
+                "MinimumEngineVersion": "2.8.6",
+                "ParameterName": "appendonly",
+                "ParameterValue": "no",
+                "Source": "system"
+              },
+              {
+                "AllowedValues": "0-",
+                "ChangeType": "immediate",
+                "DataType": "integer",
+                "Description": "Normal client output buffer hard limit in bytes.",
+                "IsModifiable": true,
+                "MinimumEngineVersion": "2.8.6",
+                "ParameterName": "client-output-buffer-limit-normal-hard-limit",
+                "ParameterValue": "0",
+                "Source": "system"
+              },
+              {
+                "AllowedValues": "0-",
+                "ChangeType": "immediate",
+                "DataType": "integer",
+                "Description": "Normal client output buffer soft limit in bytes.",
+                "IsModifiable": true,
+                "MinimumEngineVersion": "2.8.6",
+                "ParameterName": "client-output-buffer-limit-normal-soft-limit",
+                "ParameterValue": "0",
+                "Source": "system"
+              },
+              {
+                "AllowedValues": "0-",
+                "ChangeType": "immediate",
+                "DataType": "integer",
+                "Description": "Normal client output buffer soft limit in seconds.",
+                "IsModifiable": true,
+                "MinimumEngineVersion": "2.8.6",
+                "ParameterName": "client-output-buffer-limit-normal-soft-seconds",
+                "ParameterValue": "0",
+                "Source": "system"
+              },
+              {
+                "AllowedValues": "0-",
+                "ChangeType": "immediate",
+                "DataType": "integer",
+                "Description": "Pubsub client output buffer hard limit in bytes.",
+                "IsModifiable": true,
+                "MinimumEngineVersion": "2.8.6",
+                "ParameterName": "client-output-buffer-limit-pubsub-hard-limit",
+                "ParameterValue": "33554432",
+                "Source": "system"
+              },
+              {
+                "AllowedValues": "0-",
+                "ChangeType": "immediate",
+                "DataType": "integer",
+                "Description": "Pubsub client output buffer soft limit in bytes.",
+                "IsModifiable": true,
+                "MinimumEngineVersion": "2.8.6",
+                "ParameterName": "client-output-buffer-limit-pubsub-soft-limit",
+                "ParameterValue": "8388608",
+                "Source": "system"
+              },
+              {
+                "AllowedValues": "0-",
+                "ChangeType": "immediate",
+                "DataType": "integer",
+                "Description": "Pubsub client output buffer soft limit in seconds.",
+                "IsModifiable": true,
+                "MinimumEngineVersion": "2.8.6",
+                "ParameterName": "client-output-buffer-limit-pubsub-soft-seconds",
+                "ParameterValue": "60",
+                "Source": "system"
+              },
+              {
+                "AllowedValues": "0-",
+                "ChangeType": "immediate",
+                "DataType": "integer",
+                "Description": "Slave client output buffer soft limit in seconds.",
+                "IsModifiable": false,
+                "MinimumEngineVersion": "2.8.6",
+                "ParameterName": "client-output-buffer-limit-slave-soft-seconds",
+                "ParameterValue": "60",
+                "Source": "system"
+              },
+              {
+                "AllowedValues": "yes,no",
+                "ChangeType": "immediate",
+                "DataType": "string",
+                "Description": "If enabled, clients who attempt to write to a read-only slave will be disconnected. Applicable to 2.8.23 and higher.",
+                "IsModifiable": true,
+                "MinimumEngineVersion": "2.8.23",
+                "ParameterName": "close-on-slave-write",
+                "ParameterValue": "yes",
+                "Source": "system"
+              },
+              {
+                "AllowedValues": "1-1200000",
+                "ChangeType": "requires-reboot",
+                "DataType": "integer",
+                "Description": "Set the number of databases.",
+                "IsModifiable": true,
+                "MinimumEngineVersion": "2.8.6",
+                "ParameterName": "databases",
+                "ParameterValue": "16",
+                "Source": "system"
+              },
+              {
+                "AllowedValues": "0-",
+                "ChangeType": "immediate",
+                "DataType": "integer",
+                "Description": "The maximum number of hash entries in order for the dataset to be compressed.",
+                "IsModifiable": true,
+                "MinimumEngineVersion": "2.8.6",
+                "ParameterName": "hash-max-ziplist-entries",
+                "ParameterValue": "512",
+                "Source": "system"
+              },
+              {
+                "AllowedValues": "0-",
+                "ChangeType": "immediate",
+                "DataType": "integer",
+                "Description": "The threshold of biggest hash entries in order for the dataset to be compressed.",
+                "IsModifiable": true,
+                "MinimumEngineVersion": "2.8.6",
+                "ParameterName": "hash-max-ziplist-value",
+                "ParameterValue": "64",
+                "Source": "system"
+              },
+              {
+                "AllowedValues": "0-",
+                "ChangeType": "immediate",
+                "DataType": "integer",
+                "Description": "The maximum number of list entries in order for the dataset to be compressed.",
+                "IsModifiable": true,
+                "MinimumEngineVersion": "2.8.6",
+                "ParameterName": "list-max-ziplist-entries",
+                "ParameterValue": "512",
+                "Source": "system"
+              },
+              {
+                "AllowedValues": "0-",
+                "ChangeType": "immediate",
+                "DataType": "integer",
+                "Description": "The threshold of biggest list entries in order for the dataset to be compressed.",
+                "IsModifiable": true,
+                "MinimumEngineVersion": "2.8.6",
+                "ParameterName": "list-max-ziplist-value",
+                "ParameterValue": "64",
+                "Source": "system"
+              },
+              {
+                "AllowedValues": "5000",
+                "ChangeType": "immediate",
+                "DataType": "integer",
+                "Description": "Max execution time of a Lua script in milliseconds. 0 for unlimited execution without warnings.",
+                "IsModifiable": false,
+                "MinimumEngineVersion": "2.8.6",
+                "ParameterName": "lua-time-limit",
+                "ParameterValue": "5000",
+                "Source": "system"
+              },
+              {
+                "AllowedValues": "1-65000",
+                "ChangeType": "requires-reboot",
+                "DataType": "integer",
+                "Description": "The maximum number of Redis clients.",
+                "IsModifiable": false,
+                "MinimumEngineVersion": "2.8.6",
+                "ParameterName": "maxclients",
+                "ParameterValue": "65000",
+                "Source": "system"
+              },
+              {
+                "AllowedValues": "volatile-lru,allkeys-lru,volatile-random,allkeys-random,volatile-ttl,noeviction",
+                "ChangeType": "immediate",
+                "DataType": "string",
+                "Description": "Max memory policy.",
+                "IsModifiable": true,
+                "MinimumEngineVersion": "2.8.6",
+                "ParameterName": "maxmemory-policy",
+                "ParameterValue": "volatile-lru",
+                "Source": "system"
+              },
+              {
+                "AllowedValues": "1-",
+                "ChangeType": "immediate",
+                "DataType": "integer",
+                "Description": "Max memory samples.",
+                "IsModifiable": true,
+                "MinimumEngineVersion": "2.8.6",
+                "ParameterName": "maxmemory-samples",
+                "ParameterValue": "3",
+                "Source": "system"
+              },
+              {
+                "AllowedValues": "0-",
+                "ChangeType": "immediate",
+                "DataType": "integer",
+                "Description": "Maximum number of seconds within which the master must receive a ping from a slave to take writes. Use this parameter together with min-slaves-to-write to regulate when the master stops accepting writes. Setting this value to 0 means the master always takes writes.",
+                "IsModifiable": true,
+                "MinimumEngineVersion": "2.8.6",
+                "ParameterName": "min-slaves-max-lag",
+                "ParameterValue": "10",
+                "Source": "system"
+              },
+              {
+                "AllowedValues": "0-",
+                "ChangeType": "immediate",
+                "DataType": "integer",
+                "Description": "Number of slaves that must be connected in order for master to take writes. Use this parameter together with min-slaves-max-lag to regulate when the master stops accepting writes. Setting this to 0 means the master always takes writes.",
+                "IsModifiable": true,
+                "MinimumEngineVersion": "2.8.6",
+                "ParameterName": "min-slaves-to-write",
+                "ParameterValue": "0",
+                "Source": "system"
+              }
+            ]
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Returns the default engine and system parameter information for the specified cache engine.",
+        "id": "describeenginedefaultparameters-1481738057686",
+        "title": "DescribeEngineDefaultParameters"
+      }
+    ],
+    "DescribeEvents": [
+      {
+        "input": {
+          "Duration": 360,
+          "SourceType": "cache-cluster"
+        },
+        "output": {
+          "Events": [
+            {
+              "Date": "2016-12-22T16:27:56.088Z",
+              "Message": "Added cache node 0001 in availability zone us-east-1e",
+              "SourceIdentifier": "redis-cluster",
+              "SourceType": "cache-cluster"
+            },
+            {
+              "Date": "2016-12-22T16:27:56.078Z",
+              "Message": "Cache cluster created",
+              "SourceIdentifier": "redis-cluster",
+              "SourceType": "cache-cluster"
+            },
+            {
+              "Date": "2016-12-22T16:05:17.326Z",
+              "Message": "Added cache node 0002 in availability zone us-east-1c",
+              "SourceIdentifier": "my-memcached2",
+              "SourceType": "cache-cluster"
+            },
+            {
+              "Date": "2016-12-22T16:05:17.323Z",
+              "Message": "Added cache node 0001 in availability zone us-east-1e",
+              "SourceIdentifier": "my-memcached2",
+              "SourceType": "cache-cluster"
+            },
+            {
+              "Date": "2016-12-22T16:05:17.314Z",
+              "Message": "Cache cluster created",
+              "SourceIdentifier": "my-memcached2",
+              "SourceType": "cache-cluster"
+            }
+          ],
+          "Marker": ""
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Describes all the cache-cluster events for the past 120 minutes.",
+        "id": "describeevents-1481843894757",
+        "title": "DescribeEvents"
+      },
+      {
+        "input": {
+          "StartTime": "2016-12-22T15:00:00.000Z"
+        },
+        "output": {
+          "Events": [
+            {
+              "Date": "2016-12-22T21:35:46.674Z",
+              "Message": "Snapshot succeeded for snapshot with ID 'cr-bkup' of replication group with ID 'clustered-redis'",
+              "SourceIdentifier": "clustered-redis-0001-001",
+              "SourceType": "cache-cluster"
+            },
+            {
+              "Date": "2016-12-22T16:27:56.088Z",
+              "Message": "Added cache node 0001 in availability zone us-east-1e",
+              "SourceIdentifier": "redis-cluster",
+              "SourceType": "cache-cluster"
+            },
+            {
+              "Date": "2016-12-22T16:27:56.078Z",
+              "Message": "Cache cluster created",
+              "SourceIdentifier": "redis-cluster",
+              "SourceType": "cache-cluster"
+            },
+            {
+              "Date": "2016-12-22T16:05:17.326Z",
+              "Message": "Added cache node 0002 in availability zone us-east-1c",
+              "SourceIdentifier": "my-memcached2",
+              "SourceType": "cache-cluster"
+            },
+            {
+              "Date": "2016-12-22T16:05:17.323Z",
+              "Message": "Added cache node 0001 in availability zone us-east-1e",
+              "SourceIdentifier": "my-memcached2",
+              "SourceType": "cache-cluster"
+            },
+            {
+              "Date": "2016-12-22T16:05:17.314Z",
+              "Message": "Cache cluster created",
+              "SourceIdentifier": "my-memcached2",
+              "SourceType": "cache-cluster"
+            }
+          ],
+          "Marker": ""
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Describes all the replication-group events from 3:00P to 5:00P on November 11, 2016.",
+        "id": "describeevents-1481843894757",
+        "title": "DescribeEvents"
+      }
+    ],
+    "DescribeReplicationGroups": [
+      {
+        "input": {
+        },
+        "output": {
+          "Marker": "",
+          "ReplicationGroups": [
+            {
+              "AutomaticFailover": "enabled",
+              "Description": "Test cluster",
+              "MemberClusters": [
+                "clustered-redis-0001-001",
+                "clustered-redis-0001-002",
+                "clustered-redis-0002-001",
+                "clustered-redis-0002-002"
+              ],
+              "NodeGroups": [
+                {
+                  "NodeGroupId": "0001",
+                  "NodeGroupMembers": [
+                    {
+                      "CacheClusterId": "clustered-redis-0001-001",
+                      "CacheNodeId": "0001",
+                      "PreferredAvailabilityZone": "us-east-1e"
+                    },
+                    {
+                      "CacheClusterId": "clustered-redis-0001-002",
+                      "CacheNodeId": "0001",
+                      "PreferredAvailabilityZone": "us-east-1c"
+                    }
+                  ],
+                  "Status": "available"
+                },
+                {
+                  "NodeGroupId": "0002",
+                  "NodeGroupMembers": [
+                    {
+                      "CacheClusterId": "clustered-redis-0002-001",
+                      "CacheNodeId": "0001",
+                      "PreferredAvailabilityZone": "us-east-1c"
+                    },
+                    {
+                      "CacheClusterId": "clustered-redis-0002-002",
+                      "CacheNodeId": "0001",
+                      "PreferredAvailabilityZone": "us-east-1b"
+                    }
+                  ],
+                  "Status": "available"
+                }
+              ],
+              "PendingModifiedValues": {
+              },
+              "ReplicationGroupId": "clustered-redis",
+              "Status": "available"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Returns information about the replication group myreplgroup.",
+        "id": "describereplicationgroups-1481742639427",
+        "title": "DescribeReplicationGroups"
+      }
+    ],
+    "DescribeReservedCacheNodes": [
+      {
+        "input": {
+          "MaxRecords": 25
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Returns information about reserved cache nodes for this account, or about a specified reserved cache node. If the account has no reserved cache nodes, the operation returns an empty list, as shown here.",
+        "id": "describereservedcachenodes-1481742348045",
+        "title": "DescribeReservedCacheNodes"
+      }
+    ],
+    "DescribeReservedCacheNodesOfferings": [
+      {
+        "input": {
+          "MaxRecords": 20
+        },
+        "output": {
+          "Marker": "1ef01f5b-433f-94ff-a530-61a56bfc8e7a",
+          "ReservedCacheNodesOfferings": [
+            {
+              "CacheNodeType": "cache.m1.small",
+              "Duration": 94608000,
+              "FixedPrice": 157.0,
+              "OfferingType": "Medium Utilization",
+              "ProductDescription": "memcached",
+              "RecurringCharges": [
+
+              ],
+              "ReservedCacheNodesOfferingId": "0167633d-37f6-4222-b872-b1f22eb79ba4",
+              "UsagePrice": 0.017
+            },
+            {
+              "CacheNodeType": "cache.m4.xlarge",
+              "Duration": 94608000,
+              "FixedPrice": 1248.0,
+              "OfferingType": "Heavy Utilization",
+              "ProductDescription": "redis",
+              "RecurringCharges": [
+                {
+                  "RecurringChargeAmount": 0.077,
+                  "RecurringChargeFrequency": "Hourly"
+                }
+              ],
+              "ReservedCacheNodesOfferingId": "02c04e13-baca-4e71-9ceb-620eed94827d",
+              "UsagePrice": 0.0
+            },
+            {
+              "CacheNodeType": "cache.m2.4xlarge",
+              "Duration": 94608000,
+              "FixedPrice": 2381.0,
+              "OfferingType": "Medium Utilization",
+              "ProductDescription": "memcached",
+              "RecurringCharges": [
+
+              ],
+              "ReservedCacheNodesOfferingId": "02e1755e-76e8-48e3-8d82-820a5726a458",
+              "UsagePrice": 0.276
+            },
+            {
+              "CacheNodeType": "cache.m1.small",
+              "Duration": 94608000,
+              "FixedPrice": 188.0,
+              "OfferingType": "Heavy Utilization",
+              "ProductDescription": "redis",
+              "RecurringCharges": [
+                {
+                  "RecurringChargeAmount": 0.013,
+                  "RecurringChargeFrequency": "Hourly"
+                }
+              ],
+              "ReservedCacheNodesOfferingId": "03315215-7b87-421a-a3dd-785021e4113f",
+              "UsagePrice": 0.0
+            },
+            {
+              "CacheNodeType": "cache.m4.10xlarge",
+              "Duration": 31536000,
+              "FixedPrice": 6158.0,
+              "OfferingType": "Heavy Utilization",
+              "ProductDescription": "redis",
+              "RecurringCharges": [
+                {
+                  "RecurringChargeAmount": 1.125,
+                  "RecurringChargeFrequency": "Hourly"
+                }
+              ],
+              "ReservedCacheNodesOfferingId": "05ffbb44-2ace-4476-a2a5-8ec99f866fb3",
+              "UsagePrice": 0.0
+            },
+            {
+              "CacheNodeType": "cache.m1.small",
+              "Duration": 31536000,
+              "FixedPrice": 101.0,
+              "OfferingType": "Medium Utilization",
+              "ProductDescription": "redis",
+              "RecurringCharges": [
+
+              ],
+              "ReservedCacheNodesOfferingId": "065c71ae-4a4e-4f1e-bebf-37525f4c6cb2",
+              "UsagePrice": 0.023
+            },
+            {
+              "CacheNodeType": "cache.m1.medium",
+              "Duration": 94608000,
+              "FixedPrice": 314.0,
+              "OfferingType": "Medium Utilization",
+              "ProductDescription": "memcached",
+              "RecurringCharges": [
+
+              ],
+              "ReservedCacheNodesOfferingId": "06774b12-7f5e-48c1-907a-f286c63f327d",
+              "UsagePrice": 0.034
+            },
+            {
+              "CacheNodeType": "cache.m2.xlarge",
+              "Duration": 31536000,
+              "FixedPrice": 163.0,
+              "OfferingType": "Light Utilization",
+              "ProductDescription": "memcached",
+              "RecurringCharges": [
+
+              ],
+              "ReservedCacheNodesOfferingId": "0924ac6b-847f-4761-ba6b-4290b2adf719",
+              "UsagePrice": 0.137
+            },
+            {
+              "CacheNodeType": "cache.m2.xlarge",
+              "Duration": 94608000,
+              "FixedPrice": 719.0,
+              "OfferingType": "Heavy Utilization",
+              "ProductDescription": "redis",
+              "RecurringCharges": [
+                {
+                  "RecurringChargeAmount": 0.049,
+                  "RecurringChargeFrequency": "Hourly"
+                }
+              ],
+              "ReservedCacheNodesOfferingId": "09eeb126-69b6-4d3f-8f94-ca3510629f53",
+              "UsagePrice": 0.0
+            },
+            {
+              "CacheNodeType": "cache.r3.2xlarge",
+              "Duration": 94608000,
+              "FixedPrice": 4132.0,
+              "OfferingType": "Heavy Utilization",
+              "ProductDescription": "redis",
+              "RecurringCharges": [
+                {
+                  "RecurringChargeAmount": 0.182,
+                  "RecurringChargeFrequency": "Hourly"
+                }
+              ],
+              "ReservedCacheNodesOfferingId": "0a516ad8-557f-4310-9dd0-2448c2ff4d62",
+              "UsagePrice": 0.0
+            },
+            {
+              "CacheNodeType": "cache.c1.xlarge",
+              "Duration": 94608000,
+              "FixedPrice": 875.0,
+              "OfferingType": "Light Utilization",
+              "ProductDescription": "memcached",
+              "RecurringCharges": [
+
+              ],
+              "ReservedCacheNodesOfferingId": "0b0c1cc5-2177-4150-95d7-c67ec34dcb19",
+              "UsagePrice": 0.363
+            },
+            {
+              "CacheNodeType": "cache.m4.10xlarge",
+              "Duration": 94608000,
+              "FixedPrice": 12483.0,
+              "OfferingType": "Heavy Utilization",
+              "ProductDescription": "memcached",
+              "RecurringCharges": [
+                {
+                  "RecurringChargeAmount": 0.76,
+                  "RecurringChargeFrequency": "Hourly"
+                }
+              ],
+              "ReservedCacheNodesOfferingId": "0c2b139b-1cff-43d0-8fba-0c753f9b1950",
+              "UsagePrice": 0.0
+            },
+            {
+              "CacheNodeType": "cache.c1.xlarge",
+              "Duration": 31536000,
+              "FixedPrice": 1620.0,
+              "OfferingType": "Heavy Utilization",
+              "ProductDescription": "memcached",
+              "RecurringCharges": [
+                {
+                  "RecurringChargeAmount": 0.207,
+                  "RecurringChargeFrequency": "Hourly"
+                }
+              ],
+              "ReservedCacheNodesOfferingId": "0c52115b-38cb-47a2-8dbc-e02e40b6a13f",
+              "UsagePrice": 0.0
+            },
+            {
+              "CacheNodeType": "cache.m2.4xlarge",
+              "Duration": 94608000,
+              "FixedPrice": 2381.0,
+              "OfferingType": "Medium Utilization",
+              "ProductDescription": "redis",
+              "RecurringCharges": [
+
+              ],
+              "ReservedCacheNodesOfferingId": "12fcb19c-5416-4e1d-934f-28f1e2cb8599",
+              "UsagePrice": 0.276
+            },
+            {
+              "CacheNodeType": "cache.m4.xlarge",
+              "Duration": 31536000,
+              "FixedPrice": 616.0,
+              "OfferingType": "Heavy Utilization",
+              "ProductDescription": "memcached",
+              "RecurringCharges": [
+                {
+                  "RecurringChargeAmount": 0.112,
+                  "RecurringChargeFrequency": "Hourly"
+                }
+              ],
+              "ReservedCacheNodesOfferingId": "13af20ad-914d-4d8b-9763-fa2e565f3549",
+              "UsagePrice": 0.0
+            },
+            {
+              "CacheNodeType": "cache.r3.8xlarge",
+              "Duration": 94608000,
+              "FixedPrice": 16528.0,
+              "OfferingType": "Heavy Utilization",
+              "ProductDescription": "memcached",
+              "RecurringCharges": [
+                {
+                  "RecurringChargeAmount": 0.729,
+                  "RecurringChargeFrequency": "Hourly"
+                }
+              ],
+              "ReservedCacheNodesOfferingId": "14da3d3f-b526-4dbf-b09b-355578b2a576",
+              "UsagePrice": 0.0
+            },
+            {
+              "CacheNodeType": "cache.m1.medium",
+              "Duration": 94608000,
+              "FixedPrice": 140.0,
+              "OfferingType": "Light Utilization",
+              "ProductDescription": "redis",
+              "RecurringCharges": [
+
+              ],
+              "ReservedCacheNodesOfferingId": "15d7018c-71fb-4717-8409-4bdcdca18da7",
+              "UsagePrice": 0.052
+            },
+            {
+              "CacheNodeType": "cache.m4.4xlarge",
+              "Duration": 94608000,
+              "FixedPrice": 4993.0,
+              "OfferingType": "Heavy Utilization",
+              "ProductDescription": "memcached",
+              "RecurringCharges": [
+                {
+                  "RecurringChargeAmount": 0.304,
+                  "RecurringChargeFrequency": "Hourly"
+                }
+              ],
+              "ReservedCacheNodesOfferingId": "1ae7ec5f-a76e-49b6-822b-629b1768a13a",
+              "UsagePrice": 0.0
+            },
+            {
+              "CacheNodeType": "cache.m3.2xlarge",
+              "Duration": 31536000,
+              "FixedPrice": 1772.0,
+              "OfferingType": "Heavy Utilization",
+              "ProductDescription": "redis",
+              "RecurringCharges": [
+                {
+                  "RecurringChargeAmount": 0.25,
+                  "RecurringChargeFrequency": "Hourly"
+                }
+              ],
+              "ReservedCacheNodesOfferingId": "1d31242b-3925-48d1-b882-ce03204e6013",
+              "UsagePrice": 0.0
+            },
+            {
+              "CacheNodeType": "cache.t1.micro",
+              "Duration": 31536000,
+              "FixedPrice": 54.0,
+              "OfferingType": "Medium Utilization",
+              "ProductDescription": "memcached",
+              "RecurringCharges": [
+
+              ],
+              "ReservedCacheNodesOfferingId": "1ef01f5b-94ff-433f-a530-61a56bfc8e7a",
+              "UsagePrice": 0.008
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Lists available reserved cache node offerings.",
+        "id": "describereseredcachenodeofferings-1481742869998",
+        "title": "DescribeReseredCacheNodeOfferings"
+      },
+      {
+        "input": {
+          "CacheNodeType": "cache.r3.large",
+          "Duration": "3",
+          "MaxRecords": 25,
+          "OfferingType": "Light Utilization",
+          "ReservedCacheNodesOfferingId": ""
+        },
+        "output": {
+          "Marker": "",
+          "ReservedCacheNodesOfferings": [
+
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Lists available reserved cache node offerings for cache.r3.large nodes with a 3 year commitment.",
+        "id": "describereseredcachenodeofferings-1481742869998",
+        "title": "DescribeReseredCacheNodeOfferings"
+      },
+      {
+        "input": {
+          "CacheNodeType": "",
+          "Duration": "",
+          "Marker": "",
+          "MaxRecords": 25,
+          "OfferingType": "",
+          "ProductDescription": "",
+          "ReservedCacheNodesOfferingId": "438012d3-4052-4cc7-b2e3-8d3372e0e706"
+        },
+        "output": {
+          "Marker": "",
+          "ReservedCacheNodesOfferings": [
+
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Lists available reserved cache node offerings.",
+        "id": "describereseredcachenodeofferings-1481742869998",
+        "title": "DescribeReseredCacheNodeOfferings"
+      }
+    ],
+    "DescribeSnapshots": [
+      {
+        "input": {
+          "SnapshotName": "snapshot-20161212"
+        },
+        "output": {
+          "Marker": "",
+          "Snapshots": [
+            {
+              "AutoMinorVersionUpgrade": true,
+              "CacheClusterCreateTime": "2016-12-21T22:27:12.543Z",
+              "CacheClusterId": "my-redis5",
+              "CacheNodeType": "cache.m3.large",
+              "CacheParameterGroupName": "default.redis3.2",
+              "CacheSubnetGroupName": "default",
+              "Engine": "redis",
+              "EngineVersion": "3.2.4",
+              "NodeSnapshots": [
+                {
+                  "CacheNodeCreateTime": "2016-12-21T22:27:12.543Z",
+                  "CacheNodeId": "0001",
+                  "CacheSize": "3 MB",
+                  "SnapshotCreateTime": "2016-12-21T22:30:26Z"
+                }
+              ],
+              "NumCacheNodes": 1,
+              "Port": 6379,
+              "PreferredAvailabilityZone": "us-east-1c",
+              "PreferredMaintenanceWindow": "fri:05:30-fri:06:30",
+              "SnapshotName": "snapshot-20161212",
+              "SnapshotRetentionLimit": 7,
+              "SnapshotSource": "manual",
+              "SnapshotStatus": "available",
+              "SnapshotWindow": "10:00-11:00",
+              "VpcId": "vpc-91280df6"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Returns information about the snapshot mysnapshot. By default.",
+        "id": "describesnapshots-1481743399584",
+        "title": "DescribeSnapshots"
+      }
+    ],
+    "ListAllowedNodeTypeModifications": [
+      {
+        "input": {
+          "ReplicationGroupId": "myreplgroup"
+        },
+        "output": {
+          "ScaleUpModifications": [
+            "cache.m4.10xlarge",
+            "cache.m4.2xlarge",
+            "cache.m4.4xlarge",
+            "cache.m4.xlarge",
+            "cache.r3.2xlarge",
+            "cache.r3.4xlarge",
+            "cache.r3.8xlarge",
+            "cache.r3.xlarge"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Lists all available node types that you can scale your Redis cluster's or replication group's current node type up to.",
+        "id": "listallowednodetypemodifications-1481748494872",
+        "title": "ListAllowedNodeTypeModifications"
+      },
+      {
+        "input": {
+          "CacheClusterId": "mycluster"
+        },
+        "output": {
+          "ScaleUpModifications": [
+
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Lists all available node types that you can scale your Redis cluster's or replication group's current node type up to.",
+        "id": "listallowednodetypemodifications-1481748494872",
+        "title": "ListAllowedNodeTypeModifications"
+      }
+    ],
+    "ListTagsForResource": [
+      {
+        "input": {
+          "ResourceName": "arn:aws:elasticache:us-west-2:<my-account-id>:cluster:mycluster"
+        },
+        "output": {
+          "TagList": [
+            {
+              "Key": "APIVersion",
+              "Value": "20150202"
+            },
+            {
+              "Key": "Service",
+              "Value": "ElastiCache"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Lists all cost allocation tags currently on the named resource. A cost allocation tag is a key-value pair where the key is case-sensitive and the value is optional. You can use cost allocation tags to categorize and track your AWS costs.",
+        "id": "listtagsforresource-1481748784584",
+        "title": "ListTagsForResource"
+      }
+    ],
+    "ModifyCacheCluster": [
+      {
+        "input": {
+          "ApplyImmediately": true,
+          "CacheClusterId": "redis-cluster",
+          "SnapshotRetentionLimit": 14
+        },
+        "output": {
+          "CacheCluster": {
+            "AutoMinorVersionUpgrade": true,
+            "CacheClusterCreateTime": "2016-12-22T16:27:56.078Z",
+            "CacheClusterId": "redis-cluster",
+            "CacheClusterStatus": "available",
+            "CacheNodeType": "cache.r3.large",
+            "CacheParameterGroup": {
+              "CacheNodeIdsToReboot": [
+
+              ],
+              "CacheParameterGroupName": "default.redis3.2",
+              "ParameterApplyStatus": "in-sync"
+            },
+            "CacheSecurityGroups": [
+
+            ],
+            "CacheSubnetGroupName": "default",
+            "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:",
+            "Engine": "redis",
+            "EngineVersion": "3.2.4",
+            "NumCacheNodes": 1,
+            "PendingModifiedValues": {
+            },
+            "PreferredAvailabilityZone": "us-east-1e",
+            "PreferredMaintenanceWindow": "fri:09:00-fri:10:00",
+            "SnapshotRetentionLimit": 14,
+            "SnapshotWindow": "07:00-08:00"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Copies a snapshot to a specified name.",
+        "id": "modifycachecluster-1482962725919",
+        "title": "ModifyCacheCluster"
+      }
+    ],
+    "ModifyCacheParameterGroup": [
+      {
+        "input": {
+          "CacheParameterGroupName": "custom-mem1-4",
+          "ParameterNameValues": [
+            {
+              "ParameterName": "binding_protocol",
+              "ParameterValue": "ascii"
+            },
+            {
+              "ParameterName": "chunk_size",
+              "ParameterValue": "96"
+            }
+          ]
+        },
+        "output": {
+          "CacheParameterGroupName": "custom-mem1-4"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Modifies one or more parameter values in the specified parameter group. You cannot modify any default parameter group.",
+        "id": "modifycacheparametergroup-1482966746787",
+        "title": "ModifyCacheParameterGroup"
+      }
+    ],
+    "ModifyCacheSubnetGroup": [
+      {
+        "input": {
+          "CacheSubnetGroupName": "my-sn-grp",
+          "SubnetIds": [
+            "subnet-bcde2345"
+          ]
+        },
+        "output": {
+          "CacheSubnetGroup": {
+            "CacheSubnetGroupDescription": "My subnet group.",
+            "CacheSubnetGroupName": "my-sn-grp",
+            "Subnets": [
+              {
+                "SubnetAvailabilityZone": {
+                  "Name": "us-east-1c"
+                },
+                "SubnetIdentifier": "subnet-a1b2c3d4"
+              },
+              {
+                "SubnetAvailabilityZone": {
+                  "Name": "us-east-1e"
+                },
+                "SubnetIdentifier": "subnet-1a2b3c4d"
+              },
+              {
+                "SubnetAvailabilityZone": {
+                  "Name": "us-east-1e"
+                },
+                "SubnetIdentifier": "subnet-bcde2345"
+              },
+              {
+                "SubnetAvailabilityZone": {
+                  "Name": "us-east-1c"
+                },
+                "SubnetIdentifier": "subnet-1234abcd"
+              },
+              {
+                "SubnetAvailabilityZone": {
+                  "Name": "us-east-1b"
+                },
+                "SubnetIdentifier": "subnet-abcd1234"
+              }
+            ],
+            "VpcId": "vpc-91280df6"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Modifies an existing ElastiCache subnet group.",
+        "id": "modifycachesubnetgroup-1483043446226",
+        "title": "ModifyCacheSubnetGroup"
+      }
+    ],
+    "ModifyReplicationGroup": [
+      {
+        "input": {
+          "ApplyImmediately": true,
+          "ReplicationGroupDescription": "Modified replication group",
+          "ReplicationGroupId": "my-redis-rg",
+          "SnapshotRetentionLimit": 30,
+          "SnapshottingClusterId": "my-redis-rg-001"
+        },
+        "output": {
+          "ReplicationGroup": {
+            "AutomaticFailover": "enabled",
+            "Description": "Modified replication group",
+            "MemberClusters": [
+              "my-redis-rg-001",
+              "my-redis-rg-002",
+              "my-redis-rg-003"
+            ],
+            "NodeGroups": [
+              {
+                "NodeGroupId": "0001",
+                "NodeGroupMembers": [
+                  {
+                    "CacheClusterId": "my-redis-rg-001",
+                    "CacheNodeId": "0001",
+                    "CurrentRole": "primary",
+                    "PreferredAvailabilityZone": "us-east-1b",
+                    "ReadEndpoint": {
+                      "Address": "my-redis-rg-001.abcdef.0001.use1.cache.amazonaws.com",
+                      "Port": 6379
+                    }
+                  },
+                  {
+                    "CacheClusterId": "my-redis-rg-002",
+                    "CacheNodeId": "0001",
+                    "CurrentRole": "replica",
+                    "PreferredAvailabilityZone": "us-east-1a",
+                    "ReadEndpoint": {
+                      "Address": "my-redis-rg-002.abcdef.0001.use1.cache.amazonaws.com",
+                      "Port": 6379
+                    }
+                  },
+                  {
+                    "CacheClusterId": "my-redis-rg-003",
+                    "CacheNodeId": "0001",
+                    "CurrentRole": "replica",
+                    "PreferredAvailabilityZone": "us-east-1c",
+                    "ReadEndpoint": {
+                      "Address": "my-redis-rg-003.abcdef.0001.use1.cache.amazonaws.com",
+                      "Port": 6379
+                    }
+                  }
+                ],
+                "PrimaryEndpoint": {
+                  "Address": "my-redis-rg.abcdef.ng.0001.use1.cache.amazonaws.com",
+                  "Port": 6379
+                },
+                "Status": "available"
+              }
+            ],
+            "PendingModifiedValues": {
+            },
+            "ReplicationGroupId": "my-redis-rg",
+            "SnapshottingClusterId": "my-redis-rg-002",
+            "Status": "available"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "",
+        "id": "modifyreplicationgroup-1483039689581",
+        "title": "ModifyReplicationGroup"
+      }
+    ],
+    "PurchaseReservedCacheNodesOffering": [
+      {
+        "input": {
+          "ReservedCacheNodesOfferingId": "1ef01f5b-94ff-433f-a530-61a56bfc8e7a"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Allows you to purchase a reserved cache node offering.",
+        "id": "purchasereservedcachenodesofferings-1483040798484",
+        "title": "PurchaseReservedCacheNodesOfferings"
+      }
+    ],
+    "RebootCacheCluster": [
+      {
+        "input": {
+          "CacheClusterId": "custom-mem1-4  ",
+          "CacheNodeIdsToReboot": [
+            "0001",
+            "0002"
+          ]
+        },
+        "output": {
+          "CacheCluster": {
+            "AutoMinorVersionUpgrade": true,
+            "CacheClusterCreateTime": "2016-12-21T21:59:43.794Z",
+            "CacheClusterId": "my-mem-cluster",
+            "CacheClusterStatus": "rebooting cache cluster nodes",
+            "CacheNodeType": "cache.t2.medium",
+            "CacheParameterGroup": {
+              "CacheNodeIdsToReboot": [
+
+              ],
+              "CacheParameterGroupName": "default.memcached1.4",
+              "ParameterApplyStatus": "in-sync"
+            },
+            "CacheSecurityGroups": [
+
+            ],
+            "CacheSubnetGroupName": "default",
+            "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:",
+            "ConfigurationEndpoint": {
+              "Address": "my-mem-cluster.abcdef.cfg.use1.cache.amazonaws.com",
+              "Port": 11211
+            },
+            "Engine": "memcached",
+            "EngineVersion": "1.4.24",
+            "NumCacheNodes": 2,
+            "PendingModifiedValues": {
+            },
+            "PreferredAvailabilityZone": "Multiple",
+            "PreferredMaintenanceWindow": "wed:06:00-wed:07:00"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Reboots the specified nodes in the names cluster.",
+        "id": "rebootcachecluster-1482969019505",
+        "title": "RebootCacheCluster"
+      }
+    ],
+    "RemoveTagsFromResource": [
+      {
+        "input": {
+          "ResourceName": "arn:aws:elasticache:us-east-1:1234567890:cluster:my-mem-cluster",
+          "TagKeys": [
+            "A",
+            "C",
+            "E"
+          ]
+        },
+        "output": {
+          "TagList": [
+            {
+              "Key": "B",
+              "Value": "Banana"
+            },
+            {
+              "Key": "D",
+              "Value": "Dog"
+            },
+            {
+              "Key": "F",
+              "Value": "Fox"
+            },
+            {
+              "Key": "I",
+              "Value": ""
+            },
+            {
+              "Key": "K",
+              "Value": "Kite"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Removes tags identified by a list of tag keys from the list of tags on the specified resource.",
+        "id": "removetagsfromresource-1483037920947",
+        "title": "RemoveTagsFromResource"
+      }
+    ],
+    "ResetCacheParameterGroup": [
+      {
+        "input": {
+          "CacheParameterGroupName": "custom-mem1-4",
+          "ResetAllParameters": true
+        },
+        "output": {
+          "CacheParameterGroupName": "custom-mem1-4"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Modifies the parameters of a cache parameter group to the engine or system default value.",
+        "id": "resetcacheparametergroup-1483038334014",
+        "title": "ResetCacheParameterGroup"
+      }
+    ],
+    "RevokeCacheSecurityGroupIngress": [
+      {
+        "input": {
+          "CacheSecurityGroupName": "my-sec-grp",
+          "EC2SecurityGroupName": "my-ec2-sec-grp",
+          "EC2SecurityGroupOwnerId": "1234567890"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Returns a list of cache security group descriptions. If a cache security group name is specified, the list contains only the description of that group.",
+        "id": "describecachesecuritygroups-1483047200801",
+        "title": "DescribeCacheSecurityGroups"
+      }
+    ]
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/elasticache/2015-02-02/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/elasticache/2015-02-02/paginators-1.json
new file mode 100644
index 00000000..12368b96
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/elasticache/2015-02-02/paginators-1.json
@@ -0,0 +1,118 @@
+{
+  "pagination": {
+    "DescribeCacheClusters": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "CacheClusters"
+    },
+    "DescribeCacheEngineVersions": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "CacheEngineVersions"
+    },
+    "DescribeCacheParameterGroups": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "CacheParameterGroups"
+    },
+    "DescribeCacheParameters": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "Parameters"
+    },
+    "DescribeCacheSecurityGroups": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "CacheSecurityGroups"
+    },
+    "DescribeCacheSubnetGroups": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "CacheSubnetGroups"
+    },
+    "DescribeEngineDefaultParameters": {
+      "input_token": "Marker",
+      "output_token": "EngineDefaults.Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "EngineDefaults.Parameters"
+    },
+    "DescribeEvents": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "Events"
+    },
+    "DescribeReservedCacheNodes": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "ReservedCacheNodes"
+    },
+    "DescribeReservedCacheNodesOfferings": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "ReservedCacheNodesOfferings"
+    },
+    "DescribeReplicationGroups": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "ReplicationGroups"
+    },
+    "DescribeSnapshots": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "Snapshots"
+    },
+    "DescribeServiceUpdates": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "ServiceUpdates"
+    },
+    "DescribeUpdateActions": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "UpdateActions"
+    },
+    "DescribeGlobalReplicationGroups": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "GlobalReplicationGroups"
+    },
+    "DescribeUserGroups": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "UserGroups"
+    },
+    "DescribeUsers": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "Users"
+    },
+    "DescribeServerlessCacheSnapshots": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ServerlessCacheSnapshots"
+    },
+    "DescribeServerlessCaches": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ServerlessCaches"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/elasticache/2015-02-02/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/elasticache/2015-02-02/service-2.json.gz
new file mode 100644
index 00000000..e5be265c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/elasticache/2015-02-02/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/elasticache/2015-02-02/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/elasticache/2015-02-02/waiters-2.json
new file mode 100644
index 00000000..c177d7b9
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/elasticache/2015-02-02/waiters-2.json
@@ -0,0 +1,143 @@
+{
+    "version":2,
+    "waiters":{
+        "CacheClusterAvailable":{
+            "acceptors":[
+                {
+                    "argument":"CacheClusters[].CacheClusterStatus",
+                    "expected":"available",
+                    "matcher":"pathAll",
+                    "state":"success"
+                },
+                {
+                    "argument":"CacheClusters[].CacheClusterStatus",
+                    "expected":"deleted",
+                    "matcher":"pathAny",
+                    "state":"failure"
+                },
+                {
+                    "argument":"CacheClusters[].CacheClusterStatus",
+                    "expected":"deleting",
+                    "matcher":"pathAny",
+                    "state":"failure"
+                },
+                {
+                    "argument":"CacheClusters[].CacheClusterStatus",
+                    "expected":"incompatible-network",
+                    "matcher":"pathAny",
+                    "state":"failure"
+                },
+                {
+                    "argument":"CacheClusters[].CacheClusterStatus",
+                    "expected":"restore-failed",
+                    "matcher":"pathAny",
+                    "state":"failure"
+                }
+            ],
+            "delay":15,
+            "description":"Wait until ElastiCache cluster is available.",
+            "maxAttempts":40,
+            "operation":"DescribeCacheClusters"
+        },
+        "CacheClusterDeleted":{
+            "acceptors":[
+                {
+                    "argument":"CacheClusters[].CacheClusterStatus",
+                    "expected":"deleted",
+                    "matcher":"pathAll",
+                    "state":"success"
+                },
+                {
+                    "expected":"CacheClusterNotFound",
+                    "matcher":"error",
+                    "state":"success"
+                },
+                {
+                    "argument":"CacheClusters[].CacheClusterStatus",
+                    "expected":"available",
+                    "matcher":"pathAny",
+                    "state":"failure"
+                },
+                {
+                    "argument":"CacheClusters[].CacheClusterStatus",
+                    "expected":"creating",
+                    "matcher":"pathAny",
+                    "state":"failure"
+                },
+                {
+                    "argument":"CacheClusters[].CacheClusterStatus",
+                    "expected":"incompatible-network",
+                    "matcher":"pathAny",
+                    "state":"failure"
+                },
+                {
+                    "argument":"CacheClusters[].CacheClusterStatus",
+                    "expected":"modifying",
+                    "matcher":"pathAny",
+                    "state":"failure"
+                },
+                {
+                    "argument":"CacheClusters[].CacheClusterStatus",
+                    "expected":"restore-failed",
+                    "matcher":"pathAny",
+                    "state":"failure"
+                },
+                {
+                    "argument":"CacheClusters[].CacheClusterStatus",
+                    "expected":"snapshotting",
+                    "matcher":"pathAny",
+                    "state":"failure"
+                }
+            ],
+            "delay":15,
+            "description":"Wait until ElastiCache cluster is deleted.",
+            "maxAttempts":40,
+            "operation":"DescribeCacheClusters"
+        },
+        "ReplicationGroupAvailable":{
+            "acceptors":[
+                {
+                    "argument":"ReplicationGroups[].Status",
+                    "expected":"available",
+                    "matcher":"pathAll",
+                    "state":"success"
+                },
+                {
+                    "argument":"ReplicationGroups[].Status",
+                    "expected":"deleted",
+                    "matcher":"pathAny",
+                    "state":"failure"
+                }
+            ],
+            "delay":15,
+            "description":"Wait until ElastiCache replication group is available.",
+            "maxAttempts":40,
+            "operation":"DescribeReplicationGroups"
+        },
+        "ReplicationGroupDeleted":{
+            "acceptors":[
+                {
+                    "argument":"ReplicationGroups[].Status",
+                    "expected":"deleted",
+                    "matcher":"pathAll",
+                    "state":"success"
+                },
+                {
+                    "argument":"ReplicationGroups[].Status",
+                    "expected":"available",
+                    "matcher":"pathAny",
+                    "state":"failure"
+                },
+                {
+                    "expected":"ReplicationGroupNotFoundFault",
+                    "matcher":"error",
+                    "state":"success"
+                }
+            ],
+            "delay":15,
+            "description":"Wait until ElastiCache replication group is deleted.",
+            "maxAttempts":40,
+            "operation":"DescribeReplicationGroups"
+        }
+    }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/elasticbeanstalk/2010-12-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/elasticbeanstalk/2010-12-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..384d89c5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/elasticbeanstalk/2010-12-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/elasticbeanstalk/2010-12-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/elasticbeanstalk/2010-12-01/examples-1.json
new file mode 100644
index 00000000..0fded628
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/elasticbeanstalk/2010-12-01/examples-1.json
@@ -0,0 +1,1109 @@
+{
+  "version": "1.0",
+  "examples": {
+    "AbortEnvironmentUpdate": [
+      {
+        "input": {
+          "EnvironmentName": "my-env"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following code aborts a running application version deployment for an environment named my-env:",
+        "id": "to-abort-a-deployment-1456267848227",
+        "title": "To abort a deployment"
+      }
+    ],
+    "CheckDNSAvailability": [
+      {
+        "input": {
+          "CNAMEPrefix": "my-cname"
+        },
+        "output": {
+          "Available": true,
+          "FullyQualifiedCNAME": "my-cname.us-west-2.elasticbeanstalk.com"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following operation checks the availability of the subdomain my-cname:",
+        "id": "to-check-the-availability-of-a-cname-1456268589537",
+        "title": "To check the availability of a CNAME"
+      }
+    ],
+    "CreateApplication": [
+      {
+        "input": {
+          "ApplicationName": "my-app",
+          "Description": "my application"
+        },
+        "output": {
+          "Application": {
+            "ApplicationName": "my-app",
+            "ConfigurationTemplates": [
+
+            ],
+            "DateCreated": "2015-02-12T18:32:21.181Z",
+            "DateUpdated": "2015-02-12T18:32:21.181Z",
+            "Description": "my application"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following operation creates a new application named my-app:",
+        "id": "to-create-a-new-application-1456268895683",
+        "title": "To create a new application"
+      }
+    ],
+    "CreateApplicationVersion": [
+      {
+        "input": {
+          "ApplicationName": "my-app",
+          "AutoCreateApplication": true,
+          "Description": "my-app-v1",
+          "Process": true,
+          "SourceBundle": {
+            "S3Bucket": "my-bucket",
+            "S3Key": "sample.war"
+          },
+          "VersionLabel": "v1"
+        },
+        "output": {
+          "ApplicationVersion": {
+            "ApplicationName": "my-app",
+            "DateCreated": "2015-02-03T23:01:25.412Z",
+            "DateUpdated": "2015-02-03T23:01:25.412Z",
+            "Description": "my-app-v1",
+            "SourceBundle": {
+              "S3Bucket": "my-bucket",
+              "S3Key": "sample.war"
+            },
+            "VersionLabel": "v1"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following operation creates a new version (v1) of an application named my-app:",
+        "id": "to-create-a-new-application-1456268895683",
+        "title": "To create a new application"
+      }
+    ],
+    "CreateConfigurationTemplate": [
+      {
+        "input": {
+          "ApplicationName": "my-app",
+          "EnvironmentId": "e-rpqsewtp2j",
+          "TemplateName": "my-app-v1"
+        },
+        "output": {
+          "ApplicationName": "my-app",
+          "DateCreated": "2015-08-12T18:40:39Z",
+          "DateUpdated": "2015-08-12T18:40:39Z",
+          "SolutionStackName": "64bit Amazon Linux 2015.03 v2.0.0 running Tomcat 8 Java 8",
+          "TemplateName": "my-app-v1"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following operation creates a configuration template named my-app-v1 from the settings applied to an environment with the id e-rpqsewtp2j:",
+        "id": "to-create-a-configuration-template-1456269283586",
+        "title": "To create a configuration template"
+      }
+    ],
+    "CreateEnvironment": [
+      {
+        "input": {
+          "ApplicationName": "my-app",
+          "CNAMEPrefix": "my-app",
+          "EnvironmentName": "my-env",
+          "SolutionStackName": "64bit Amazon Linux 2015.03 v2.0.0 running Tomcat 8 Java 8",
+          "VersionLabel": "v1"
+        },
+        "output": {
+          "ApplicationName": "my-app",
+          "CNAME": "my-app.elasticbeanstalk.com",
+          "DateCreated": "2015-02-03T23:04:54.479Z",
+          "DateUpdated": "2015-02-03T23:04:54.479Z",
+          "EnvironmentId": "e-izqpassy4h",
+          "EnvironmentName": "my-env",
+          "Health": "Grey",
+          "SolutionStackName": "64bit Amazon Linux 2015.03 v2.0.0 running Tomcat 8 Java 8",
+          "Status": "Launching",
+          "Tier": {
+            "Name": "WebServer",
+            "Type": "Standard",
+            "Version": " "
+          },
+          "VersionLabel": "v1"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following operation creates a new environment for version v1 of a java application named my-app:",
+        "id": "to-create-a-new-environment-for-an-application-1456269380396",
+        "title": "To create a new environment for an application"
+      }
+    ],
+    "CreateStorageLocation": [
+      {
+        "output": {
+          "S3Bucket": "elasticbeanstalk-us-west-2-0123456789012"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following operation creates a new environment for version v1 of a java application named my-app:",
+        "id": "to-create-a-new-environment-for-an-application-1456269380396",
+        "title": "To create a new environment for an application"
+      }
+    ],
+    "DeleteApplication": [
+      {
+        "input": {
+          "ApplicationName": "my-app"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following operation deletes an application named my-app:",
+        "id": "to-delete-an-application-1456269699366",
+        "title": "To delete an application"
+      }
+    ],
+    "DeleteApplicationVersion": [
+      {
+        "input": {
+          "ApplicationName": "my-app",
+          "DeleteSourceBundle": true,
+          "VersionLabel": "22a0-stage-150819_182129"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following operation deletes an application version named 22a0-stage-150819_182129 for an application named my-app:",
+        "id": "to-delete-an-application-version-1456269792956",
+        "title": "To delete an application version"
+      }
+    ],
+    "DeleteConfigurationTemplate": [
+      {
+        "input": {
+          "ApplicationName": "my-app",
+          "TemplateName": "my-template"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following operation deletes a configuration template named my-template for an application named my-app:",
+        "id": "to-delete-a-configuration-template-1456269836701",
+        "title": "To delete a configuration template"
+      }
+    ],
+    "DeleteEnvironmentConfiguration": [
+      {
+        "input": {
+          "ApplicationName": "my-app",
+          "EnvironmentName": "my-env"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following operation deletes a draft configuration for an environment named my-env:",
+        "id": "to-delete-a-draft-configuration-1456269886654",
+        "title": "To delete a draft configuration"
+      }
+    ],
+    "DescribeApplicationVersions": [
+      {
+        "input": {
+          "ApplicationName": "my-app",
+          "VersionLabels": [
+            "v2"
+          ]
+        },
+        "output": {
+          "ApplicationVersions": [
+            {
+              "ApplicationName": "my-app",
+              "DateCreated": "2015-07-23T01:32:26.079Z",
+              "DateUpdated": "2015-07-23T01:32:26.079Z",
+              "Description": "update cover page",
+              "SourceBundle": {
+                "S3Bucket": "elasticbeanstalk-us-west-2-015321684451",
+                "S3Key": "my-app/5026-stage-150723_224258.war"
+              },
+              "VersionLabel": "v2"
+            },
+            {
+              "ApplicationName": "my-app",
+              "DateCreated": "2015-07-23T22:26:10.816Z",
+              "DateUpdated": "2015-07-23T22:26:10.816Z",
+              "Description": "initial version",
+              "SourceBundle": {
+                "S3Bucket": "elasticbeanstalk-us-west-2-015321684451",
+                "S3Key": "my-app/5026-stage-150723_222618.war"
+              },
+              "VersionLabel": "v1"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following operation retrieves information about an application version labeled v2:",
+        "id": "to-view-information-about-an-application-version-1456269947428",
+        "title": "To view information about an application version"
+      }
+    ],
+    "DescribeApplications": [
+      {
+        "input": {
+        },
+        "output": {
+          "Applications": [
+            {
+              "ApplicationName": "ruby",
+              "ConfigurationTemplates": [
+
+              ],
+              "DateCreated": "2015-08-13T21:05:44.376Z",
+              "DateUpdated": "2015-08-13T21:05:44.376Z",
+              "Versions": [
+                "Sample Application"
+              ]
+            },
+            {
+              "ApplicationName": "pythonsample",
+              "ConfigurationTemplates": [
+
+              ],
+              "DateCreated": "2015-08-13T19:05:43.637Z",
+              "DateUpdated": "2015-08-13T19:05:43.637Z",
+              "Description": "Application created from the EB CLI using \"eb init\"",
+              "Versions": [
+                "Sample Application"
+              ]
+            },
+            {
+              "ApplicationName": "nodejs-example",
+              "ConfigurationTemplates": [
+
+              ],
+              "DateCreated": "2015-08-06T17:50:02.486Z",
+              "DateUpdated": "2015-08-06T17:50:02.486Z",
+              "Versions": [
+                "add elasticache",
+                "First Release"
+              ]
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following operation retrieves information about applications in the current region:",
+        "id": "to-view-a-list-of-applications-1456270027373",
+        "title": "To view a list of applications"
+      }
+    ],
+    "DescribeConfigurationOptions": [
+      {
+        "input": {
+          "ApplicationName": "my-app",
+          "EnvironmentName": "my-env"
+        },
+        "output": {
+          "Options": [
+            {
+              "ChangeSeverity": "NoInterruption",
+              "DefaultValue": "30",
+              "MaxValue": 300,
+              "MinValue": 5,
+              "Name": "Interval",
+              "Namespace": "aws:elb:healthcheck",
+              "UserDefined": false,
+              "ValueType": "Scalar"
+            },
+            {
+              "ChangeSeverity": "NoInterruption",
+              "DefaultValue": "2000000",
+              "MinValue": 0,
+              "Name": "LowerThreshold",
+              "Namespace": "aws:autoscaling:trigger",
+              "UserDefined": false,
+              "ValueType": "Scalar"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following operation retrieves descriptions of all available configuration options for an environment named my-env:",
+        "id": "to-view-configuration-options-for-an-environment-1456276763917",
+        "title": "To view configuration options for an environment"
+      }
+    ],
+    "DescribeConfigurationSettings": [
+      {
+        "input": {
+          "ApplicationName": "my-app",
+          "EnvironmentName": "my-env"
+        },
+        "output": {
+          "ConfigurationSettings": [
+            {
+              "ApplicationName": "my-app",
+              "DateCreated": "2015-08-13T19:16:25Z",
+              "DateUpdated": "2015-08-13T23:30:07Z",
+              "DeploymentStatus": "deployed",
+              "Description": "Environment created from the EB CLI using \"eb create\"",
+              "EnvironmentName": "my-env",
+              "OptionSettings": [
+                {
+                  "Namespace": "aws:autoscaling:asg",
+                  "OptionName": "Availability Zones",
+                  "ResourceName": "AWSEBAutoScalingGroup",
+                  "Value": "Any"
+                },
+                {
+                  "Namespace": "aws:autoscaling:asg",
+                  "OptionName": "Cooldown",
+                  "ResourceName": "AWSEBAutoScalingGroup",
+                  "Value": "360"
+                },
+                {
+                  "Namespace": "aws:elb:policies",
+                  "OptionName": "ConnectionDrainingTimeout",
+                  "ResourceName": "AWSEBLoadBalancer",
+                  "Value": "20"
+                },
+                {
+                  "Namespace": "aws:elb:policies",
+                  "OptionName": "ConnectionSettingIdleTimeout",
+                  "ResourceName": "AWSEBLoadBalancer",
+                  "Value": "60"
+                }
+              ],
+              "SolutionStackName": "64bit Amazon Linux 2015.03 v2.0.0 running Tomcat 8 Java 8"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+            "abbreviated": "Output is abbreviated"
+          }
+        },
+        "description": "The following operation retrieves configuration settings for an environment named my-env:",
+        "id": "to-view-configurations-settings-for-an-environment-1456276924537",
+        "title": "To view configurations settings for an environment"
+      }
+    ],
+    "DescribeEnvironmentHealth": [
+      {
+        "input": {
+          "AttributeNames": [
+            "All"
+          ],
+          "EnvironmentName": "my-env"
+        },
+        "output": {
+          "ApplicationMetrics": {
+            "Duration": 10,
+            "Latency": {
+              "P10": 0.001,
+              "P50": 0.001,
+              "P75": 0.002,
+              "P85": 0.003,
+              "P90": 0.003,
+              "P95": 0.004,
+              "P99": 0.004,
+              "P999": 0.004
+            },
+            "RequestCount": 45,
+            "StatusCodes": {
+              "Status2xx": 45,
+              "Status3xx": 0,
+              "Status4xx": 0,
+              "Status5xx": 0
+            }
+          },
+          "Causes": [
+
+          ],
+          "Color": "Green",
+          "EnvironmentName": "my-env",
+          "HealthStatus": "Ok",
+          "InstancesHealth": {
+            "Degraded": 0,
+            "Info": 0,
+            "NoData": 0,
+            "Ok": 1,
+            "Pending": 0,
+            "Severe": 0,
+            "Unknown": 0,
+            "Warning": 0
+          },
+          "RefreshedAt": "2015-08-20T21:09:18Z"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following operation retrieves overall health information for an environment named my-env:",
+        "id": "to-view-environment-health-1456277109510",
+        "title": "To view environment health"
+      }
+    ],
+    "DescribeEnvironmentResources": [
+      {
+        "input": {
+          "EnvironmentName": "my-env"
+        },
+        "output": {
+          "EnvironmentResources": {
+            "AutoScalingGroups": [
+              {
+                "Name": "awseb-e-qu3fyyjyjs-stack-AWSEBAutoScalingGroup-QSB2ZO88SXZT"
+              }
+            ],
+            "EnvironmentName": "my-env",
+            "Instances": [
+              {
+                "Id": "i-0c91c786"
+              }
+            ],
+            "LaunchConfigurations": [
+              {
+                "Name": "awseb-e-qu3fyyjyjs-stack-AWSEBAutoScalingLaunchConfiguration-1UUVQIBC96TQ2"
+              }
+            ],
+            "LoadBalancers": [
+              {
+                "Name": "awseb-e-q-AWSEBLoa-1EEPZ0K98BIF0"
+              }
+            ],
+            "Queues": [
+
+            ],
+            "Triggers": [
+
+            ]
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following operation retrieves information about resources in an environment named my-env:",
+        "id": "to-view-information-about-the-aws-resources-in-your-environment-1456277206232",
+        "title": "To view information about the AWS resources in your environment"
+      }
+    ],
+    "DescribeEnvironments": [
+      {
+        "input": {
+          "EnvironmentNames": [
+            "my-env"
+          ]
+        },
+        "output": {
+          "Environments": [
+            {
+              "AbortableOperationInProgress": false,
+              "ApplicationName": "my-app",
+              "CNAME": "my-env.elasticbeanstalk.com",
+              "DateCreated": "2015-08-07T20:48:49.599Z",
+              "DateUpdated": "2015-08-12T18:16:55.019Z",
+              "EndpointURL": "awseb-e-w-AWSEBLoa-1483140XB0Q4L-109QXY8121.us-west-2.elb.amazonaws.com",
+              "EnvironmentId": "e-rpqsewtp2j",
+              "EnvironmentName": "my-env",
+              "Health": "Green",
+              "SolutionStackName": "64bit Amazon Linux 2015.03 v2.0.0 running Tomcat 8 Java 8",
+              "Status": "Ready",
+              "Tier": {
+                "Name": "WebServer",
+                "Type": "Standard",
+                "Version": " "
+              },
+              "VersionLabel": "7f58-stage-150812_025409"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following operation retrieves information about an environment named my-env:",
+        "id": "to-view-information-about-an-environment-1456277288662",
+        "title": "To view information about an environment"
+      }
+    ],
+    "DescribeEvents": [
+      {
+        "input": {
+          "EnvironmentName": "my-env"
+        },
+        "output": {
+          "Events": [
+            {
+              "ApplicationName": "my-app",
+              "EnvironmentName": "my-env",
+              "EventDate": "2015-08-20T07:06:53.535Z",
+              "Message": "Environment health has transitioned from Info to Ok.",
+              "Severity": "INFO"
+            },
+            {
+              "ApplicationName": "my-app",
+              "EnvironmentName": "my-env",
+              "EventDate": "2015-08-20T07:06:02.049Z",
+              "Message": "Environment update completed successfully.",
+              "RequestId": "b7f3960b-4709-11e5-ba1e-07e16200da41",
+              "Severity": "INFO"
+            },
+            {
+              "ApplicationName": "my-app",
+              "EnvironmentName": "my-env",
+              "EventDate": "2015-08-13T19:16:27.561Z",
+              "Message": "Using elasticbeanstalk-us-west-2-012445113685 as Amazon S3 storage bucket for environment data.",
+              "RequestId": "ca8dfbf6-41ef-11e5-988b-651aa638f46b",
+              "Severity": "INFO"
+            },
+            {
+              "ApplicationName": "my-app",
+              "EnvironmentName": "my-env",
+              "EventDate": "2015-08-13T19:16:26.581Z",
+              "Message": "createEnvironment is starting.",
+              "RequestId": "cdfba8f6-41ef-11e5-988b-65638f41aa6b",
+              "Severity": "INFO"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following operation retrieves events for an environment named my-env:",
+        "id": "to-view-events-for-an-environment-1456277367589",
+        "title": "To view events for an environment"
+      }
+    ],
+    "DescribeInstancesHealth": [
+      {
+        "input": {
+          "AttributeNames": [
+            "All"
+          ],
+          "EnvironmentName": "my-env"
+        },
+        "output": {
+          "InstanceHealthList": [
+            {
+              "ApplicationMetrics": {
+                "Duration": 10,
+                "Latency": {
+                  "P10": 0,
+                  "P50": 0.001,
+                  "P75": 0.002,
+                  "P85": 0.003,
+                  "P90": 0.004,
+                  "P95": 0.005,
+                  "P99": 0.006,
+                  "P999": 0.006
+                },
+                "RequestCount": 48,
+                "StatusCodes": {
+                  "Status2xx": 47,
+                  "Status3xx": 0,
+                  "Status4xx": 1,
+                  "Status5xx": 0
+                }
+              },
+              "Causes": [
+
+              ],
+              "Color": "Green",
+              "HealthStatus": "Ok",
+              "InstanceId": "i-08691cc7",
+              "LaunchedAt": "2015-08-13T19:17:09Z",
+              "System": {
+                "CPUUtilization": {
+                  "IOWait": 0.2,
+                  "IRQ": 0,
+                  "Idle": 97.8,
+                  "Nice": 0.1,
+                  "SoftIRQ": 0.1,
+                  "System": 0.3,
+                  "User": 1.5
+                },
+                "LoadAverage": [
+                  0,
+                  0.02,
+                  0.05
+                ]
+              }
+            }
+          ],
+          "RefreshedAt": "2015-08-20T21:09:08Z"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following operation retrieves health information for instances in an environment named my-env:",
+        "id": "to-view-environment-health-1456277424757",
+        "title": "To view environment health"
+      }
+    ],
+    "ListAvailableSolutionStacks": [
+      {
+        "output": {
+          "SolutionStackDetails": [
+            {
+              "PermittedFileTypes": [
+                "zip"
+              ],
+              "SolutionStackName": "64bit Amazon Linux 2015.03 v2.0.0 running Node.js"
+            }
+          ],
+          "SolutionStacks": [
+            "64bit Amazon Linux 2015.03 v2.0.0 running Node.js",
+            "64bit Amazon Linux 2015.03 v2.0.0 running PHP 5.6",
+            "64bit Amazon Linux 2015.03 v2.0.0 running PHP 5.5",
+            "64bit Amazon Linux 2015.03 v2.0.0 running PHP 5.4",
+            "64bit Amazon Linux 2015.03 v2.0.0 running Python 3.4",
+            "64bit Amazon Linux 2015.03 v2.0.0 running Python 2.7",
+            "64bit Amazon Linux 2015.03 v2.0.0 running Python",
+            "64bit Amazon Linux 2015.03 v2.0.0 running Ruby 2.2 (Puma)",
+            "64bit Amazon Linux 2015.03 v2.0.0 running Ruby 2.2 (Passenger Standalone)",
+            "64bit Amazon Linux 2015.03 v2.0.0 running Ruby 2.1 (Puma)",
+            "64bit Amazon Linux 2015.03 v2.0.0 running Ruby 2.1 (Passenger Standalone)",
+            "64bit Amazon Linux 2015.03 v2.0.0 running Ruby 2.0 (Puma)",
+            "64bit Amazon Linux 2015.03 v2.0.0 running Ruby 2.0 (Passenger Standalone)",
+            "64bit Amazon Linux 2015.03 v2.0.0 running Ruby 1.9.3",
+            "64bit Amazon Linux 2015.03 v2.0.0 running Tomcat 8 Java 8",
+            "64bit Amazon Linux 2015.03 v2.0.0 running Tomcat 7 Java 7",
+            "64bit Amazon Linux 2015.03 v2.0.0 running Tomcat 7 Java 6",
+            "64bit Windows Server Core 2012 R2 running IIS 8.5",
+            "64bit Windows Server 2012 R2 running IIS 8.5",
+            "64bit Windows Server 2012 running IIS 8",
+            "64bit Windows Server 2008 R2 running IIS 7.5",
+            "64bit Amazon Linux 2015.03 v2.0.0 running Docker 1.6.2",
+            "64bit Amazon Linux 2015.03 v2.0.0 running Multi-container Docker 1.6.2 (Generic)",
+            "64bit Debian jessie v2.0.0 running GlassFish 4.1 Java 8 (Preconfigured - Docker)",
+            "64bit Debian jessie v2.0.0 running GlassFish 4.0 Java 7 (Preconfigured - Docker)",
+            "64bit Debian jessie v2.0.0 running Go 1.4 (Preconfigured - Docker)",
+            "64bit Debian jessie v2.0.0 running Go 1.3 (Preconfigured - Docker)",
+            "64bit Debian jessie v2.0.0 running Python 3.4 (Preconfigured - Docker)"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following operation lists solution stacks for all currently available platform configurations and any that you have used in the past:",
+        "id": "to-view-solution-stacks-1456277504811",
+        "title": "To view solution stacks"
+      }
+    ],
+    "RebuildEnvironment": [
+      {
+        "input": {
+          "EnvironmentName": "my-env"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following operation terminates and recreates the resources in an environment named my-env:",
+        "id": "to-rebuild-an-environment-1456277600918",
+        "title": "To rebuild an environment"
+      }
+    ],
+    "RequestEnvironmentInfo": [
+      {
+        "input": {
+          "EnvironmentName": "my-env",
+          "InfoType": "tail"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following operation requests logs from an environment named my-env:",
+        "id": "to-request-tailed-logs-1456277657045",
+        "title": "To request tailed logs"
+      }
+    ],
+    "RestartAppServer": [
+      {
+        "input": {
+          "EnvironmentName": "my-env"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following operation restarts application servers on all instances in an environment named my-env:",
+        "id": "to-restart-application-servers-1456277739302",
+        "title": "To restart application servers"
+      }
+    ],
+    "RetrieveEnvironmentInfo": [
+      {
+        "input": {
+          "EnvironmentName": "my-env",
+          "InfoType": "tail"
+        },
+        "output": {
+          "EnvironmentInfo": [
+            {
+              "Ec2InstanceId": "i-09c1c867",
+              "InfoType": "tail",
+              "Message": "https://elasticbeanstalk-us-west-2-0123456789012.s3.amazonaws.com/resources/environments/logs/tail/e-fyqyju3yjs/i-09c1c867/TailLogs-1440109397703.out?AWSAccessKeyId=AKGPT4J56IAJ2EUBL5CQ&Expires=1440195891&Signature=n%2BEalOV6A2HIOx4Rcfb7LT16bBM%3D",
+              "SampleTimestamp": "2015-08-20T22:23:17.703Z"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following operation retrieves a link to logs from an environment named my-env:",
+        "id": "to-retrieve-tailed-logs-1456277792734",
+        "title": "To retrieve tailed logs"
+      }
+    ],
+    "SwapEnvironmentCNAMEs": [
+      {
+        "input": {
+          "DestinationEnvironmentName": "my-env-green",
+          "SourceEnvironmentName": "my-env-blue"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following operation swaps the assigned subdomains of two environments:",
+        "id": "to-swap-environment-cnames-1456277839438",
+        "title": "To swap environment CNAMES"
+      }
+    ],
+    "TerminateEnvironment": [
+      {
+        "input": {
+          "EnvironmentName": "my-env"
+        },
+        "output": {
+          "AbortableOperationInProgress": false,
+          "ApplicationName": "my-app",
+          "CNAME": "my-env.elasticbeanstalk.com",
+          "DateCreated": "2015-08-12T18:52:53.622Z",
+          "DateUpdated": "2015-08-12T19:05:54.744Z",
+          "EndpointURL": "awseb-e-f-AWSEBLoa-1I9XUMP4-8492WNUP202574.us-west-2.elb.amazonaws.com",
+          "EnvironmentId": "e-fh2eravpns",
+          "EnvironmentName": "my-env",
+          "Health": "Grey",
+          "SolutionStackName": "64bit Amazon Linux 2015.03 v2.0.0 running Tomcat 8 Java 8",
+          "Status": "Terminating",
+          "Tier": {
+            "Name": "WebServer",
+            "Type": "Standard",
+            "Version": " "
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following operation terminates an Elastic Beanstalk environment named my-env:",
+        "id": "to-terminate-an-environment-1456277888556",
+        "title": "To terminate an environment"
+      }
+    ],
+    "UpdateApplication": [
+      {
+        "input": {
+          "ApplicationName": "my-app",
+          "Description": "my Elastic Beanstalk application"
+        },
+        "output": {
+          "Application": {
+            "ApplicationName": "my-app",
+            "ConfigurationTemplates": [
+
+            ],
+            "DateCreated": "2015-08-13T19:15:50.449Z",
+            "DateUpdated": "2015-08-20T22:34:56.195Z",
+            "Description": "my Elastic Beanstalk application",
+            "Versions": [
+              "2fba-stage-150819_234450",
+              "bf07-stage-150820_214945",
+              "93f8",
+              "fd7c-stage-150820_000431",
+              "22a0-stage-150819_185942"
+            ]
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following operation updates the description of an application named my-app:",
+        "id": "to-change-an-applications-description-1456277957075",
+        "title": "To change an application's description"
+      }
+    ],
+    "UpdateApplicationVersion": [
+      {
+        "input": {
+          "ApplicationName": "my-app",
+          "Description": "new description",
+          "VersionLabel": "22a0-stage-150819_185942"
+        },
+        "output": {
+          "ApplicationVersion": {
+            "ApplicationName": "my-app",
+            "DateCreated": "2015-08-19T18:59:17.646Z",
+            "DateUpdated": "2015-08-20T22:53:28.871Z",
+            "Description": "new description",
+            "SourceBundle": {
+              "S3Bucket": "elasticbeanstalk-us-west-2-0123456789012",
+              "S3Key": "my-app/22a0-stage-150819_185942.war"
+            },
+            "VersionLabel": "22a0-stage-150819_185942"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following operation updates the description of an application version named 22a0-stage-150819_185942:",
+        "id": "to-change-an-application-versions-description-1456278019237",
+        "title": "To change an application version's description"
+      }
+    ],
+    "UpdateConfigurationTemplate": [
+      {
+        "input": {
+          "ApplicationName": "my-app",
+          "OptionsToRemove": [
+            {
+              "Namespace": "aws:elasticbeanstalk:healthreporting:system",
+              "OptionName": "ConfigDocument"
+            }
+          ],
+          "TemplateName": "my-template"
+        },
+        "output": {
+          "ApplicationName": "my-app",
+          "DateCreated": "2015-08-20T22:39:31Z",
+          "DateUpdated": "2015-08-20T22:43:11Z",
+          "SolutionStackName": "64bit Amazon Linux 2015.03 v2.0.0 running Tomcat 8 Java 8",
+          "TemplateName": "my-template"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following operation removes the configured CloudWatch custom health metrics configuration ConfigDocument from a saved configuration template named my-template:",
+        "id": "to-update-a-configuration-template-1456278075300",
+        "title": "To update a configuration template"
+      }
+    ],
+    "UpdateEnvironment": [
+      {
+        "input": {
+          "EnvironmentName": "my-env",
+          "VersionLabel": "v2"
+        },
+        "output": {
+          "ApplicationName": "my-app",
+          "CNAME": "my-env.elasticbeanstalk.com",
+          "DateCreated": "2015-02-03T23:04:54.453Z",
+          "DateUpdated": "2015-02-03T23:12:29.119Z",
+          "EndpointURL": "awseb-e-i-AWSEBLoa-1RDLX6TC9VUAO-0123456789.us-west-2.elb.amazonaws.com",
+          "EnvironmentId": "e-szqipays4h",
+          "EnvironmentName": "my-env",
+          "Health": "Grey",
+          "SolutionStackName": "64bit Amazon Linux running Tomcat 7",
+          "Status": "Updating",
+          "Tier": {
+            "Name": "WebServer",
+            "Type": "Standard",
+            "Version": " "
+          },
+          "VersionLabel": "v2"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following operation updates an environment named \"my-env\" to version \"v2\" of the application to which it belongs:",
+        "id": "to-update-an-environment-to-a-new-version-1456278210718",
+        "title": "To update an environment to a new version"
+      },
+      {
+        "input": {
+          "EnvironmentName": "my-env",
+          "OptionSettings": [
+            {
+              "Namespace": "aws:elb:healthcheck",
+              "OptionName": "Interval",
+              "Value": "15"
+            },
+            {
+              "Namespace": "aws:elb:healthcheck",
+              "OptionName": "Timeout",
+              "Value": "8"
+            },
+            {
+              "Namespace": "aws:elb:healthcheck",
+              "OptionName": "HealthyThreshold",
+              "Value": "2"
+            },
+            {
+              "Namespace": "aws:elb:healthcheck",
+              "OptionName": "UnhealthyThreshold",
+              "Value": "3"
+            }
+          ]
+        },
+        "output": {
+          "AbortableOperationInProgress": true,
+          "ApplicationName": "my-app",
+          "CNAME": "my-env.elasticbeanstalk.com",
+          "DateCreated": "2015-08-07T20:48:49.599Z",
+          "DateUpdated": "2015-08-12T18:15:23.804Z",
+          "EndpointURL": "awseb-e-w-AWSEBLoa-14XB83101Q4L-104QXY80921.sa-east-1.elb.amazonaws.com",
+          "EnvironmentId": "e-wtp2rpqsej",
+          "EnvironmentName": "my-env",
+          "Health": "Grey",
+          "SolutionStackName": "64bit Amazon Linux 2015.03 v2.0.0 running Tomcat 8 Java 8",
+          "Status": "Updating",
+          "Tier": {
+            "Name": "WebServer",
+            "Type": "Standard",
+            "Version": " "
+          },
+          "VersionLabel": "7f58-stage-150812_025409"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following operation configures several options in the aws:elb:loadbalancer namespace:",
+        "id": "to-configure-option-settings-1456278286349",
+        "title": "To configure option settings"
+      }
+    ],
+    "ValidateConfigurationSettings": [
+      {
+        "input": {
+          "ApplicationName": "my-app",
+          "EnvironmentName": "my-env",
+          "OptionSettings": [
+            {
+              "Namespace": "aws:elasticbeanstalk:healthreporting:system",
+              "OptionName": "ConfigDocument",
+              "Value": "{\"CloudWatchMetrics\": {\"Environment\": {\"ApplicationLatencyP99.9\": null,\"InstancesSevere\": 60,\"ApplicationLatencyP90\": 60,\"ApplicationLatencyP99\": null,\"ApplicationLatencyP95\": 60,\"InstancesUnknown\": 60,\"ApplicationLatencyP85\": 60,\"InstancesInfo\": null,\"ApplicationRequests2xx\": null,\"InstancesDegraded\": null,\"InstancesWarning\": 60,\"ApplicationLatencyP50\": 60,\"ApplicationRequestsTotal\": null,\"InstancesNoData\": null,\"InstancesPending\": 60,\"ApplicationLatencyP10\": null,\"ApplicationRequests5xx\": null,\"ApplicationLatencyP75\": null,\"InstancesOk\": 60,\"ApplicationRequests3xx\": null,\"ApplicationRequests4xx\": null},\"Instance\": {\"ApplicationLatencyP99.9\": null,\"ApplicationLatencyP90\": 60,\"ApplicationLatencyP99\": null,\"ApplicationLatencyP95\": null,\"ApplicationLatencyP85\": null,\"CPUUser\": 60,\"ApplicationRequests2xx\": null,\"CPUIdle\": null,\"ApplicationLatencyP50\": null,\"ApplicationRequestsTotal\": 60,\"RootFilesystemUtil\": null,\"LoadAverage1min\": null,\"CPUIrq\": null,\"CPUNice\": 60,\"CPUIowait\": 60,\"ApplicationLatencyP10\": null,\"LoadAverage5min\": null,\"ApplicationRequests5xx\": null,\"ApplicationLatencyP75\": 60,\"CPUSystem\": 60,\"ApplicationRequests3xx\": 60,\"ApplicationRequests4xx\": null,\"InstanceHealth\": null,\"CPUSoftirq\": 60}},\"Version\": 1}"
+            }
+          ]
+        },
+        "output": {
+          "Messages": [
+
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following operation validates a CloudWatch custom metrics config document:",
+        "id": "to-validate-configuration-settings-1456278393654",
+        "title": "To validate configuration settings"
+      }
+    ]
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/elasticbeanstalk/2010-12-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/elasticbeanstalk/2010-12-01/paginators-1.json
new file mode 100644
index 00000000..4f53c866
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/elasticbeanstalk/2010-12-01/paginators-1.json
@@ -0,0 +1,34 @@
+{
+  "pagination": {
+    "DescribeEvents": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxRecords",
+      "result_key": "Events"
+    },
+    "DescribeApplicationVersions": {
+      "input_token": "NextToken",
+      "limit_key": "MaxRecords",
+      "output_token": "NextToken",
+      "result_key": "ApplicationVersions"
+    },
+    "DescribeEnvironmentManagedActionHistory": {
+      "input_token": "NextToken",
+      "limit_key": "MaxItems",
+      "output_token": "NextToken",
+      "result_key": "ManagedActionHistoryItems"
+    },
+    "DescribeEnvironments": {
+      "input_token": "NextToken",
+      "limit_key": "MaxRecords",
+      "output_token": "NextToken",
+      "result_key": "Environments"
+    },
+    "ListPlatformVersions": {
+      "input_token": "NextToken",
+      "limit_key": "MaxRecords",
+      "output_token": "NextToken",
+      "result_key": "PlatformSummaryList"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/elasticbeanstalk/2010-12-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/elasticbeanstalk/2010-12-01/service-2.json.gz
new file mode 100644
index 00000000..42371fd1
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/elasticbeanstalk/2010-12-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/elasticbeanstalk/2010-12-01/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/elasticbeanstalk/2010-12-01/waiters-2.json
new file mode 100644
index 00000000..4fb906b4
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/elasticbeanstalk/2010-12-01/waiters-2.json
@@ -0,0 +1,63 @@
+{
+  "version": 2,
+  "waiters": {
+    "EnvironmentExists": {
+      "delay": 20,
+      "maxAttempts": 20,
+      "operation": "DescribeEnvironments",
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "pathAll",
+          "argument": "Environments[].Status",
+          "expected": "Ready"
+        },
+        {
+          "state": "retry",
+          "matcher": "pathAll",
+          "argument": "Environments[].Status",
+          "expected": "Launching"
+        }
+      ]
+    },
+    "EnvironmentUpdated": {
+      "delay": 20,
+      "maxAttempts": 20,
+      "operation": "DescribeEnvironments",
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "pathAll",
+          "argument": "Environments[].Status",
+          "expected": "Ready"
+        },
+        {
+          "state": "retry",
+          "matcher": "pathAll",
+          "argument": "Environments[].Status",
+          "expected": "Updating"
+        }
+      ]
+    },
+    "EnvironmentTerminated": {
+      "delay": 20,
+      "maxAttempts": 20,
+      "operation": "DescribeEnvironments",
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "pathAll",
+          "argument": "Environments[].Status",
+          "expected": "Terminated"
+        },
+        {
+          "state": "retry",
+          "matcher": "pathAll",
+          "argument": "Environments[].Status",
+          "expected": "Terminating"
+        }
+      ]
+    }
+  }
+}
+
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/elastictranscoder/2012-09-25/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/elastictranscoder/2012-09-25/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..c96f2c67
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/elastictranscoder/2012-09-25/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/elastictranscoder/2012-09-25/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/elastictranscoder/2012-09-25/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/elastictranscoder/2012-09-25/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/elastictranscoder/2012-09-25/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/elastictranscoder/2012-09-25/paginators-1.json
new file mode 100644
index 00000000..5a145d36
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/elastictranscoder/2012-09-25/paginators-1.json
@@ -0,0 +1,24 @@
+{
+  "pagination": {
+    "ListJobsByPipeline": {
+      "input_token": "PageToken",
+      "output_token": "NextPageToken",
+      "result_key": "Jobs"
+    },
+    "ListJobsByStatus": {
+      "input_token": "PageToken",
+      "output_token": "NextPageToken",
+      "result_key": "Jobs"
+    },
+    "ListPipelines": {
+      "input_token": "PageToken",
+      "output_token": "NextPageToken",
+      "result_key": "Pipelines"
+    },
+    "ListPresets": {
+      "input_token": "PageToken",
+      "output_token": "NextPageToken",
+      "result_key": "Presets"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/elastictranscoder/2012-09-25/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/elastictranscoder/2012-09-25/service-2.json.gz
new file mode 100644
index 00000000..56c646ca
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/elastictranscoder/2012-09-25/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/elastictranscoder/2012-09-25/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/elastictranscoder/2012-09-25/waiters-2.json
new file mode 100644
index 00000000..55c36280
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/elastictranscoder/2012-09-25/waiters-2.json
@@ -0,0 +1,30 @@
+{
+  "version": 2,
+  "waiters": {
+    "JobComplete": {
+      "delay": 30,
+      "operation": "ReadJob",
+      "maxAttempts": 120,
+      "acceptors": [
+        {
+          "expected": "Complete",
+          "matcher": "path",
+          "state": "success",
+          "argument": "Job.Status"
+        },
+        {
+          "expected": "Canceled",
+          "matcher": "path",
+          "state": "failure",
+          "argument": "Job.Status"
+        },
+        {
+          "expected": "Error",
+          "matcher": "path",
+          "state": "failure",
+          "argument": "Job.Status"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/elb/2012-06-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/elb/2012-06-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..e0be4296
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/elb/2012-06-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/elb/2012-06-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/elb/2012-06-01/examples-1.json
new file mode 100644
index 00000000..ce50fdd1
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/elb/2012-06-01/examples-1.json
@@ -0,0 +1,1036 @@
+{
+  "version": "1.0",
+  "examples": {
+    "AddTags": [
+      {
+        "input": {
+          "LoadBalancerNames": [
+            "my-load-balancer"
+          ],
+          "Tags": [
+            {
+              "Key": "project",
+              "Value": "lima"
+            },
+            {
+              "Key": "department",
+              "Value": "digital-media"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example adds two tags to the specified load balancer.",
+        "id": "elb-add-tags-1",
+        "title": "To add tags to a load balancer"
+      }
+    ],
+    "ApplySecurityGroupsToLoadBalancer": [
+      {
+        "input": {
+          "LoadBalancerName": "my-load-balancer",
+          "SecurityGroups": [
+            "sg-fc448899"
+          ]
+        },
+        "output": {
+          "SecurityGroups": [
+            "sg-fc448899"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example associates a security group with the specified load balancer in a VPC.",
+        "id": "elb-apply-security-groups-to-load-balancer-1",
+        "title": "To associate a security group with a load balancer in a VPC"
+      }
+    ],
+    "AttachLoadBalancerToSubnets": [
+      {
+        "input": {
+          "LoadBalancerName": "my-load-balancer",
+          "Subnets": [
+            "subnet-0ecac448"
+          ]
+        },
+        "output": {
+          "Subnets": [
+            "subnet-15aaab61",
+            "subnet-0ecac448"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example adds the specified subnet to the set of configured subnets for the specified load balancer.",
+        "id": "elb-attach-load-balancer-to-subnets-1",
+        "title": "To attach subnets to a load balancer"
+      }
+    ],
+    "ConfigureHealthCheck": [
+      {
+        "input": {
+          "HealthCheck": {
+            "HealthyThreshold": 2,
+            "Interval": 30,
+            "Target": "HTTP:80/png",
+            "Timeout": 3,
+            "UnhealthyThreshold": 2
+          },
+          "LoadBalancerName": "my-load-balancer"
+        },
+        "output": {
+          "HealthCheck": {
+            "HealthyThreshold": 2,
+            "Interval": 30,
+            "Target": "HTTP:80/png",
+            "Timeout": 3,
+            "UnhealthyThreshold": 2
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example specifies the health check settings used to evaluate the health of your backend EC2 instances.",
+        "id": "elb-configure-health-check-1",
+        "title": "To specify the health check settings for your backend EC2 instances"
+      }
+    ],
+    "CreateAppCookieStickinessPolicy": [
+      {
+        "input": {
+          "CookieName": "my-app-cookie",
+          "LoadBalancerName": "my-load-balancer",
+          "PolicyName": "my-app-cookie-policy"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example generates a stickiness policy that follows the sticky session lifetimes of the application-generated cookie.",
+        "id": "elb-create-app-cookie-stickiness-policy-1",
+        "title": "To generate a stickiness policy for your load balancer"
+      }
+    ],
+    "CreateLBCookieStickinessPolicy": [
+      {
+        "input": {
+          "CookieExpirationPeriod": 60,
+          "LoadBalancerName": "my-load-balancer",
+          "PolicyName": "my-duration-cookie-policy"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example generates a stickiness policy with sticky session lifetimes controlled by the specified expiration period.",
+        "id": "elb-create-lb-cookie-stickiness-policy-1",
+        "title": "To generate a duration-based stickiness policy for your load balancer"
+      }
+    ],
+    "CreateLoadBalancer": [
+      {
+        "input": {
+          "Listeners": [
+            {
+              "InstancePort": 80,
+              "InstanceProtocol": "HTTP",
+              "LoadBalancerPort": 80,
+              "Protocol": "HTTP"
+            }
+          ],
+          "LoadBalancerName": "my-load-balancer",
+          "SecurityGroups": [
+            "sg-a61988c3"
+          ],
+          "Subnets": [
+            "subnet-15aaab61"
+          ]
+        },
+        "output": {
+          "DNSName": "my-load-balancer-1234567890.us-west-2.elb.amazonaws.com"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a load balancer with an HTTP listener in a VPC.",
+        "id": "elb-create-load-balancer-1",
+        "title": "To create an HTTP load balancer in a VPC"
+      },
+      {
+        "input": {
+          "AvailabilityZones": [
+            "us-west-2a"
+          ],
+          "Listeners": [
+            {
+              "InstancePort": 80,
+              "InstanceProtocol": "HTTP",
+              "LoadBalancerPort": 80,
+              "Protocol": "HTTP"
+            }
+          ],
+          "LoadBalancerName": "my-load-balancer"
+        },
+        "output": {
+          "DNSName": "my-load-balancer-123456789.us-west-2.elb.amazonaws.com"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a load balancer with an HTTP listener in EC2-Classic.",
+        "id": "elb-create-load-balancer-2",
+        "title": "To create an HTTP load balancer in EC2-Classic"
+      },
+      {
+        "input": {
+          "Listeners": [
+            {
+              "InstancePort": 80,
+              "InstanceProtocol": "HTTP",
+              "LoadBalancerPort": 80,
+              "Protocol": "HTTP"
+            },
+            {
+              "InstancePort": 80,
+              "InstanceProtocol": "HTTP",
+              "LoadBalancerPort": 443,
+              "Protocol": "HTTPS",
+              "SSLCertificateId": "arn:aws:iam::123456789012:server-certificate/my-server-cert"
+            }
+          ],
+          "LoadBalancerName": "my-load-balancer",
+          "SecurityGroups": [
+            "sg-a61988c3"
+          ],
+          "Subnets": [
+            "subnet-15aaab61"
+          ]
+        },
+        "output": {
+          "DNSName": "my-load-balancer-1234567890.us-west-2.elb.amazonaws.com"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a load balancer with an HTTPS listener in a VPC.",
+        "id": "elb-create-load-balancer-3",
+        "title": "To create an HTTPS load balancer in a VPC"
+      },
+      {
+        "input": {
+          "AvailabilityZones": [
+            "us-west-2a"
+          ],
+          "Listeners": [
+            {
+              "InstancePort": 80,
+              "InstanceProtocol": "HTTP",
+              "LoadBalancerPort": 80,
+              "Protocol": "HTTP"
+            },
+            {
+              "InstancePort": 80,
+              "InstanceProtocol": "HTTP",
+              "LoadBalancerPort": 443,
+              "Protocol": "HTTPS",
+              "SSLCertificateId": "arn:aws:iam::123456789012:server-certificate/my-server-cert"
+            }
+          ],
+          "LoadBalancerName": "my-load-balancer"
+        },
+        "output": {
+          "DNSName": "my-load-balancer-123456789.us-west-2.elb.amazonaws.com"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a load balancer with an HTTPS listener in EC2-Classic.",
+        "id": "elb-create-load-balancer-4",
+        "title": "To create an HTTPS load balancer in EC2-Classic"
+      },
+      {
+        "input": {
+          "Listeners": [
+            {
+              "InstancePort": 80,
+              "InstanceProtocol": "HTTP",
+              "LoadBalancerPort": 80,
+              "Protocol": "HTTP"
+            }
+          ],
+          "LoadBalancerName": "my-load-balancer",
+          "Scheme": "internal",
+          "SecurityGroups": [
+            "sg-a61988c3"
+          ],
+          "Subnets": [
+            "subnet-15aaab61"
+          ]
+        },
+        "output": {
+          "DNSName": "internal-my-load-balancer-123456789.us-west-2.elb.amazonaws.com"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates an internal load balancer with an HTTP listener in a VPC.",
+        "id": "elb-create-load-balancer-5",
+        "title": "To create an internal load balancer"
+      }
+    ],
+    "CreateLoadBalancerListeners": [
+      {
+        "input": {
+          "Listeners": [
+            {
+              "InstancePort": 80,
+              "InstanceProtocol": "HTTP",
+              "LoadBalancerPort": 80,
+              "Protocol": "HTTP"
+            }
+          ],
+          "LoadBalancerName": "my-load-balancer"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a listener for your load balancer at port 80 using the HTTP protocol.",
+        "id": "elb-create-load-balancer-listeners-1",
+        "title": "To create an HTTP listener for a load balancer"
+      },
+      {
+        "input": {
+          "Listeners": [
+            {
+              "InstancePort": 80,
+              "InstanceProtocol": "HTTP",
+              "LoadBalancerPort": 443,
+              "Protocol": "HTTPS",
+              "SSLCertificateId": "arn:aws:iam::123456789012:server-certificate/my-server-cert"
+            }
+          ],
+          "LoadBalancerName": "my-load-balancer"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a listener for your load balancer at port 443 using the HTTPS protocol.",
+        "id": "elb-create-load-balancer-listeners-2",
+        "title": "To create an HTTPS listener for a load balancer"
+      }
+    ],
+    "CreateLoadBalancerPolicy": [
+      {
+        "input": {
+          "LoadBalancerName": "my-load-balancer",
+          "PolicyAttributes": [
+            {
+              "AttributeName": "ProxyProtocol",
+              "AttributeValue": "true"
+            }
+          ],
+          "PolicyName": "my-ProxyProtocol-policy",
+          "PolicyTypeName": "ProxyProtocolPolicyType"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a policy that enables Proxy Protocol on the specified load balancer.",
+        "id": "elb-create-load-balancer-policy-1",
+        "title": "To create a policy that enables Proxy Protocol on a load balancer"
+      },
+      {
+        "input": {
+          "LoadBalancerName": "my-load-balancer",
+          "PolicyAttributes": [
+            {
+              "AttributeName": "PublicKey",
+              "AttributeValue": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwAYUjnfyEyXr1pxjhFWBpMlggUcqoi3kl+dS74kj//c6x7ROtusUaeQCTgIUkayttRDWchuqo1pHC1u+n5xxXnBBe2ejbb2WRsKIQ5rXEeixsjFpFsojpSQKkzhVGI6mJVZBJDVKSHmswnwLBdofLhzvllpovBPTHe+o4haAWvDBALJU0pkSI1FecPHcs2hwxf14zHoXy1e2k36A64nXW43wtfx5qcVSIxtCEOjnYRg7RPvybaGfQ+v6Iaxb/+7J5kEvZhTFQId+bSiJImF1FSUT1W1xwzBZPUbcUkkXDj45vC2s3Z8E+Lk7a3uZhvsQHLZnrfuWjBWGWvZ/MhZYgEXAMPLE"
+            }
+          ],
+          "PolicyName": "my-PublicKey-policy",
+          "PolicyTypeName": "PublicKeyPolicyType"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a public key policy.",
+        "id": "elb-create-load-balancer-policy-2",
+        "title": "To create a public key policy"
+      },
+      {
+        "input": {
+          "LoadBalancerName": "my-load-balancer",
+          "PolicyAttributes": [
+            {
+              "AttributeName": "PublicKeyPolicyName",
+              "AttributeValue": "my-PublicKey-policy"
+            }
+          ],
+          "PolicyName": "my-authentication-policy",
+          "PolicyTypeName": "BackendServerAuthenticationPolicyType"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a backend server authentication policy that enables authentication on your backend instance using a public key policy.",
+        "id": "elb-create-load-balancer-policy-3",
+        "title": "To create a backend server authentication policy"
+      }
+    ],
+    "DeleteLoadBalancer": [
+      {
+        "input": {
+          "LoadBalancerName": "my-load-balancer"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified load balancer.",
+        "id": "elb-delete-load-balancer-1",
+        "title": "To delete a load balancer"
+      }
+    ],
+    "DeleteLoadBalancerListeners": [
+      {
+        "input": {
+          "LoadBalancerName": "my-load-balancer",
+          "LoadBalancerPorts": [
+            80
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the listener for the specified port from the specified load balancer.",
+        "id": "elb-delete-load-balancer-listeners-1",
+        "title": "To delete a listener from your load balancer"
+      }
+    ],
+    "DeleteLoadBalancerPolicy": [
+      {
+        "input": {
+          "LoadBalancerName": "my-load-balancer",
+          "PolicyName": "my-duration-cookie-policy"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified policy from the specified load balancer. The policy must not be enabled on any listener.",
+        "id": "elb-delete-load-balancer-policy-1",
+        "title": "To delete a policy from your load balancer"
+      }
+    ],
+    "DeregisterInstancesFromLoadBalancer": [
+      {
+        "input": {
+          "Instances": [
+            {
+              "InstanceId": "i-d6f6fae3"
+            }
+          ],
+          "LoadBalancerName": "my-load-balancer"
+        },
+        "output": {
+          "Instances": [
+            {
+              "InstanceId": "i-207d9717"
+            },
+            {
+              "InstanceId": "i-afefb49b"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deregisters the specified instance from the specified load balancer.",
+        "id": "elb-deregister-instances-from-load-balancer-1",
+        "title": "To deregister instances from a load balancer"
+      }
+    ],
+    "DescribeInstanceHealth": [
+      {
+        "input": {
+          "LoadBalancerName": "my-load-balancer"
+        },
+        "output": {
+          "InstanceStates": [
+            {
+              "Description": "N/A",
+              "InstanceId": "i-207d9717",
+              "ReasonCode": "N/A",
+              "State": "InService"
+            },
+            {
+              "Description": "N/A",
+              "InstanceId": "i-afefb49b",
+              "ReasonCode": "N/A",
+              "State": "InService"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the health of the instances for the specified load balancer.",
+        "id": "elb-describe-instance-health-1",
+        "title": "To describe the health of the instances for a load balancer"
+      }
+    ],
+    "DescribeLoadBalancerAttributes": [
+      {
+        "input": {
+          "LoadBalancerName": "my-load-balancer"
+        },
+        "output": {
+          "LoadBalancerAttributes": {
+            "AccessLog": {
+              "Enabled": false
+            },
+            "ConnectionDraining": {
+              "Enabled": false,
+              "Timeout": 300
+            },
+            "ConnectionSettings": {
+              "IdleTimeout": 60
+            },
+            "CrossZoneLoadBalancing": {
+              "Enabled": false
+            }
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the attributes of the specified load balancer.",
+        "id": "elb-describe-load-balancer-attributes-1",
+        "title": "To describe the attributes of a load balancer"
+      }
+    ],
+    "DescribeLoadBalancerPolicies": [
+      {
+        "input": {
+          "LoadBalancerName": "my-load-balancer",
+          "PolicyNames": [
+            "my-authentication-policy"
+          ]
+        },
+        "output": {
+          "PolicyDescriptions": [
+            {
+              "PolicyAttributeDescriptions": [
+                {
+                  "AttributeName": "PublicKeyPolicyName",
+                  "AttributeValue": "my-PublicKey-policy"
+                }
+              ],
+              "PolicyName": "my-authentication-policy",
+              "PolicyTypeName": "BackendServerAuthenticationPolicyType"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the specified policy associated with the specified load balancer.",
+        "id": "elb-describe-load-balancer-policies-1",
+        "title": "To describe a policy associated with a load balancer"
+      }
+    ],
+    "DescribeLoadBalancerPolicyTypes": [
+      {
+        "input": {
+          "PolicyTypeNames": [
+            "ProxyProtocolPolicyType"
+          ]
+        },
+        "output": {
+          "PolicyTypeDescriptions": [
+            {
+              "Description": "Policy that controls whether to include the IP address and port of the originating request for TCP messages. This policy operates on TCP listeners only.",
+              "PolicyAttributeTypeDescriptions": [
+                {
+                  "AttributeName": "ProxyProtocol",
+                  "AttributeType": "Boolean",
+                  "Cardinality": "ONE"
+                }
+              ],
+              "PolicyTypeName": "ProxyProtocolPolicyType"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the specified load balancer policy type.",
+        "id": "elb-describe-load-balancer-policy-types-1",
+        "title": "To describe a load balancer policy type defined by Elastic Load Balancing"
+      }
+    ],
+    "DescribeLoadBalancers": [
+      {
+        "input": {
+          "LoadBalancerNames": [
+            "my-load-balancer"
+          ]
+        },
+        "output": {
+          "LoadBalancerDescriptions": [
+            {
+              "AvailabilityZones": [
+                "us-west-2a"
+              ],
+              "BackendServerDescriptions": [
+                {
+                  "InstancePort": 80,
+                  "PolicyNames": [
+                    "my-ProxyProtocol-policy"
+                  ]
+                }
+              ],
+              "CanonicalHostedZoneName": "my-load-balancer-1234567890.us-west-2.elb.amazonaws.com",
+              "CanonicalHostedZoneNameID": "Z3DZXE0EXAMPLE",
+              "CreatedTime": "2015-03-19T03:24:02.650Z",
+              "DNSName": "my-load-balancer-1234567890.us-west-2.elb.amazonaws.com",
+              "HealthCheck": {
+                "HealthyThreshold": 2,
+                "Interval": 30,
+                "Target": "HTTP:80/png",
+                "Timeout": 3,
+                "UnhealthyThreshold": 2
+              },
+              "Instances": [
+                {
+                  "InstanceId": "i-207d9717"
+                },
+                {
+                  "InstanceId": "i-afefb49b"
+                }
+              ],
+              "ListenerDescriptions": [
+                {
+                  "Listener": {
+                    "InstancePort": 80,
+                    "InstanceProtocol": "HTTP",
+                    "LoadBalancerPort": 80,
+                    "Protocol": "HTTP"
+                  },
+                  "PolicyNames": [
+
+                  ]
+                },
+                {
+                  "Listener": {
+                    "InstancePort": 443,
+                    "InstanceProtocol": "HTTPS",
+                    "LoadBalancerPort": 443,
+                    "Protocol": "HTTPS",
+                    "SSLCertificateId": "arn:aws:iam::123456789012:server-certificate/my-server-cert"
+                  },
+                  "PolicyNames": [
+                    "ELBSecurityPolicy-2015-03"
+                  ]
+                }
+              ],
+              "LoadBalancerName": "my-load-balancer",
+              "Policies": {
+                "AppCookieStickinessPolicies": [
+
+                ],
+                "LBCookieStickinessPolicies": [
+                  {
+                    "CookieExpirationPeriod": 60,
+                    "PolicyName": "my-duration-cookie-policy"
+                  }
+                ],
+                "OtherPolicies": [
+                  "my-PublicKey-policy",
+                  "my-authentication-policy",
+                  "my-SSLNegotiation-policy",
+                  "my-ProxyProtocol-policy",
+                  "ELBSecurityPolicy-2015-03"
+                ]
+              },
+              "Scheme": "internet-facing",
+              "SecurityGroups": [
+                "sg-a61988c3"
+              ],
+              "SourceSecurityGroup": {
+                "GroupName": "my-elb-sg",
+                "OwnerAlias": "123456789012"
+              },
+              "Subnets": [
+                "subnet-15aaab61"
+              ],
+              "VPCId": "vpc-a01106c2"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the specified load balancer.",
+        "id": "elb-describe-load-balancers-1",
+        "title": "To describe one of your load balancers"
+      }
+    ],
+    "DescribeTags": [
+      {
+        "input": {
+          "LoadBalancerNames": [
+            "my-load-balancer"
+          ]
+        },
+        "output": {
+          "TagDescriptions": [
+            {
+              "LoadBalancerName": "my-load-balancer",
+              "Tags": [
+                {
+                  "Key": "project",
+                  "Value": "lima"
+                },
+                {
+                  "Key": "department",
+                  "Value": "digital-media"
+                }
+              ]
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the tags for the specified load balancer.",
+        "id": "elb-describe-tags-1",
+        "title": "To describe the tags for a load balancer"
+      }
+    ],
+    "DetachLoadBalancerFromSubnets": [
+      {
+        "input": {
+          "LoadBalancerName": "my-load-balancer",
+          "Subnets": [
+            "subnet-0ecac448"
+          ]
+        },
+        "output": {
+          "Subnets": [
+            "subnet-15aaab61"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example detaches the specified load balancer from the specified subnet.",
+        "id": "elb-detach-load-balancer-from-subnets-1",
+        "title": "To detach a load balancer from a subnet"
+      }
+    ],
+    "DisableAvailabilityZonesForLoadBalancer": [
+      {
+        "input": {
+          "AvailabilityZones": [
+            "us-west-2a"
+          ],
+          "LoadBalancerName": "my-load-balancer"
+        },
+        "output": {
+          "AvailabilityZones": [
+            "us-west-2b"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example removes the specified Availability Zone from the set of Availability Zones for the specified load balancer.",
+        "id": "elb-disable-availability-zones-for-load-balancer-1",
+        "title": "To disable an Availability Zone for a load balancer"
+      }
+    ],
+    "EnableAvailabilityZonesForLoadBalancer": [
+      {
+        "input": {
+          "AvailabilityZones": [
+            "us-west-2b"
+          ],
+          "LoadBalancerName": "my-load-balancer"
+        },
+        "output": {
+          "AvailabilityZones": [
+            "us-west-2a",
+            "us-west-2b"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example adds the specified Availability Zone to the specified load balancer.",
+        "id": "elb-enable-availability-zones-for-load-balancer-1",
+        "title": "To enable an Availability Zone for a load balancer"
+      }
+    ],
+    "ModifyLoadBalancerAttributes": [
+      {
+        "input": {
+          "LoadBalancerAttributes": {
+            "CrossZoneLoadBalancing": {
+              "Enabled": true
+            }
+          },
+          "LoadBalancerName": "my-load-balancer"
+        },
+        "output": {
+          "LoadBalancerAttributes": {
+            "CrossZoneLoadBalancing": {
+              "Enabled": true
+            }
+          },
+          "LoadBalancerName": "my-load-balancer"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example enables cross-zone load balancing for the specified load balancer.",
+        "id": "elb-modify-load-balancer-attributes-1",
+        "title": "To enable cross-zone load balancing"
+      },
+      {
+        "input": {
+          "LoadBalancerAttributes": {
+            "ConnectionDraining": {
+              "Enabled": true,
+              "Timeout": 300
+            }
+          },
+          "LoadBalancerName": "my-load-balancer"
+        },
+        "output": {
+          "LoadBalancerAttributes": {
+            "ConnectionDraining": {
+              "Enabled": true,
+              "Timeout": 300
+            }
+          },
+          "LoadBalancerName": "my-load-balancer"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example enables connection draining for the specified load balancer.",
+        "id": "elb-modify-load-balancer-attributes-2",
+        "title": "To enable connection draining"
+      }
+    ],
+    "RegisterInstancesWithLoadBalancer": [
+      {
+        "input": {
+          "Instances": [
+            {
+              "InstanceId": "i-d6f6fae3"
+            }
+          ],
+          "LoadBalancerName": "my-load-balancer"
+        },
+        "output": {
+          "Instances": [
+            {
+              "InstanceId": "i-d6f6fae3"
+            },
+            {
+              "InstanceId": "i-207d9717"
+            },
+            {
+              "InstanceId": "i-afefb49b"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example registers the specified instance with the specified load balancer.",
+        "id": "elb-register-instances-with-load-balancer-1",
+        "title": "To register instances with a load balancer"
+      }
+    ],
+    "RemoveTags": [
+      {
+        "input": {
+          "LoadBalancerNames": [
+            "my-load-balancer"
+          ],
+          "Tags": [
+            {
+              "Key": "project"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example removes the specified tag from the specified load balancer.",
+        "id": "elb-remove-tags-1",
+        "title": "To remove tags from a load balancer"
+      }
+    ],
+    "SetLoadBalancerListenerSSLCertificate": [
+      {
+        "input": {
+          "LoadBalancerName": "my-load-balancer",
+          "LoadBalancerPort": 443,
+          "SSLCertificateId": "arn:aws:iam::123456789012:server-certificate/new-server-cert"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example replaces the existing SSL certificate for the specified HTTPS listener.",
+        "id": "elb-set-load-balancer-listener-ssl-certificate-1",
+        "title": "To update the SSL certificate for an HTTPS listener"
+      }
+    ],
+    "SetLoadBalancerPoliciesForBackendServer": [
+      {
+        "input": {
+          "InstancePort": 80,
+          "LoadBalancerName": "my-load-balancer",
+          "PolicyNames": [
+            "my-ProxyProtocol-policy"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example replaces the policies that are currently associated with the specified port.",
+        "id": "elb-set-load-balancer-policies-for-backend-server-1",
+        "title": "To replace the policies associated with a port for a backend instance"
+      }
+    ],
+    "SetLoadBalancerPoliciesOfListener": [
+      {
+        "input": {
+          "LoadBalancerName": "my-load-balancer",
+          "LoadBalancerPort": 80,
+          "PolicyNames": [
+            "my-SSLNegotiation-policy"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example replaces the policies that are currently associated with the specified listener.",
+        "id": "elb-set-load-balancer-policies-of-listener-1",
+        "title": "To replace the policies associated with a listener"
+      }
+    ]
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/elb/2012-06-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/elb/2012-06-01/paginators-1.json
new file mode 100644
index 00000000..b3bd3301
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/elb/2012-06-01/paginators-1.json
@@ -0,0 +1,16 @@
+{
+  "pagination": {
+    "DescribeLoadBalancers": {
+      "input_token": "Marker",
+      "output_token": "NextMarker",
+      "result_key": "LoadBalancerDescriptions",
+      "limit_key": "PageSize"
+    },
+    "DescribeAccountLimits": {
+      "input_token": "Marker",
+      "limit_key": "PageSize",
+      "output_token": "NextMarker",
+      "result_key": "Limits"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/elb/2012-06-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/elb/2012-06-01/service-2.json.gz
new file mode 100644
index 00000000..09da8008
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/elb/2012-06-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/elb/2012-06-01/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/elb/2012-06-01/waiters-2.json
new file mode 100644
index 00000000..182e070b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/elb/2012-06-01/waiters-2.json
@@ -0,0 +1,54 @@
+{
+    "version":2,
+    "waiters":{
+        "InstanceDeregistered": {
+          "delay": 15,
+          "operation": "DescribeInstanceHealth",
+          "maxAttempts": 40,
+          "acceptors": [
+            {
+              "expected": "OutOfService",
+              "matcher": "pathAll",
+              "state": "success",
+              "argument": "InstanceStates[].State"
+            },
+            {
+              "matcher": "error",
+              "expected": "InvalidInstance",
+              "state": "success"
+            }
+          ]
+        },
+        "AnyInstanceInService":{
+            "acceptors":[
+                {
+                    "argument":"InstanceStates[].State",
+                    "expected":"InService",
+                    "matcher":"pathAny",
+                    "state":"success"
+                }
+            ],
+            "delay":15,
+            "maxAttempts":40,
+            "operation":"DescribeInstanceHealth"
+        },
+        "InstanceInService":{
+            "acceptors":[
+                {
+                    "argument":"InstanceStates[].State",
+                    "expected":"InService",
+                    "matcher":"pathAll",
+                    "state":"success"
+                },
+                {
+                    "matcher": "error",
+                    "expected": "InvalidInstance",
+                    "state": "retry"
+                }
+            ],
+            "delay":15,
+            "maxAttempts":40,
+            "operation":"DescribeInstanceHealth"
+        }
+    }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/elbv2/2015-12-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/elbv2/2015-12-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..e0be4296
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/elbv2/2015-12-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/elbv2/2015-12-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/elbv2/2015-12-01/examples-1.json
new file mode 100644
index 00000000..508b0991
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/elbv2/2015-12-01/examples-1.json
@@ -0,0 +1,1384 @@
+{
+  "version": "1.0",
+  "examples": {
+    "AddTags": [
+      {
+        "input": {
+          "ResourceArns": [
+            "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188"
+          ],
+          "Tags": [
+            {
+              "Key": "project",
+              "Value": "lima"
+            },
+            {
+              "Key": "department",
+              "Value": "digital-media"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example adds the specified tags to the specified load balancer.",
+        "id": "elbv2-add-tags-1",
+        "title": "To add tags to a load balancer"
+      }
+    ],
+    "CreateListener": [
+      {
+        "input": {
+          "DefaultActions": [
+            {
+              "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067",
+              "Type": "forward"
+            }
+          ],
+          "LoadBalancerArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188",
+          "Port": 80,
+          "Protocol": "HTTP"
+        },
+        "output": {
+          "Listeners": [
+            {
+              "DefaultActions": [
+                {
+                  "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067",
+                  "Type": "forward"
+                }
+              ],
+              "ListenerArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:listener/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2",
+              "LoadBalancerArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188",
+              "Port": 80,
+              "Protocol": "HTTP"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates an HTTP listener for the specified load balancer that forwards requests to the specified target group.",
+        "id": "elbv2-create-listener-1",
+        "title": "To create an HTTP listener"
+      },
+      {
+        "input": {
+          "Certificates": [
+            {
+              "CertificateArn": "arn:aws:iam::123456789012:server-certificate/my-server-cert"
+            }
+          ],
+          "DefaultActions": [
+            {
+              "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067",
+              "Type": "forward"
+            }
+          ],
+          "LoadBalancerArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188",
+          "Port": 443,
+          "Protocol": "HTTPS",
+          "SslPolicy": "ELBSecurityPolicy-2015-05"
+        },
+        "output": {
+          "Listeners": [
+            {
+              "Certificates": [
+                {
+                  "CertificateArn": "arn:aws:iam::123456789012:server-certificate/my-server-cert"
+                }
+              ],
+              "DefaultActions": [
+                {
+                  "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067",
+                  "Type": "forward"
+                }
+              ],
+              "ListenerArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:listener/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2",
+              "LoadBalancerArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188",
+              "Port": 443,
+              "Protocol": "HTTPS",
+              "SslPolicy": "ELBSecurityPolicy-2015-05"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates an HTTPS listener for the specified load balancer that forwards requests to the specified target group. Note that you must specify an SSL certificate for an HTTPS listener. You can create and manage certificates using AWS Certificate Manager (ACM). Alternatively, you can create a certificate using SSL/TLS tools, get the certificate signed by a certificate authority (CA), and upload the certificate to AWS Identity and Access Management (IAM).",
+        "id": "elbv2-create-listener-2",
+        "title": "To create an HTTPS listener"
+      }
+    ],
+    "CreateLoadBalancer": [
+      {
+        "input": {
+          "Name": "my-load-balancer",
+          "Subnets": [
+            "subnet-b7d581c0",
+            "subnet-8360a9e7"
+          ]
+        },
+        "output": {
+          "LoadBalancers": [
+            {
+              "AvailabilityZones": [
+                {
+                  "SubnetId": "subnet-8360a9e7",
+                  "ZoneName": "us-west-2a"
+                },
+                {
+                  "SubnetId": "subnet-b7d581c0",
+                  "ZoneName": "us-west-2b"
+                }
+              ],
+              "CanonicalHostedZoneId": "Z2P70J7EXAMPLE",
+              "CreatedTime": "2016-03-25T21:26:12.920Z",
+              "DNSName": "my-load-balancer-424835706.us-west-2.elb.amazonaws.com",
+              "LoadBalancerArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188",
+              "LoadBalancerName": "my-load-balancer",
+              "Scheme": "internet-facing",
+              "SecurityGroups": [
+                "sg-5943793c"
+              ],
+              "State": {
+                "Code": "provisioning"
+              },
+              "Type": "application",
+              "VpcId": "vpc-3ac0fb5f"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates an Internet-facing load balancer and enables the Availability Zones for the specified subnets.",
+        "id": "elbv2-create-load-balancer-1",
+        "title": "To create an Internet-facing load balancer"
+      },
+      {
+        "input": {
+          "Name": "my-internal-load-balancer",
+          "Scheme": "internal",
+          "SecurityGroups": [
+
+          ],
+          "Subnets": [
+            "subnet-b7d581c0",
+            "subnet-8360a9e7"
+          ]
+        },
+        "output": {
+          "LoadBalancers": [
+            {
+              "AvailabilityZones": [
+                {
+                  "SubnetId": "subnet-8360a9e7",
+                  "ZoneName": "us-west-2a"
+                },
+                {
+                  "SubnetId": "subnet-b7d581c0",
+                  "ZoneName": "us-west-2b"
+                }
+              ],
+              "CanonicalHostedZoneId": "Z2P70J7EXAMPLE",
+              "CreatedTime": "2016-03-25T21:29:48.850Z",
+              "DNSName": "internal-my-internal-load-balancer-1529930873.us-west-2.elb.amazonaws.com",
+              "LoadBalancerArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-internal-load-balancer/5b49b8d4303115c2",
+              "LoadBalancerName": "my-internal-load-balancer",
+              "Scheme": "internal",
+              "SecurityGroups": [
+                "sg-5943793c"
+              ],
+              "State": {
+                "Code": "provisioning"
+              },
+              "Type": "application",
+              "VpcId": "vpc-3ac0fb5f"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates an internal load balancer and enables the Availability Zones for the specified subnets.",
+        "id": "elbv2-create-load-balancer-2",
+        "title": "To create an internal load balancer"
+      }
+    ],
+    "CreateRule": [
+      {
+        "input": {
+          "Actions": [
+            {
+              "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067",
+              "Type": "forward"
+            }
+          ],
+          "Conditions": [
+            {
+              "Field": "path-pattern",
+              "Values": [
+                "/img/*"
+              ]
+            }
+          ],
+          "ListenerArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:listener/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2",
+          "Priority": 10
+        },
+        "output": {
+          "Rules": [
+            {
+              "Actions": [
+                {
+                  "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067",
+                  "Type": "forward"
+                }
+              ],
+              "Conditions": [
+                {
+                  "Field": "path-pattern",
+                  "Values": [
+                    "/img/*"
+                  ]
+                }
+              ],
+              "IsDefault": false,
+              "Priority": "10",
+              "RuleArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:listener-rule/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2/9683b2d02a6cabee"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a rule that forwards requests to the specified target group if the URL contains the specified pattern (for example, /img/*).",
+        "id": "elbv2-create-rule-1",
+        "title": "To create a rule"
+      }
+    ],
+    "CreateTargetGroup": [
+      {
+        "input": {
+          "Name": "my-targets",
+          "Port": 80,
+          "Protocol": "HTTP",
+          "VpcId": "vpc-3ac0fb5f"
+        },
+        "output": {
+          "TargetGroups": [
+            {
+              "HealthCheckIntervalSeconds": 30,
+              "HealthCheckPath": "/",
+              "HealthCheckPort": "traffic-port",
+              "HealthCheckProtocol": "HTTP",
+              "HealthCheckTimeoutSeconds": 5,
+              "HealthyThresholdCount": 5,
+              "Matcher": {
+                "HttpCode": "200"
+              },
+              "Port": 80,
+              "Protocol": "HTTP",
+              "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067",
+              "TargetGroupName": "my-targets",
+              "UnhealthyThresholdCount": 2,
+              "VpcId": "vpc-3ac0fb5f"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a target group that you can use to route traffic to targets using HTTP on port 80. This target group uses the default health check configuration.",
+        "id": "elbv2-create-target-group-1",
+        "title": "To create a target group"
+      }
+    ],
+    "DeleteListener": [
+      {
+        "input": {
+          "ListenerArn": "arn:aws:elasticloadbalancing:ua-west-2:123456789012:listener/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified listener.",
+        "id": "elbv2-delete-listener-1",
+        "title": "To delete a listener"
+      }
+    ],
+    "DeleteLoadBalancer": [
+      {
+        "input": {
+          "LoadBalancerArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified load balancer.",
+        "id": "elbv2-delete-load-balancer-1",
+        "title": "To delete a load balancer"
+      }
+    ],
+    "DeleteRule": [
+      {
+        "input": {
+          "RuleArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:listener-rule/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2/1291d13826f405c3"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified rule.",
+        "id": "elbv2-delete-rule-1",
+        "title": "To delete a rule"
+      }
+    ],
+    "DeleteTargetGroup": [
+      {
+        "input": {
+          "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified target group.",
+        "id": "elbv2-delete-target-group-1",
+        "title": "To delete a target group"
+      }
+    ],
+    "DeregisterTargets": [
+      {
+        "input": {
+          "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067",
+          "Targets": [
+            {
+              "Id": "i-0f76fade"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deregisters the specified instance from the specified target group.",
+        "id": "elbv2-deregister-targets-1",
+        "title": "To deregister a target from a target group"
+      }
+    ],
+    "DescribeListeners": [
+      {
+        "input": {
+          "ListenerArns": [
+            "arn:aws:elasticloadbalancing:us-west-2:123456789012:listener/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2"
+          ]
+        },
+        "output": {
+          "Listeners": [
+            {
+              "DefaultActions": [
+                {
+                  "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067",
+                  "Type": "forward"
+                }
+              ],
+              "ListenerArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:listener/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2",
+              "LoadBalancerArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188",
+              "Port": 80,
+              "Protocol": "HTTP"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the specified listener.",
+        "id": "elbv2-describe-listeners-1",
+        "title": "To describe a listener"
+      }
+    ],
+    "DescribeLoadBalancerAttributes": [
+      {
+        "input": {
+          "LoadBalancerArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188"
+        },
+        "output": {
+          "Attributes": [
+            {
+              "Key": "access_logs.s3.enabled",
+              "Value": "false"
+            },
+            {
+              "Key": "idle_timeout.timeout_seconds",
+              "Value": "60"
+            },
+            {
+              "Key": "access_logs.s3.prefix",
+              "Value": ""
+            },
+            {
+              "Key": "deletion_protection.enabled",
+              "Value": "false"
+            },
+            {
+              "Key": "access_logs.s3.bucket",
+              "Value": ""
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the attributes of the specified load balancer.",
+        "id": "elbv2-describe-load-balancer-attributes-1",
+        "title": "To describe load balancer attributes"
+      }
+    ],
+    "DescribeLoadBalancers": [
+      {
+        "input": {
+          "LoadBalancerArns": [
+            "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188"
+          ]
+        },
+        "output": {
+          "LoadBalancers": [
+            {
+              "AvailabilityZones": [
+                {
+                  "SubnetId": "subnet-8360a9e7",
+                  "ZoneName": "us-west-2a"
+                },
+                {
+                  "SubnetId": "subnet-b7d581c0",
+                  "ZoneName": "us-west-2b"
+                }
+              ],
+              "CanonicalHostedZoneId": "Z2P70J7EXAMPLE",
+              "CreatedTime": "2016-03-25T21:26:12.920Z",
+              "DNSName": "my-load-balancer-424835706.us-west-2.elb.amazonaws.com",
+              "LoadBalancerArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188",
+              "LoadBalancerName": "my-load-balancer",
+              "Scheme": "internet-facing",
+              "SecurityGroups": [
+                "sg-5943793c"
+              ],
+              "State": {
+                "Code": "active"
+              },
+              "Type": "application",
+              "VpcId": "vpc-3ac0fb5f"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the specified load balancer.",
+        "id": "elbv2-describe-load-balancers-1",
+        "title": "To describe a load balancer"
+      }
+    ],
+    "DescribeRules": [
+      {
+        "input": {
+          "RuleArns": [
+            "arn:aws:elasticloadbalancing:us-west-2:123456789012:listener-rule/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2/9683b2d02a6cabee"
+          ]
+        },
+        "output": {
+          "Rules": [
+            {
+              "Actions": [
+                {
+                  "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067",
+                  "Type": "forward"
+                }
+              ],
+              "Conditions": [
+                {
+                  "Field": "path-pattern",
+                  "Values": [
+                    "/img/*"
+                  ]
+                }
+              ],
+              "IsDefault": false,
+              "Priority": "10",
+              "RuleArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:listener-rule/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2/9683b2d02a6cabee"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the specified rule.",
+        "id": "elbv2-describe-rules-1",
+        "title": "To describe a rule"
+      }
+    ],
+    "DescribeSSLPolicies": [
+      {
+        "input": {
+          "Names": [
+            "ELBSecurityPolicy-2015-05"
+          ]
+        },
+        "output": {
+          "SslPolicies": [
+            {
+              "Ciphers": [
+                {
+                  "Name": "ECDHE-ECDSA-AES128-GCM-SHA256",
+                  "Priority": 1
+                },
+                {
+                  "Name": "ECDHE-RSA-AES128-GCM-SHA256",
+                  "Priority": 2
+                },
+                {
+                  "Name": "ECDHE-ECDSA-AES128-SHA256",
+                  "Priority": 3
+                },
+                {
+                  "Name": "ECDHE-RSA-AES128-SHA256",
+                  "Priority": 4
+                },
+                {
+                  "Name": "ECDHE-ECDSA-AES128-SHA",
+                  "Priority": 5
+                },
+                {
+                  "Name": "ECDHE-RSA-AES128-SHA",
+                  "Priority": 6
+                },
+                {
+                  "Name": "DHE-RSA-AES128-SHA",
+                  "Priority": 7
+                },
+                {
+                  "Name": "ECDHE-ECDSA-AES256-GCM-SHA384",
+                  "Priority": 8
+                },
+                {
+                  "Name": "ECDHE-RSA-AES256-GCM-SHA384",
+                  "Priority": 9
+                },
+                {
+                  "Name": "ECDHE-ECDSA-AES256-SHA384",
+                  "Priority": 10
+                },
+                {
+                  "Name": "ECDHE-RSA-AES256-SHA384",
+                  "Priority": 11
+                },
+                {
+                  "Name": "ECDHE-RSA-AES256-SHA",
+                  "Priority": 12
+                },
+                {
+                  "Name": "ECDHE-ECDSA-AES256-SHA",
+                  "Priority": 13
+                },
+                {
+                  "Name": "AES128-GCM-SHA256",
+                  "Priority": 14
+                },
+                {
+                  "Name": "AES128-SHA256",
+                  "Priority": 15
+                },
+                {
+                  "Name": "AES128-SHA",
+                  "Priority": 16
+                },
+                {
+                  "Name": "AES256-GCM-SHA384",
+                  "Priority": 17
+                },
+                {
+                  "Name": "AES256-SHA256",
+                  "Priority": 18
+                },
+                {
+                  "Name": "AES256-SHA",
+                  "Priority": 19
+                }
+              ],
+              "Name": "ELBSecurityPolicy-2015-05",
+              "SslProtocols": [
+                "TLSv1",
+                "TLSv1.1",
+                "TLSv1.2"
+              ]
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the specified policy used for SSL negotiation.",
+        "id": "elbv2-describe-ssl-policies-1",
+        "title": "To describe a policy used for SSL negotiation"
+      }
+    ],
+    "DescribeTags": [
+      {
+        "input": {
+          "ResourceArns": [
+            "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188"
+          ]
+        },
+        "output": {
+          "TagDescriptions": [
+            {
+              "ResourceArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188",
+              "Tags": [
+                {
+                  "Key": "project",
+                  "Value": "lima"
+                },
+                {
+                  "Key": "department",
+                  "Value": "digital-media"
+                }
+              ]
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the tags assigned to the specified load balancer.",
+        "id": "elbv2-describe-tags-1",
+        "title": "To describe the tags assigned to a load balancer"
+      }
+    ],
+    "DescribeTargetGroupAttributes": [
+      {
+        "input": {
+          "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067"
+        },
+        "output": {
+          "Attributes": [
+            {
+              "Key": "stickiness.enabled",
+              "Value": "false"
+            },
+            {
+              "Key": "deregistration_delay.timeout_seconds",
+              "Value": "300"
+            },
+            {
+              "Key": "stickiness.type",
+              "Value": "lb_cookie"
+            },
+            {
+              "Key": "stickiness.lb_cookie.duration_seconds",
+              "Value": "86400"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the attributes of the specified target group.",
+        "id": "elbv2-describe-target-group-attributes-1",
+        "title": "To describe target group attributes"
+      }
+    ],
+    "DescribeTargetGroups": [
+      {
+        "input": {
+          "TargetGroupArns": [
+            "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067"
+          ]
+        },
+        "output": {
+          "TargetGroups": [
+            {
+              "HealthCheckIntervalSeconds": 30,
+              "HealthCheckPath": "/",
+              "HealthCheckPort": "traffic-port",
+              "HealthCheckProtocol": "HTTP",
+              "HealthCheckTimeoutSeconds": 5,
+              "HealthyThresholdCount": 5,
+              "LoadBalancerArns": [
+                "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188"
+              ],
+              "Matcher": {
+                "HttpCode": "200"
+              },
+              "Port": 80,
+              "Protocol": "HTTP",
+              "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067",
+              "TargetGroupName": "my-targets",
+              "UnhealthyThresholdCount": 2,
+              "VpcId": "vpc-3ac0fb5f"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the specified target group.",
+        "id": "elbv2-describe-target-groups-1",
+        "title": "To describe a target group"
+      }
+    ],
+    "DescribeTargetHealth": [
+      {
+        "input": {
+          "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067"
+        },
+        "output": {
+          "TargetHealthDescriptions": [
+            {
+              "Target": {
+                "Id": "i-0f76fade",
+                "Port": 80
+              },
+              "TargetHealth": {
+                "Description": "Given target group is not configured to receive traffic from ELB",
+                "Reason": "Target.NotInUse",
+                "State": "unused"
+              }
+            },
+            {
+              "HealthCheckPort": "80",
+              "Target": {
+                "Id": "i-0f76fade",
+                "Port": 80
+              },
+              "TargetHealth": {
+                "State": "healthy"
+              }
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the health of the targets for the specified target group. One target is healthy but the other is not specified in an action, so it can't receive traffic from the load balancer.",
+        "id": "elbv2-describe-target-health-1",
+        "title": "To describe the health of the targets for a target group"
+      },
+      {
+        "input": {
+          "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067",
+          "Targets": [
+            {
+              "Id": "i-0f76fade",
+              "Port": 80
+            }
+          ]
+        },
+        "output": {
+          "TargetHealthDescriptions": [
+            {
+              "HealthCheckPort": "80",
+              "Target": {
+                "Id": "i-0f76fade",
+                "Port": 80
+              },
+              "TargetHealth": {
+                "State": "healthy"
+              }
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example describes the health of the specified target. This target is healthy.",
+        "id": "elbv2-describe-target-health-2",
+        "title": "To describe the health of a target"
+      }
+    ],
+    "ModifyListener": [
+      {
+        "input": {
+          "DefaultActions": [
+            {
+              "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-new-targets/2453ed029918f21f",
+              "Type": "forward"
+            }
+          ],
+          "ListenerArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:listener/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2"
+        },
+        "output": {
+          "Listeners": [
+            {
+              "DefaultActions": [
+                {
+                  "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-new-targets/2453ed029918f21f",
+                  "Type": "forward"
+                }
+              ],
+              "ListenerArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:listener/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2",
+              "LoadBalancerArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188",
+              "Port": 80,
+              "Protocol": "HTTP"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example changes the default action for the specified listener.",
+        "id": "elbv2-modify-listener-1",
+        "title": "To change the default action for a listener"
+      },
+      {
+        "input": {
+          "Certificates": [
+            {
+              "CertificateArn": "arn:aws:iam::123456789012:server-certificate/my-new-server-cert"
+            }
+          ],
+          "ListenerArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:listener/app/my-load-balancer/50dc6c495c0c9188/0467ef3c8400ae65"
+        },
+        "output": {
+          "Listeners": [
+            {
+              "Certificates": [
+                {
+                  "CertificateArn": "arn:aws:iam::123456789012:server-certificate/my-new-server-cert"
+                }
+              ],
+              "DefaultActions": [
+                {
+                  "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067",
+                  "Type": "forward"
+                }
+              ],
+              "ListenerArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:listener/app/my-load-balancer/50dc6c495c0c9188/0467ef3c8400ae65",
+              "LoadBalancerArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188",
+              "Port": 443,
+              "Protocol": "HTTPS",
+              "SslPolicy": "ELBSecurityPolicy-2015-05"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example changes the server certificate for the specified HTTPS listener.",
+        "id": "elbv2-modify-listener-2",
+        "title": "To change the server certificate"
+      }
+    ],
+    "ModifyLoadBalancerAttributes": [
+      {
+        "input": {
+          "Attributes": [
+            {
+              "Key": "deletion_protection.enabled",
+              "Value": "true"
+            }
+          ],
+          "LoadBalancerArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188"
+        },
+        "output": {
+          "Attributes": [
+            {
+              "Key": "deletion_protection.enabled",
+              "Value": "true"
+            },
+            {
+              "Key": "access_logs.s3.enabled",
+              "Value": "false"
+            },
+            {
+              "Key": "idle_timeout.timeout_seconds",
+              "Value": "60"
+            },
+            {
+              "Key": "access_logs.s3.prefix",
+              "Value": ""
+            },
+            {
+              "Key": "access_logs.s3.bucket",
+              "Value": ""
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example enables deletion protection for the specified load balancer.",
+        "id": "elbv2-modify-load-balancer-attributes-1",
+        "title": "To enable deletion protection"
+      },
+      {
+        "input": {
+          "Attributes": [
+            {
+              "Key": "idle_timeout.timeout_seconds",
+              "Value": "30"
+            }
+          ],
+          "LoadBalancerArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188"
+        },
+        "output": {
+          "Attributes": [
+            {
+              "Key": "idle_timeout.timeout_seconds",
+              "Value": "30"
+            },
+            {
+              "Key": "access_logs.s3.enabled",
+              "Value": "false"
+            },
+            {
+              "Key": "access_logs.s3.prefix",
+              "Value": ""
+            },
+            {
+              "Key": "deletion_protection.enabled",
+              "Value": "true"
+            },
+            {
+              "Key": "access_logs.s3.bucket",
+              "Value": ""
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example changes the idle timeout value for the specified load balancer.",
+        "id": "elbv2-modify-load-balancer-attributes-2",
+        "title": "To change the idle timeout"
+      },
+      {
+        "input": {
+          "Attributes": [
+            {
+              "Key": "access_logs.s3.enabled",
+              "Value": "true"
+            },
+            {
+              "Key": "access_logs.s3.bucket",
+              "Value": "my-loadbalancer-logs"
+            },
+            {
+              "Key": "access_logs.s3.prefix",
+              "Value": "myapp"
+            }
+          ],
+          "LoadBalancerArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188"
+        },
+        "output": {
+          "Attributes": [
+            {
+              "Key": "access_logs.s3.enabled",
+              "Value": "true"
+            },
+            {
+              "Key": "access_logs.s3.bucket",
+              "Value": "my-load-balancer-logs"
+            },
+            {
+              "Key": "access_logs.s3.prefix",
+              "Value": "myapp"
+            },
+            {
+              "Key": "idle_timeout.timeout_seconds",
+              "Value": "60"
+            },
+            {
+              "Key": "deletion_protection.enabled",
+              "Value": "false"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example enables access logs for the specified load balancer. Note that the S3 bucket must exist in the same region as the load balancer and must have a policy attached that grants access to the Elastic Load Balancing service.",
+        "id": "elbv2-modify-load-balancer-attributes-3",
+        "title": "To enable access logs"
+      }
+    ],
+    "ModifyRule": [
+      {
+        "input": {
+          "Conditions": [
+            {
+              "Field": "path-pattern",
+              "Values": [
+                "/images/*"
+              ]
+            }
+          ],
+          "RuleArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:listener-rule/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2/9683b2d02a6cabee"
+        },
+        "output": {
+          "Rules": [
+            {
+              "Actions": [
+                {
+                  "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067",
+                  "Type": "forward"
+                }
+              ],
+              "Conditions": [
+                {
+                  "Field": "path-pattern",
+                  "Values": [
+                    "/images/*"
+                  ]
+                }
+              ],
+              "IsDefault": false,
+              "Priority": "10",
+              "RuleArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:listener-rule/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2/9683b2d02a6cabee"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example modifies the condition for the specified rule.",
+        "id": "elbv2-modify-rule-1",
+        "title": "To modify a rule"
+      }
+    ],
+    "ModifyTargetGroup": [
+      {
+        "input": {
+          "HealthCheckPort": "443",
+          "HealthCheckProtocol": "HTTPS",
+          "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-https-targets/2453ed029918f21f"
+        },
+        "output": {
+          "TargetGroups": [
+            {
+              "HealthCheckIntervalSeconds": 30,
+              "HealthCheckPort": "443",
+              "HealthCheckProtocol": "HTTPS",
+              "HealthCheckTimeoutSeconds": 5,
+              "HealthyThresholdCount": 5,
+              "LoadBalancerArns": [
+                "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188"
+              ],
+              "Matcher": {
+                "HttpCode": "200"
+              },
+              "Port": 443,
+              "Protocol": "HTTPS",
+              "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-https-targets/2453ed029918f21f",
+              "TargetGroupName": "my-https-targets",
+              "UnhealthyThresholdCount": 2,
+              "VpcId": "vpc-3ac0fb5f"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example changes the configuration of the health checks used to evaluate the health of the targets for the specified target group.",
+        "id": "elbv2-modify-target-group-1",
+        "title": "To modify the health check configuration for a target group"
+      }
+    ],
+    "ModifyTargetGroupAttributes": [
+      {
+        "input": {
+          "Attributes": [
+            {
+              "Key": "deregistration_delay.timeout_seconds",
+              "Value": "600"
+            }
+          ],
+          "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067"
+        },
+        "output": {
+          "Attributes": [
+            {
+              "Key": "stickiness.enabled",
+              "Value": "false"
+            },
+            {
+              "Key": "deregistration_delay.timeout_seconds",
+              "Value": "600"
+            },
+            {
+              "Key": "stickiness.type",
+              "Value": "lb_cookie"
+            },
+            {
+              "Key": "stickiness.lb_cookie.duration_seconds",
+              "Value": "86400"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example sets the deregistration delay timeout to the specified value for the specified target group.",
+        "id": "elbv2-modify-target-group-attributes-1",
+        "title": "To modify the deregistration delay timeout"
+      }
+    ],
+    "RegisterTargets": [
+      {
+        "input": {
+          "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067",
+          "Targets": [
+            {
+              "Id": "i-80c8dd94"
+            },
+            {
+              "Id": "i-ceddcd4d"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example registers the specified instances with the specified target group.",
+        "id": "elbv2-register-targets-1",
+        "title": "To register targets with a target group"
+      },
+      {
+        "input": {
+          "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-new-targets/3bb63f11dfb0faf9",
+          "Targets": [
+            {
+              "Id": "i-80c8dd94",
+              "Port": 80
+            },
+            {
+              "Id": "i-80c8dd94",
+              "Port": 766
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example registers the specified instance with the specified target group using multiple ports. This enables you to register ECS containers on the same instance as targets in the target group.",
+        "id": "elbv2-register-targets-2",
+        "title": "To register targets with a target group using port overrides"
+      }
+    ],
+    "RemoveTags": [
+      {
+        "input": {
+          "ResourceArns": [
+            "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188"
+          ],
+          "TagKeys": [
+            "project",
+            "department"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example removes the specified tags from the specified load balancer.",
+        "id": "elbv2-remove-tags-1",
+        "title": "To remove tags from a load balancer"
+      }
+    ],
+    "SetRulePriorities": [
+      {
+        "input": {
+          "RulePriorities": [
+            {
+              "Priority": 5,
+              "RuleArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:listener-rule/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2/1291d13826f405c3"
+            }
+          ]
+        },
+        "output": {
+          "Rules": [
+            {
+              "Actions": [
+                {
+                  "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067",
+                  "Type": "forward"
+                }
+              ],
+              "Conditions": [
+                {
+                  "Field": "path-pattern",
+                  "Values": [
+                    "/img/*"
+                  ]
+                }
+              ],
+              "IsDefault": false,
+              "Priority": "5",
+              "RuleArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:listener-rule/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2/1291d13826f405c3"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example sets the priority of the specified rule.",
+        "id": "elbv2-set-rule-priorities-1",
+        "title": "To set the rule priority"
+      }
+    ],
+    "SetSecurityGroups": [
+      {
+        "input": {
+          "LoadBalancerArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188",
+          "SecurityGroups": [
+            "sg-5943793c"
+          ]
+        },
+        "output": {
+          "SecurityGroupIds": [
+            "sg-5943793c"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example associates the specified security group with the specified load balancer.",
+        "id": "elbv2-set-security-groups-1",
+        "title": "To associate a security group with a load balancer"
+      }
+    ],
+    "SetSubnets": [
+      {
+        "input": {
+          "LoadBalancerArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188",
+          "Subnets": [
+            "subnet-8360a9e7",
+            "subnet-b7d581c0"
+          ]
+        },
+        "output": {
+          "AvailabilityZones": [
+            {
+              "SubnetId": "subnet-8360a9e7",
+              "ZoneName": "us-west-2a"
+            },
+            {
+              "SubnetId": "subnet-b7d581c0",
+              "ZoneName": "us-west-2b"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example enables the Availability Zones for the specified subnets for the specified load balancer.",
+        "id": "elbv2-set-subnets-1",
+        "title": "To enable Availability Zones for a load balancer"
+      }
+    ]
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/elbv2/2015-12-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/elbv2/2015-12-01/paginators-1.json
new file mode 100644
index 00000000..4521f5c2
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/elbv2/2015-12-01/paginators-1.json
@@ -0,0 +1,46 @@
+{
+  "pagination": {
+    "DescribeLoadBalancers": {
+      "input_token": "Marker",
+      "output_token": "NextMarker",
+      "limit_key": "PageSize",
+      "result_key": "LoadBalancers"
+    },
+    "DescribeTargetGroups": {
+      "input_token": "Marker",
+      "output_token": "NextMarker",
+      "limit_key": "PageSize",
+      "result_key": "TargetGroups"
+    },
+    "DescribeListeners": {
+      "input_token": "Marker",
+      "output_token": "NextMarker",
+      "limit_key": "PageSize",
+      "result_key": "Listeners"
+    },
+    "DescribeAccountLimits": {
+      "input_token": "Marker",
+      "limit_key": "PageSize",
+      "output_token": "NextMarker",
+      "result_key": "Limits"
+    },
+    "DescribeListenerCertificates": {
+      "input_token": "Marker",
+      "limit_key": "PageSize",
+      "output_token": "NextMarker",
+      "result_key": "Certificates"
+    },
+    "DescribeRules": {
+      "input_token": "Marker",
+      "limit_key": "PageSize",
+      "output_token": "NextMarker",
+      "result_key": "Rules"
+    },
+    "DescribeSSLPolicies": {
+      "input_token": "Marker",
+      "limit_key": "PageSize",
+      "output_token": "NextMarker",
+      "result_key": "SslPolicies"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/elbv2/2015-12-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/elbv2/2015-12-01/service-2.json.gz
new file mode 100644
index 00000000..0856f1f3
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/elbv2/2015-12-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/elbv2/2015-12-01/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/elbv2/2015-12-01/waiters-2.json
new file mode 100644
index 00000000..9f3d77d8
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/elbv2/2015-12-01/waiters-2.json
@@ -0,0 +1,100 @@
+{
+  "version": 2,
+  "waiters": {
+    "LoadBalancerExists": {
+      "delay": 15,
+      "operation": "DescribeLoadBalancers",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "matcher": "status",
+          "expected": 200,
+          "state": "success"
+        },
+        {
+          "matcher": "error",
+          "expected": "LoadBalancerNotFound",
+          "state": "retry"
+        }
+      ]
+    },
+    "LoadBalancerAvailable": {
+      "delay": 15,
+      "operation": "DescribeLoadBalancers",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "pathAll",
+          "argument": "LoadBalancers[].State.Code",
+          "expected": "active"
+        },
+        {
+          "state": "retry",
+          "matcher": "pathAny",
+          "argument": "LoadBalancers[].State.Code",
+          "expected": "provisioning"
+        },
+        {
+          "state": "retry",
+          "matcher": "error",
+          "expected": "LoadBalancerNotFound"
+        }
+      ]
+    },
+    "LoadBalancersDeleted": {
+      "delay": 15,
+      "operation": "DescribeLoadBalancers",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "state": "retry",
+          "matcher": "pathAll",
+          "argument": "LoadBalancers[].State.Code",
+          "expected": "active"
+        },
+        {
+          "matcher": "error",
+          "expected": "LoadBalancerNotFound",
+          "state": "success"
+        }
+      ]
+    },
+    "TargetInService":{
+      "delay":15,
+      "maxAttempts":40,
+      "operation":"DescribeTargetHealth",
+      "acceptors":[
+        {
+          "argument":"TargetHealthDescriptions[].TargetHealth.State",
+          "expected":"healthy",
+          "matcher":"pathAll",
+          "state":"success"
+        },
+        {
+          "matcher": "error",
+          "expected": "InvalidInstance",
+          "state": "retry"
+        }
+      ]
+    },
+    "TargetDeregistered": {
+      "delay": 15,
+      "maxAttempts": 40,
+      "operation": "DescribeTargetHealth",
+      "acceptors": [
+        {
+          "matcher": "error",
+          "expected": "InvalidTarget",
+          "state": "success"
+        },
+        {
+          "argument":"TargetHealthDescriptions[].TargetHealth.State",
+          "expected":"unused",
+          "matcher":"pathAll",
+          "state":"success"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/emr-containers/2020-10-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/emr-containers/2020-10-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..b992df58
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/emr-containers/2020-10-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/emr-containers/2020-10-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/emr-containers/2020-10-01/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/emr-containers/2020-10-01/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/emr-containers/2020-10-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/emr-containers/2020-10-01/paginators-1.json
new file mode 100644
index 00000000..c21db2de
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/emr-containers/2020-10-01/paginators-1.json
@@ -0,0 +1,34 @@
+{
+  "pagination": {
+    "ListJobRuns": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "jobRuns"
+    },
+    "ListManagedEndpoints": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "endpoints"
+    },
+    "ListVirtualClusters": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "virtualClusters"
+    },
+    "ListJobTemplates": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "templates"
+    },
+    "ListSecurityConfigurations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "securityConfigurations"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/emr-containers/2020-10-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/emr-containers/2020-10-01/service-2.json.gz
new file mode 100644
index 00000000..fd2ec72e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/emr-containers/2020-10-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/emr-serverless/2021-07-13/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/emr-serverless/2021-07-13/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..f1ad45f1
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/emr-serverless/2021-07-13/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/emr-serverless/2021-07-13/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/emr-serverless/2021-07-13/paginators-1.json
new file mode 100644
index 00000000..aa3966b1
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/emr-serverless/2021-07-13/paginators-1.json
@@ -0,0 +1,22 @@
+{
+  "pagination": {
+    "ListApplications": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "applications"
+    },
+    "ListJobRuns": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "jobRuns"
+    },
+    "ListJobRunAttempts": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "jobRunAttempts"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/emr-serverless/2021-07-13/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/emr-serverless/2021-07-13/service-2.json.gz
new file mode 100644
index 00000000..6dabc887
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/emr-serverless/2021-07-13/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/emr/2009-03-31/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/emr/2009-03-31/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..c49816f9
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/emr/2009-03-31/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/emr/2009-03-31/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/emr/2009-03-31/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/emr/2009-03-31/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/emr/2009-03-31/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/emr/2009-03-31/paginators-1.json
new file mode 100644
index 00000000..447759f1
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/emr/2009-03-31/paginators-1.json
@@ -0,0 +1,54 @@
+{
+  "pagination": {
+    "ListBootstrapActions": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "result_key": "BootstrapActions"
+    },
+    "ListClusters": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "result_key": "Clusters"
+    },
+    "ListInstanceGroups": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "result_key": "InstanceGroups"
+    },
+    "ListInstances": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "result_key": "Instances"
+    },
+    "ListSteps": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "result_key": "Steps"
+    },
+    "ListInstanceFleets": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "result_key": "InstanceFleets"
+    },
+    "ListSecurityConfigurations": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "result_key": "SecurityConfigurations"
+    },
+    "ListNotebookExecutions": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "result_key": "NotebookExecutions"
+    },
+    "ListStudioSessionMappings": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "result_key": "SessionMappings"
+    },
+    "ListStudios": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "result_key": "Studios"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/emr/2009-03-31/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/emr/2009-03-31/service-2.json.gz
new file mode 100644
index 00000000..9fdf924b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/emr/2009-03-31/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/emr/2009-03-31/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/emr/2009-03-31/waiters-2.json
new file mode 100644
index 00000000..abba8c3c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/emr/2009-03-31/waiters-2.json
@@ -0,0 +1,86 @@
+{
+  "version": 2,
+  "waiters": {
+    "ClusterRunning": {
+      "delay": 30,
+      "operation": "DescribeCluster",
+      "maxAttempts": 60,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "path",
+          "argument": "Cluster.Status.State",
+          "expected": "RUNNING"
+        },
+        {
+          "state": "success",
+          "matcher": "path",
+          "argument": "Cluster.Status.State",
+          "expected": "WAITING"
+        },
+        {
+          "state": "failure",
+          "matcher": "path",
+          "argument": "Cluster.Status.State",
+          "expected": "TERMINATING"
+        },
+        {
+          "state": "failure",
+          "matcher": "path",
+          "argument": "Cluster.Status.State",
+          "expected": "TERMINATED"
+        },
+        {
+          "state": "failure",
+          "matcher": "path",
+          "argument": "Cluster.Status.State",
+          "expected": "TERMINATED_WITH_ERRORS"
+        }
+      ]
+    },
+    "StepComplete": {
+      "delay": 30,
+      "operation": "DescribeStep",
+      "maxAttempts": 60,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "path",
+          "argument": "Step.Status.State",
+          "expected": "COMPLETED"
+        },
+        {
+          "state": "failure",
+          "matcher": "path",
+          "argument": "Step.Status.State",
+          "expected": "FAILED"
+        },
+        {
+          "state": "failure",
+          "matcher": "path",
+          "argument": "Step.Status.State",
+          "expected": "CANCELLED"
+        }
+      ]
+    },
+    "ClusterTerminated": {
+      "delay": 30,
+      "operation": "DescribeCluster",
+      "maxAttempts": 60,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "path",
+          "argument": "Cluster.Status.State",
+          "expected": "TERMINATED"
+        },
+        {
+          "state": "failure",
+          "matcher": "path",
+          "argument": "Cluster.Status.State",
+          "expected": "TERMINATED_WITH_ERRORS"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/endpoints.json b/.venv/lib/python3.12/site-packages/botocore/data/endpoints.json
new file mode 100644
index 00000000..ec61a669
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/endpoints.json
@@ -0,0 +1,37672 @@
+{
+  "partitions" : [ {
+    "defaults" : {
+      "hostname" : "{service}.{region}.{dnsSuffix}",
+      "protocols" : [ "https" ],
+      "signatureVersions" : [ "v4" ],
+      "variants" : [ {
+        "dnsSuffix" : "amazonaws.com",
+        "hostname" : "{service}-fips.{region}.{dnsSuffix}",
+        "tags" : [ "fips" ]
+      }, {
+        "dnsSuffix" : "api.aws",
+        "hostname" : "{service}-fips.{region}.{dnsSuffix}",
+        "tags" : [ "dualstack", "fips" ]
+      }, {
+        "dnsSuffix" : "api.aws",
+        "hostname" : "{service}.{region}.{dnsSuffix}",
+        "tags" : [ "dualstack" ]
+      } ]
+    },
+    "dnsSuffix" : "amazonaws.com",
+    "partition" : "aws",
+    "partitionName" : "AWS Standard",
+    "regionRegex" : "^(us|eu|ap|sa|ca|me|af|il|mx)\\-\\w+\\-\\d+$",
+    "regions" : {
+      "af-south-1" : {
+        "description" : "Africa (Cape Town)"
+      },
+      "ap-east-1" : {
+        "description" : "Asia Pacific (Hong Kong)"
+      },
+      "ap-northeast-1" : {
+        "description" : "Asia Pacific (Tokyo)"
+      },
+      "ap-northeast-2" : {
+        "description" : "Asia Pacific (Seoul)"
+      },
+      "ap-northeast-3" : {
+        "description" : "Asia Pacific (Osaka)"
+      },
+      "ap-south-1" : {
+        "description" : "Asia Pacific (Mumbai)"
+      },
+      "ap-south-2" : {
+        "description" : "Asia Pacific (Hyderabad)"
+      },
+      "ap-southeast-1" : {
+        "description" : "Asia Pacific (Singapore)"
+      },
+      "ap-southeast-2" : {
+        "description" : "Asia Pacific (Sydney)"
+      },
+      "ap-southeast-3" : {
+        "description" : "Asia Pacific (Jakarta)"
+      },
+      "ap-southeast-4" : {
+        "description" : "Asia Pacific (Melbourne)"
+      },
+      "ap-southeast-5" : {
+        "description" : "Asia Pacific (Malaysia)"
+      },
+      "ap-southeast-7" : {
+        "description" : "Asia Pacific (Thailand)"
+      },
+      "ca-central-1" : {
+        "description" : "Canada (Central)"
+      },
+      "ca-west-1" : {
+        "description" : "Canada West (Calgary)"
+      },
+      "eu-central-1" : {
+        "description" : "Europe (Frankfurt)"
+      },
+      "eu-central-2" : {
+        "description" : "Europe (Zurich)"
+      },
+      "eu-north-1" : {
+        "description" : "Europe (Stockholm)"
+      },
+      "eu-south-1" : {
+        "description" : "Europe (Milan)"
+      },
+      "eu-south-2" : {
+        "description" : "Europe (Spain)"
+      },
+      "eu-west-1" : {
+        "description" : "Europe (Ireland)"
+      },
+      "eu-west-2" : {
+        "description" : "Europe (London)"
+      },
+      "eu-west-3" : {
+        "description" : "Europe (Paris)"
+      },
+      "il-central-1" : {
+        "description" : "Israel (Tel Aviv)"
+      },
+      "me-central-1" : {
+        "description" : "Middle East (UAE)"
+      },
+      "me-south-1" : {
+        "description" : "Middle East (Bahrain)"
+      },
+      "mx-central-1" : {
+        "description" : "Mexico (Central)"
+      },
+      "sa-east-1" : {
+        "description" : "South America (Sao Paulo)"
+      },
+      "us-east-1" : {
+        "description" : "US East (N. Virginia)"
+      },
+      "us-east-2" : {
+        "description" : "US East (Ohio)"
+      },
+      "us-west-1" : {
+        "description" : "US West (N. California)"
+      },
+      "us-west-2" : {
+        "description" : "US West (Oregon)"
+      }
+    },
+    "services" : {
+      "access-analyzer" : {
+        "endpoints" : {
+          "af-south-1" : {
+            "variants" : [ {
+              "hostname" : "access-analyzer.af-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-east-1" : {
+            "variants" : [ {
+              "hostname" : "access-analyzer.ap-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-1" : {
+            "variants" : [ {
+              "hostname" : "access-analyzer.ap-northeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-2" : {
+            "variants" : [ {
+              "hostname" : "access-analyzer.ap-northeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-3" : {
+            "variants" : [ {
+              "hostname" : "access-analyzer.ap-northeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-1" : {
+            "variants" : [ {
+              "hostname" : "access-analyzer.ap-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-2" : {
+            "variants" : [ {
+              "hostname" : "access-analyzer.ap-south-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-1" : {
+            "variants" : [ {
+              "hostname" : "access-analyzer.ap-southeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "variants" : [ {
+              "hostname" : "access-analyzer.ap-southeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-3" : {
+            "variants" : [ {
+              "hostname" : "access-analyzer.ap-southeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-4" : {
+            "variants" : [ {
+              "hostname" : "access-analyzer.ap-southeast-4.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-5" : {
+            "variants" : [ {
+              "hostname" : "access-analyzer.ap-southeast-5.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-7" : {
+            "variants" : [ {
+              "hostname" : "access-analyzer.ap-southeast-7.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "access-analyzer-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "access-analyzer-fips.ca-central-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "access-analyzer.ca-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "access-analyzer-fips.ca-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "access-analyzer-fips.ca-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "access-analyzer.ca-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-1" : {
+            "variants" : [ {
+              "hostname" : "access-analyzer.eu-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-2" : {
+            "variants" : [ {
+              "hostname" : "access-analyzer.eu-central-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-north-1" : {
+            "variants" : [ {
+              "hostname" : "access-analyzer.eu-north-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-1" : {
+            "variants" : [ {
+              "hostname" : "access-analyzer.eu-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-2" : {
+            "variants" : [ {
+              "hostname" : "access-analyzer.eu-south-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-1" : {
+            "variants" : [ {
+              "hostname" : "access-analyzer.eu-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "variants" : [ {
+              "hostname" : "access-analyzer.eu-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-3" : {
+            "variants" : [ {
+              "hostname" : "access-analyzer.eu-west-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "access-analyzer-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-ca-west-1" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "access-analyzer-fips.ca-west-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "access-analyzer-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "access-analyzer-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "access-analyzer-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "access-analyzer-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : {
+            "variants" : [ {
+              "hostname" : "access-analyzer.il-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-central-1" : {
+            "variants" : [ {
+              "hostname" : "access-analyzer.me-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-south-1" : {
+            "variants" : [ {
+              "hostname" : "access-analyzer.me-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "mx-central-1" : {
+            "variants" : [ {
+              "hostname" : "access-analyzer.mx-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "sa-east-1" : {
+            "variants" : [ {
+              "hostname" : "access-analyzer.sa-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "access-analyzer-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "access-analyzer-fips.us-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "access-analyzer.us-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "access-analyzer-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "access-analyzer-fips.us-east-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "access-analyzer.us-east-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "access-analyzer-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "access-analyzer-fips.us-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "access-analyzer.us-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "access-analyzer-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "access-analyzer-fips.us-west-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "access-analyzer.us-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "account" : {
+        "endpoints" : {
+          "aws-global" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "account.us-east-1.amazonaws.com"
+          }
+        },
+        "isRegionalized" : false,
+        "partitionEndpoint" : "aws-global"
+      },
+      "acm" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ap-southeast-7" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "acm-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-central-1-fips" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "acm-fips.ca-central-1.amazonaws.com"
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "acm-fips.ca-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "acm-fips.ca-west-1.amazonaws.com"
+          },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "mx-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "acm-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "acm-fips.us-east-1.amazonaws.com"
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "acm-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "acm-fips.us-east-2.amazonaws.com"
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "acm-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "acm-fips.us-west-1.amazonaws.com"
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "acm-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "acm-fips.us-west-2.amazonaws.com"
+          }
+        }
+      },
+      "acm-pca" : {
+        "defaults" : {
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ap-southeast-7" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "acm-pca-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "acm-pca-fips.ca-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "acm-pca-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-ca-west-1" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "acm-pca-fips.ca-west-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "acm-pca-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "acm-pca-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "acm-pca-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "acm-pca-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "mx-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "acm-pca-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "acm-pca-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "acm-pca-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "acm-pca-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "agreement-marketplace" : {
+        "endpoints" : {
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "agreement-marketplace.us-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "airflow" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ca-central-1" : { },
+          "ca-west-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "amplify" : {
+        "endpoints" : {
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "amplifybackend" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "amplifyuibuilder" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "aoss" : {
+        "endpoints" : {
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "sa-east-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "api.detective" : {
+        "defaults" : {
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "af-south-1" : {
+            "variants" : [ {
+              "hostname" : "detective.af-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-east-1" : {
+            "variants" : [ {
+              "hostname" : "detective.ap-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-1" : {
+            "variants" : [ {
+              "hostname" : "detective.ap-northeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-2" : {
+            "variants" : [ {
+              "hostname" : "detective.ap-northeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-1" : {
+            "variants" : [ {
+              "hostname" : "detective.ap-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-1" : {
+            "variants" : [ {
+              "hostname" : "detective.ap-southeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "variants" : [ {
+              "hostname" : "detective.ap-southeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "api.detective-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "detective-fips.ca-central-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "detective.ca-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-central-1-fips" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "api.detective-fips.ca-central-1.amazonaws.com"
+          },
+          "eu-central-1" : {
+            "variants" : [ {
+              "hostname" : "detective.eu-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-north-1" : {
+            "variants" : [ {
+              "hostname" : "detective.eu-north-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-1" : {
+            "variants" : [ {
+              "hostname" : "detective.eu-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-1" : {
+            "variants" : [ {
+              "hostname" : "detective.eu-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "variants" : [ {
+              "hostname" : "detective.eu-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-3" : {
+            "variants" : [ {
+              "hostname" : "detective.eu-west-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "il-central-1" : {
+            "variants" : [ {
+              "hostname" : "detective.il-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-south-1" : {
+            "variants" : [ {
+              "hostname" : "detective.me-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "sa-east-1" : {
+            "variants" : [ {
+              "hostname" : "detective.sa-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "api.detective-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "detective-fips.us-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "detective.us-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "api.detective-fips.us-east-1.amazonaws.com"
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "api.detective-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "detective-fips.us-east-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "detective.us-east-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "api.detective-fips.us-east-2.amazonaws.com"
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "api.detective-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "detective-fips.us-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "detective.us-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "api.detective-fips.us-west-1.amazonaws.com"
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "api.detective-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "detective-fips.us-west-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "detective.us-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "api.detective-fips.us-west-2.amazonaws.com"
+          }
+        }
+      },
+      "api.ecr" : {
+        "defaults" : {
+          "variants" : [ {
+            "hostname" : "ecr-fips.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "af-south-1" : {
+            "credentialScope" : {
+              "region" : "af-south-1"
+            },
+            "hostname" : "api.ecr.af-south-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "ecr.af-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-east-1" : {
+            "credentialScope" : {
+              "region" : "ap-east-1"
+            },
+            "hostname" : "api.ecr.ap-east-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "ecr.ap-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-1" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-1"
+            },
+            "hostname" : "api.ecr.ap-northeast-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "ecr.ap-northeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-2" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-2"
+            },
+            "hostname" : "api.ecr.ap-northeast-2.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "ecr.ap-northeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-3" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-3"
+            },
+            "hostname" : "api.ecr.ap-northeast-3.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "ecr.ap-northeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-1" : {
+            "credentialScope" : {
+              "region" : "ap-south-1"
+            },
+            "hostname" : "api.ecr.ap-south-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "ecr.ap-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-2" : {
+            "credentialScope" : {
+              "region" : "ap-south-2"
+            },
+            "hostname" : "api.ecr.ap-south-2.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "ecr.ap-south-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-1" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-1"
+            },
+            "hostname" : "api.ecr.ap-southeast-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "ecr.ap-southeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-2"
+            },
+            "hostname" : "api.ecr.ap-southeast-2.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "ecr.ap-southeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-3" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-3"
+            },
+            "hostname" : "api.ecr.ap-southeast-3.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "ecr.ap-southeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-4" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-4"
+            },
+            "hostname" : "api.ecr.ap-southeast-4.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "ecr.ap-southeast-4.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-5" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-5"
+            },
+            "hostname" : "api.ecr.ap-southeast-5.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "ecr.ap-southeast-5.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-7" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-7"
+            },
+            "hostname" : "api.ecr.ap-southeast-7.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "ecr.ap-southeast-7.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "hostname" : "api.ecr.ca-central-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "ecr.ca-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-west-1" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "hostname" : "api.ecr.ca-west-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "ecr.ca-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "dkr-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "variants" : [ {
+              "hostname" : "ecr-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "dkr-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "variants" : [ {
+              "hostname" : "ecr-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "dkr-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "variants" : [ {
+              "hostname" : "ecr-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "dkr-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "variants" : [ {
+              "hostname" : "ecr-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : {
+            "credentialScope" : {
+              "region" : "eu-central-1"
+            },
+            "hostname" : "api.ecr.eu-central-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "ecr.eu-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-2" : {
+            "credentialScope" : {
+              "region" : "eu-central-2"
+            },
+            "hostname" : "api.ecr.eu-central-2.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "ecr.eu-central-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-north-1" : {
+            "credentialScope" : {
+              "region" : "eu-north-1"
+            },
+            "hostname" : "api.ecr.eu-north-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "ecr.eu-north-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-1" : {
+            "credentialScope" : {
+              "region" : "eu-south-1"
+            },
+            "hostname" : "api.ecr.eu-south-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "ecr.eu-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-2" : {
+            "credentialScope" : {
+              "region" : "eu-south-2"
+            },
+            "hostname" : "api.ecr.eu-south-2.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "ecr.eu-south-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-1" : {
+            "credentialScope" : {
+              "region" : "eu-west-1"
+            },
+            "hostname" : "api.ecr.eu-west-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "ecr.eu-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "credentialScope" : {
+              "region" : "eu-west-2"
+            },
+            "hostname" : "api.ecr.eu-west-2.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "ecr.eu-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-3" : {
+            "credentialScope" : {
+              "region" : "eu-west-3"
+            },
+            "hostname" : "api.ecr.eu-west-3.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "ecr.eu-west-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "fips-dkr-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ecr-fips.us-east-1.amazonaws.com"
+          },
+          "fips-dkr-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "ecr-fips.us-east-2.amazonaws.com"
+          },
+          "fips-dkr-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ecr-fips.us-west-1.amazonaws.com"
+          },
+          "fips-dkr-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "ecr-fips.us-west-2.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ecr-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "ecr-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ecr-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "ecr-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : {
+            "credentialScope" : {
+              "region" : "il-central-1"
+            },
+            "hostname" : "api.ecr.il-central-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "ecr.il-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-central-1" : {
+            "credentialScope" : {
+              "region" : "me-central-1"
+            },
+            "hostname" : "api.ecr.me-central-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "ecr.me-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-south-1" : {
+            "credentialScope" : {
+              "region" : "me-south-1"
+            },
+            "hostname" : "api.ecr.me-south-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "ecr.me-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "mx-central-1" : {
+            "credentialScope" : {
+              "region" : "mx-central-1"
+            },
+            "hostname" : "api.ecr.mx-central-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "ecr.mx-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "sa-east-1" : {
+            "credentialScope" : {
+              "region" : "sa-east-1"
+            },
+            "hostname" : "api.ecr.sa-east-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "ecr.sa-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "api.ecr.us-east-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "ecr-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "ecr-fips.us-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "ecr.us-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "hostname" : "api.ecr.us-east-2.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "ecr-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "ecr-fips.us-east-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "ecr.us-east-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "hostname" : "api.ecr.us-west-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "ecr-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "ecr-fips.us-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "ecr.us-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "hostname" : "api.ecr.us-west-2.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "ecr-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "ecr-fips.us-west-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "ecr.us-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "api.ecr-public" : {
+        "endpoints" : {
+          "us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "api.ecr-public.us-east-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "ecr-public.us-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "hostname" : "api.ecr-public.us-west-2.amazonaws.com"
+          }
+        }
+      },
+      "api.fleethub.iot" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "api.fleethub.iot-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "api.fleethub.iot-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "api.fleethub.iot-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "api.fleethub.iot-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "api.fleethub.iot-fips.us-west-2.amazonaws.com"
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "api.fleethub.iot-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "api.fleethub.iot-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "api.fleethub.iot-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "api.iotdeviceadvisor" : {
+        "endpoints" : {
+          "ap-northeast-1" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-1"
+            },
+            "hostname" : "api.iotdeviceadvisor.ap-northeast-1.amazonaws.com"
+          },
+          "eu-west-1" : {
+            "credentialScope" : {
+              "region" : "eu-west-1"
+            },
+            "hostname" : "api.iotdeviceadvisor.eu-west-1.amazonaws.com"
+          },
+          "us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "api.iotdeviceadvisor.us-east-1.amazonaws.com"
+          },
+          "us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "hostname" : "api.iotdeviceadvisor.us-west-2.amazonaws.com"
+          }
+        }
+      },
+      "api.iotwireless" : {
+        "endpoints" : {
+          "ap-northeast-1" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-1"
+            },
+            "hostname" : "api.iotwireless.ap-northeast-1.amazonaws.com"
+          },
+          "ap-southeast-2" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-2"
+            },
+            "hostname" : "api.iotwireless.ap-southeast-2.amazonaws.com"
+          },
+          "eu-central-1" : {
+            "credentialScope" : {
+              "region" : "eu-central-1"
+            },
+            "hostname" : "api.iotwireless.eu-central-1.amazonaws.com"
+          },
+          "eu-west-1" : {
+            "credentialScope" : {
+              "region" : "eu-west-1"
+            },
+            "hostname" : "api.iotwireless.eu-west-1.amazonaws.com"
+          },
+          "sa-east-1" : {
+            "credentialScope" : {
+              "region" : "sa-east-1"
+            },
+            "hostname" : "api.iotwireless.sa-east-1.amazonaws.com"
+          },
+          "us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "api.iotwireless.us-east-1.amazonaws.com"
+          },
+          "us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "hostname" : "api.iotwireless.us-west-2.amazonaws.com"
+          }
+        }
+      },
+      "api.mediatailor" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-4" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-west-1" : { },
+          "eu-west-3" : { },
+          "me-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-2" : { }
+        }
+      },
+      "api.pricing" : {
+        "defaults" : {
+          "credentialScope" : {
+            "service" : "pricing"
+          }
+        },
+        "endpoints" : {
+          "ap-south-1" : { },
+          "eu-central-1" : { },
+          "us-east-1" : { }
+        }
+      },
+      "api.sagemaker" : {
+        "defaults" : {
+          "variants" : [ {
+            "hostname" : "api-fips.sagemaker.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "api-fips.sagemaker.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-central-1-fips" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "api-fips.sagemaker.ca-central-1.amazonaws.com"
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "api-fips.sagemaker.ca-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "api-fips.sagemaker.ca-west-1.amazonaws.com"
+          },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "api-fips.sagemaker.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "api-fips.sagemaker.us-east-1.amazonaws.com"
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "api-fips.sagemaker.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "api-fips.sagemaker.us-east-2.amazonaws.com"
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "api-fips.sagemaker.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "api-fips.sagemaker.us-west-1.amazonaws.com"
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "api-fips.sagemaker.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "api-fips.sagemaker.us-west-2.amazonaws.com"
+          }
+        }
+      },
+      "api.tunneling.iot" : {
+        "defaults" : {
+          "variants" : [ {
+            "dnsSuffix" : "amazonaws.com",
+            "hostname" : "api.tunneling.iot-fips.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          }, {
+            "dnsSuffix" : "api.aws",
+            "hostname" : "api.iot-tunneling-fips.{region}.{dnsSuffix}",
+            "tags" : [ "dualstack", "fips" ]
+          }, {
+            "dnsSuffix" : "api.aws",
+            "hostname" : "api.iot-tunneling.{region}.{dnsSuffix}",
+            "tags" : [ "dualstack" ]
+          } ]
+        },
+        "endpoints" : {
+          "ap-east-1" : {
+            "variants" : [ {
+              "hostname" : "api.iot-tunneling.ap-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-1" : {
+            "variants" : [ {
+              "hostname" : "api.iot-tunneling.ap-northeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-2" : {
+            "variants" : [ {
+              "hostname" : "api.iot-tunneling.ap-northeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-1" : {
+            "variants" : [ {
+              "hostname" : "api.iot-tunneling.ap-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-1" : {
+            "variants" : [ {
+              "hostname" : "api.iot-tunneling.ap-southeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "variants" : [ {
+              "hostname" : "api.iot-tunneling.ap-southeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "api.iot-tunneling-fips.ca-central-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "api.iot-tunneling.ca-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            }, {
+              "hostname" : "api.tunneling.iot-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : {
+            "variants" : [ {
+              "hostname" : "api.iot-tunneling.eu-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-north-1" : {
+            "variants" : [ {
+              "hostname" : "api.iot-tunneling.eu-north-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-1" : {
+            "variants" : [ {
+              "hostname" : "api.iot-tunneling.eu-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "variants" : [ {
+              "hostname" : "api.iot-tunneling.eu-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-3" : {
+            "variants" : [ {
+              "hostname" : "api.iot-tunneling.eu-west-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "api.tunneling.iot-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "api.tunneling.iot-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "api.tunneling.iot-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "api.tunneling.iot-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "api.tunneling.iot-fips.us-west-2.amazonaws.com"
+          },
+          "me-central-1" : {
+            "variants" : [ {
+              "hostname" : "api.iot-tunneling.me-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-south-1" : {
+            "variants" : [ {
+              "hostname" : "api.iot-tunneling.me-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "sa-east-1" : {
+            "variants" : [ {
+              "hostname" : "api.iot-tunneling.sa-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "api.iot-tunneling-fips.us-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "api.iot-tunneling.us-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            }, {
+              "hostname" : "api.tunneling.iot-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "api.iot-tunneling-fips.us-east-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "api.iot-tunneling.us-east-2.api.aws",
+              "tags" : [ "dualstack" ]
+            }, {
+              "hostname" : "api.tunneling.iot-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "api.iot-tunneling-fips.us-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "api.iot-tunneling.us-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            }, {
+              "hostname" : "api.tunneling.iot-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "api.iot-tunneling-fips.us-west-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "api.iot-tunneling.us-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            }, {
+              "hostname" : "api.tunneling.iot-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "apigateway" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ap-southeast-7" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "apigateway-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "apigateway-fips.ca-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "apigateway-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-ca-west-1" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "apigateway-fips.ca-west-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "apigateway-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "apigateway-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "apigateway-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "apigateway-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "mx-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "apigateway-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "apigateway-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "apigateway-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "apigateway-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "app-integrations" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-west-2" : { },
+          "us-east-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "appconfig" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ap-southeast-7" : { },
+          "ca-central-1" : { },
+          "ca-west-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "mx-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "appconfigdata" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ap-southeast-7" : { },
+          "ca-central-1" : { },
+          "ca-west-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "mx-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "appflow" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "appflow-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "appflow-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "appflow-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "appflow-fips.us-west-2.amazonaws.com"
+          },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "appflow-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "appflow-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "appflow-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "appflow-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "application-autoscaling" : {
+        "defaults" : {
+          "protocols" : [ "http", "https" ]
+        },
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ap-southeast-7" : { },
+          "ca-central-1" : { },
+          "ca-west-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "mx-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "applicationinsights" : {
+        "endpoints" : {
+          "af-south-1" : {
+            "credentialScope" : {
+              "region" : "af-south-1"
+            },
+            "hostname" : "applicationinsights.af-south-1.amazonaws.com"
+          },
+          "ap-east-1" : {
+            "credentialScope" : {
+              "region" : "ap-east-1"
+            },
+            "hostname" : "applicationinsights.ap-east-1.amazonaws.com"
+          },
+          "ap-northeast-1" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-1"
+            },
+            "hostname" : "applicationinsights.ap-northeast-1.amazonaws.com"
+          },
+          "ap-northeast-2" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-2"
+            },
+            "hostname" : "applicationinsights.ap-northeast-2.amazonaws.com"
+          },
+          "ap-northeast-3" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-3"
+            },
+            "hostname" : "applicationinsights.ap-northeast-3.amazonaws.com"
+          },
+          "ap-south-1" : {
+            "credentialScope" : {
+              "region" : "ap-south-1"
+            },
+            "hostname" : "applicationinsights.ap-south-1.amazonaws.com"
+          },
+          "ap-south-2" : {
+            "credentialScope" : {
+              "region" : "ap-south-2"
+            },
+            "hostname" : "applicationinsights.ap-south-2.amazonaws.com"
+          },
+          "ap-southeast-1" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-1"
+            },
+            "hostname" : "applicationinsights.ap-southeast-1.amazonaws.com"
+          },
+          "ap-southeast-2" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-2"
+            },
+            "hostname" : "applicationinsights.ap-southeast-2.amazonaws.com"
+          },
+          "ap-southeast-3" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-3"
+            },
+            "hostname" : "applicationinsights.ap-southeast-3.amazonaws.com"
+          },
+          "ap-southeast-4" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-4"
+            },
+            "hostname" : "applicationinsights.ap-southeast-4.amazonaws.com"
+          },
+          "ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "hostname" : "applicationinsights.ca-central-1.amazonaws.com"
+          },
+          "ca-west-1" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "hostname" : "applicationinsights.ca-west-1.amazonaws.com"
+          },
+          "eu-central-1" : {
+            "credentialScope" : {
+              "region" : "eu-central-1"
+            },
+            "hostname" : "applicationinsights.eu-central-1.amazonaws.com"
+          },
+          "eu-central-2" : {
+            "credentialScope" : {
+              "region" : "eu-central-2"
+            },
+            "hostname" : "applicationinsights.eu-central-2.amazonaws.com"
+          },
+          "eu-north-1" : {
+            "credentialScope" : {
+              "region" : "eu-north-1"
+            },
+            "hostname" : "applicationinsights.eu-north-1.amazonaws.com"
+          },
+          "eu-south-1" : {
+            "credentialScope" : {
+              "region" : "eu-south-1"
+            },
+            "hostname" : "applicationinsights.eu-south-1.amazonaws.com"
+          },
+          "eu-south-2" : {
+            "credentialScope" : {
+              "region" : "eu-south-2"
+            },
+            "hostname" : "applicationinsights.eu-south-2.amazonaws.com"
+          },
+          "eu-west-1" : {
+            "credentialScope" : {
+              "region" : "eu-west-1"
+            },
+            "hostname" : "applicationinsights.eu-west-1.amazonaws.com"
+          },
+          "eu-west-2" : {
+            "credentialScope" : {
+              "region" : "eu-west-2"
+            },
+            "hostname" : "applicationinsights.eu-west-2.amazonaws.com"
+          },
+          "eu-west-3" : {
+            "credentialScope" : {
+              "region" : "eu-west-3"
+            },
+            "hostname" : "applicationinsights.eu-west-3.amazonaws.com"
+          },
+          "il-central-1" : {
+            "credentialScope" : {
+              "region" : "il-central-1"
+            },
+            "hostname" : "applicationinsights.il-central-1.amazonaws.com"
+          },
+          "me-central-1" : {
+            "credentialScope" : {
+              "region" : "me-central-1"
+            },
+            "hostname" : "applicationinsights.me-central-1.amazonaws.com"
+          },
+          "me-south-1" : {
+            "credentialScope" : {
+              "region" : "me-south-1"
+            },
+            "hostname" : "applicationinsights.me-south-1.amazonaws.com"
+          },
+          "sa-east-1" : {
+            "credentialScope" : {
+              "region" : "sa-east-1"
+            },
+            "hostname" : "applicationinsights.sa-east-1.amazonaws.com"
+          },
+          "us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "applicationinsights.us-east-1.amazonaws.com"
+          },
+          "us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "hostname" : "applicationinsights.us-east-2.amazonaws.com"
+          },
+          "us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "hostname" : "applicationinsights.us-west-1.amazonaws.com"
+          },
+          "us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "hostname" : "applicationinsights.us-west-2.amazonaws.com"
+          }
+        }
+      },
+      "appmesh" : {
+        "endpoints" : {
+          "af-south-1" : {
+            "variants" : [ {
+              "hostname" : "appmesh.af-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-east-1" : {
+            "variants" : [ {
+              "hostname" : "appmesh.ap-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-1" : {
+            "variants" : [ {
+              "hostname" : "appmesh.ap-northeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-2" : {
+            "variants" : [ {
+              "hostname" : "appmesh.ap-northeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-3" : {
+            "variants" : [ {
+              "hostname" : "appmesh.ap-northeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-1" : {
+            "variants" : [ {
+              "hostname" : "appmesh.ap-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-1" : {
+            "variants" : [ {
+              "hostname" : "appmesh.ap-southeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "variants" : [ {
+              "hostname" : "appmesh.ap-southeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-3" : {
+            "variants" : [ {
+              "hostname" : "appmesh.ap-southeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "appmesh-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "appmesh-fips.ca-central-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "appmesh.ca-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-central-1-fips" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "appmesh-fips.ca-central-1.amazonaws.com"
+          },
+          "eu-central-1" : {
+            "variants" : [ {
+              "hostname" : "appmesh.eu-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-2" : {
+            "variants" : [ {
+              "hostname" : "appmesh.eu-central-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-north-1" : {
+            "variants" : [ {
+              "hostname" : "appmesh.eu-north-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-1" : {
+            "variants" : [ {
+              "hostname" : "appmesh.eu-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-2" : {
+            "variants" : [ {
+              "hostname" : "appmesh.eu-south-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-1" : {
+            "variants" : [ {
+              "hostname" : "appmesh.eu-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "variants" : [ {
+              "hostname" : "appmesh.eu-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-3" : {
+            "variants" : [ {
+              "hostname" : "appmesh.eu-west-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "il-central-1" : {
+            "variants" : [ {
+              "hostname" : "appmesh.il-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-south-1" : {
+            "variants" : [ {
+              "hostname" : "appmesh.me-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "sa-east-1" : {
+            "variants" : [ {
+              "hostname" : "appmesh.sa-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "appmesh-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "appmesh-fips.us-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "appmesh.us-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "appmesh-fips.us-east-1.amazonaws.com"
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "appmesh-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "appmesh-fips.us-east-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "appmesh.us-east-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "appmesh-fips.us-east-2.amazonaws.com"
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "appmesh-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "appmesh-fips.us-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "appmesh.us-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "appmesh-fips.us-west-1.amazonaws.com"
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "appmesh-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "appmesh-fips.us-west-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "appmesh.us-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "appmesh-fips.us-west-2.amazonaws.com"
+          }
+        }
+      },
+      "apprunner" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "eu-central-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "apprunner-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "apprunner-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "apprunner-fips.us-west-2.amazonaws.com"
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "apprunner-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "apprunner-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "apprunner-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "appstream2" : {
+        "defaults" : {
+          "credentialScope" : {
+            "service" : "appstream"
+          },
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "fips" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "appstream2-fips.us-west-2.amazonaws.com"
+          },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "appstream2-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "appstream2-fips.us-east-1.amazonaws.com"
+          },
+          "us-east-2" : { },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "appstream2-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "appstream2-fips.us-west-2.amazonaws.com"
+          }
+        }
+      },
+      "appsync" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "apptest" : {
+        "endpoints" : {
+          "ap-southeast-2" : { },
+          "eu-central-1" : { },
+          "fips-us-east-1" : {
+            "deprecated" : true
+          },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "aps" : {
+        "defaults" : {
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "ap-northeast-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-2" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-north-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-3" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "sa-east-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "arc-zonal-shift" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ap-southeast-7" : { },
+          "ca-central-1" : { },
+          "ca-west-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "mx-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "athena" : {
+        "endpoints" : {
+          "af-south-1" : {
+            "variants" : [ {
+              "hostname" : "athena.af-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-east-1" : {
+            "variants" : [ {
+              "hostname" : "athena.ap-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-1" : {
+            "variants" : [ {
+              "hostname" : "athena.ap-northeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-2" : {
+            "variants" : [ {
+              "hostname" : "athena.ap-northeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-3" : {
+            "variants" : [ {
+              "hostname" : "athena.ap-northeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-1" : {
+            "variants" : [ {
+              "hostname" : "athena.ap-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-2" : {
+            "variants" : [ {
+              "hostname" : "athena.ap-south-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-1" : {
+            "variants" : [ {
+              "hostname" : "athena.ap-southeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "variants" : [ {
+              "hostname" : "athena.ap-southeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-3" : {
+            "variants" : [ {
+              "hostname" : "athena.ap-southeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-4" : {
+            "variants" : [ {
+              "hostname" : "athena.ap-southeast-4.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-5" : {
+            "variants" : [ {
+              "hostname" : "athena.ap-southeast-5.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "athena-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "athena-fips.ca-central-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "athena.ca-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "athena-fips.ca-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "athena-fips.ca-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "athena.ca-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-1" : {
+            "variants" : [ {
+              "hostname" : "athena.eu-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-2" : {
+            "variants" : [ {
+              "hostname" : "athena.eu-central-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-north-1" : {
+            "variants" : [ {
+              "hostname" : "athena.eu-north-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-1" : {
+            "variants" : [ {
+              "hostname" : "athena.eu-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-2" : {
+            "variants" : [ {
+              "hostname" : "athena.eu-south-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-1" : {
+            "variants" : [ {
+              "hostname" : "athena.eu-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "variants" : [ {
+              "hostname" : "athena.eu-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-3" : {
+            "variants" : [ {
+              "hostname" : "athena.eu-west-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "athena-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-ca-west-1" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "athena-fips.ca-west-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "athena-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "athena-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "athena-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "athena-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : {
+            "variants" : [ {
+              "hostname" : "athena.il-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-central-1" : {
+            "variants" : [ {
+              "hostname" : "athena.me-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-south-1" : {
+            "variants" : [ {
+              "hostname" : "athena.me-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "sa-east-1" : {
+            "variants" : [ {
+              "hostname" : "athena.sa-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "athena-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "athena-fips.us-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "athena.us-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "athena-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "athena-fips.us-east-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "athena.us-east-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "athena-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "athena-fips.us-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "athena.us-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "athena-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "athena-fips.us-west-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "athena.us-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "auditmanager" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "auditmanager-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "auditmanager-fips.us-east-1.amazonaws.com"
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "auditmanager-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "auditmanager-fips.us-east-2.amazonaws.com"
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "auditmanager-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "auditmanager-fips.us-west-1.amazonaws.com"
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "auditmanager-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "auditmanager-fips.us-west-2.amazonaws.com"
+          }
+        }
+      },
+      "autoscaling" : {
+        "defaults" : {
+          "protocols" : [ "http", "https" ]
+        },
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ap-southeast-7" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "autoscaling-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "autoscaling-fips.ca-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "autoscaling-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-ca-west-1" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "autoscaling-fips.ca-west-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "autoscaling-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "autoscaling-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "autoscaling-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "autoscaling-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "mx-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "autoscaling-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "autoscaling-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "autoscaling-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "autoscaling-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "autoscaling-plans" : {
+        "defaults" : {
+          "protocols" : [ "http", "https" ]
+        },
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "backup" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ap-southeast-7" : { },
+          "ca-central-1" : { },
+          "ca-west-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "mx-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "backup-gateway" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "batch" : {
+        "defaults" : {
+          "variants" : [ {
+            "hostname" : "fips.batch.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ap-southeast-7" : { },
+          "ca-central-1" : { },
+          "ca-west-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "fips.batch.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "fips.batch.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "fips.batch.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "fips.batch.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "mx-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "fips.batch.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "fips.batch.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "fips.batch.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "fips.batch.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "bedrock" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "bedrock-ap-northeast-1" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-1"
+            },
+            "hostname" : "bedrock.ap-northeast-1.amazonaws.com"
+          },
+          "bedrock-ap-northeast-2" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-2"
+            },
+            "hostname" : "bedrock.ap-northeast-2.amazonaws.com"
+          },
+          "bedrock-ap-northeast-3" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-3"
+            },
+            "hostname" : "bedrock.ap-northeast-3.amazonaws.com"
+          },
+          "bedrock-ap-south-1" : {
+            "credentialScope" : {
+              "region" : "ap-south-1"
+            },
+            "hostname" : "bedrock.ap-south-1.amazonaws.com"
+          },
+          "bedrock-ap-south-2" : {
+            "credentialScope" : {
+              "region" : "ap-south-2"
+            },
+            "hostname" : "bedrock.ap-south-2.amazonaws.com"
+          },
+          "bedrock-ap-southeast-1" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-1"
+            },
+            "hostname" : "bedrock.ap-southeast-1.amazonaws.com"
+          },
+          "bedrock-ap-southeast-2" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-2"
+            },
+            "hostname" : "bedrock.ap-southeast-2.amazonaws.com"
+          },
+          "bedrock-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "hostname" : "bedrock.ca-central-1.amazonaws.com"
+          },
+          "bedrock-eu-central-1" : {
+            "credentialScope" : {
+              "region" : "eu-central-1"
+            },
+            "hostname" : "bedrock.eu-central-1.amazonaws.com"
+          },
+          "bedrock-eu-central-2" : {
+            "credentialScope" : {
+              "region" : "eu-central-2"
+            },
+            "hostname" : "bedrock.eu-central-2.amazonaws.com"
+          },
+          "bedrock-eu-north-1" : {
+            "credentialScope" : {
+              "region" : "eu-north-1"
+            },
+            "hostname" : "bedrock.eu-north-1.amazonaws.com"
+          },
+          "bedrock-eu-south-1" : {
+            "credentialScope" : {
+              "region" : "eu-south-1"
+            },
+            "hostname" : "bedrock.eu-south-1.amazonaws.com"
+          },
+          "bedrock-eu-south-2" : {
+            "credentialScope" : {
+              "region" : "eu-south-2"
+            },
+            "hostname" : "bedrock.eu-south-2.amazonaws.com"
+          },
+          "bedrock-eu-west-1" : {
+            "credentialScope" : {
+              "region" : "eu-west-1"
+            },
+            "hostname" : "bedrock.eu-west-1.amazonaws.com"
+          },
+          "bedrock-eu-west-2" : {
+            "credentialScope" : {
+              "region" : "eu-west-2"
+            },
+            "hostname" : "bedrock.eu-west-2.amazonaws.com"
+          },
+          "bedrock-eu-west-3" : {
+            "credentialScope" : {
+              "region" : "eu-west-3"
+            },
+            "hostname" : "bedrock.eu-west-3.amazonaws.com"
+          },
+          "bedrock-fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "hostname" : "bedrock-fips.ca-central-1.amazonaws.com"
+          },
+          "bedrock-fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "bedrock-fips.us-east-1.amazonaws.com"
+          },
+          "bedrock-fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "hostname" : "bedrock-fips.us-east-2.amazonaws.com"
+          },
+          "bedrock-fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "hostname" : "bedrock-fips.us-west-2.amazonaws.com"
+          },
+          "bedrock-runtime-ap-northeast-1" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-1"
+            },
+            "hostname" : "bedrock-runtime.ap-northeast-1.amazonaws.com"
+          },
+          "bedrock-runtime-ap-northeast-2" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-2"
+            },
+            "hostname" : "bedrock-runtime.ap-northeast-2.amazonaws.com"
+          },
+          "bedrock-runtime-ap-northeast-3" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-3"
+            },
+            "hostname" : "bedrock-runtime.ap-northeast-3.amazonaws.com"
+          },
+          "bedrock-runtime-ap-south-1" : {
+            "credentialScope" : {
+              "region" : "ap-south-1"
+            },
+            "hostname" : "bedrock-runtime.ap-south-1.amazonaws.com"
+          },
+          "bedrock-runtime-ap-south-2" : {
+            "credentialScope" : {
+              "region" : "ap-south-2"
+            },
+            "hostname" : "bedrock-runtime.ap-south-2.amazonaws.com"
+          },
+          "bedrock-runtime-ap-southeast-1" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-1"
+            },
+            "hostname" : "bedrock-runtime.ap-southeast-1.amazonaws.com"
+          },
+          "bedrock-runtime-ap-southeast-2" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-2"
+            },
+            "hostname" : "bedrock-runtime.ap-southeast-2.amazonaws.com"
+          },
+          "bedrock-runtime-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "hostname" : "bedrock-runtime.ca-central-1.amazonaws.com"
+          },
+          "bedrock-runtime-eu-central-1" : {
+            "credentialScope" : {
+              "region" : "eu-central-1"
+            },
+            "hostname" : "bedrock-runtime.eu-central-1.amazonaws.com"
+          },
+          "bedrock-runtime-eu-central-2" : {
+            "credentialScope" : {
+              "region" : "eu-central-2"
+            },
+            "hostname" : "bedrock-runtime.eu-central-2.amazonaws.com"
+          },
+          "bedrock-runtime-eu-north-1" : {
+            "credentialScope" : {
+              "region" : "eu-north-1"
+            },
+            "hostname" : "bedrock-runtime.eu-north-1.amazonaws.com"
+          },
+          "bedrock-runtime-eu-south-1" : {
+            "credentialScope" : {
+              "region" : "eu-south-1"
+            },
+            "hostname" : "bedrock-runtime.eu-south-1.amazonaws.com"
+          },
+          "bedrock-runtime-eu-south-2" : {
+            "credentialScope" : {
+              "region" : "eu-south-2"
+            },
+            "hostname" : "bedrock-runtime.eu-south-2.amazonaws.com"
+          },
+          "bedrock-runtime-eu-west-1" : {
+            "credentialScope" : {
+              "region" : "eu-west-1"
+            },
+            "hostname" : "bedrock-runtime.eu-west-1.amazonaws.com"
+          },
+          "bedrock-runtime-eu-west-2" : {
+            "credentialScope" : {
+              "region" : "eu-west-2"
+            },
+            "hostname" : "bedrock-runtime.eu-west-2.amazonaws.com"
+          },
+          "bedrock-runtime-eu-west-3" : {
+            "credentialScope" : {
+              "region" : "eu-west-3"
+            },
+            "hostname" : "bedrock-runtime.eu-west-3.amazonaws.com"
+          },
+          "bedrock-runtime-fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "hostname" : "bedrock-runtime-fips.ca-central-1.amazonaws.com"
+          },
+          "bedrock-runtime-fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "bedrock-runtime-fips.us-east-1.amazonaws.com"
+          },
+          "bedrock-runtime-fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "hostname" : "bedrock-runtime-fips.us-east-2.amazonaws.com"
+          },
+          "bedrock-runtime-fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "hostname" : "bedrock-runtime-fips.us-west-2.amazonaws.com"
+          },
+          "bedrock-runtime-sa-east-1" : {
+            "credentialScope" : {
+              "region" : "sa-east-1"
+            },
+            "hostname" : "bedrock-runtime.sa-east-1.amazonaws.com"
+          },
+          "bedrock-runtime-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "bedrock-runtime.us-east-1.amazonaws.com"
+          },
+          "bedrock-runtime-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "hostname" : "bedrock-runtime.us-east-2.amazonaws.com"
+          },
+          "bedrock-runtime-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "hostname" : "bedrock-runtime.us-west-2.amazonaws.com"
+          },
+          "bedrock-sa-east-1" : {
+            "credentialScope" : {
+              "region" : "sa-east-1"
+            },
+            "hostname" : "bedrock.sa-east-1.amazonaws.com"
+          },
+          "bedrock-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "bedrock.us-east-1.amazonaws.com"
+          },
+          "bedrock-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "hostname" : "bedrock.us-east-2.amazonaws.com"
+          },
+          "bedrock-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "hostname" : "bedrock.us-west-2.amazonaws.com"
+          },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "sa-east-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-2" : { }
+        }
+      },
+      "billingconductor" : {
+        "endpoints" : {
+          "aws-global" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "billingconductor.us-east-1.amazonaws.com"
+          }
+        },
+        "isRegionalized" : false,
+        "partitionEndpoint" : "aws-global"
+      },
+      "braket" : {
+        "endpoints" : {
+          "eu-north-1" : {
+            "variants" : [ {
+              "hostname" : "braket.eu-north-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "variants" : [ {
+              "hostname" : "braket.eu-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "braket.us-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "braket.us-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "braket.us-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "budgets" : {
+        "endpoints" : {
+          "aws-global" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "budgets.amazonaws.com"
+          }
+        },
+        "isRegionalized" : false,
+        "partitionEndpoint" : "aws-global"
+      },
+      "cases" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-west-2" : { },
+          "fips-us-east-1" : {
+            "deprecated" : true
+          },
+          "fips-us-west-2" : {
+            "deprecated" : true
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "cassandra" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "cassandra-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "cassandra-fips.us-west-2.amazonaws.com"
+          },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "cassandra-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : { },
+          "us-west-1" : { },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "cassandra-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "catalog.marketplace" : {
+        "endpoints" : {
+          "us-east-1" : { }
+        }
+      },
+      "ce" : {
+        "endpoints" : {
+          "aws-global" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "ce.us-east-1.amazonaws.com"
+          }
+        },
+        "isRegionalized" : false,
+        "partitionEndpoint" : "aws-global"
+      },
+      "chime" : {
+        "defaults" : {
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "aws-global" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "chime.us-east-1.amazonaws.com",
+            "protocols" : [ "https" ]
+          }
+        },
+        "isRegionalized" : false,
+        "partitionEndpoint" : "aws-global"
+      },
+      "cleanrooms" : {
+        "endpoints" : {
+          "ap-northeast-1" : {
+            "variants" : [ {
+              "hostname" : "cleanrooms.ap-northeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-2" : {
+            "variants" : [ {
+              "hostname" : "cleanrooms.ap-northeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-1" : {
+            "variants" : [ {
+              "hostname" : "cleanrooms.ap-southeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "variants" : [ {
+              "hostname" : "cleanrooms.ap-southeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-1" : {
+            "variants" : [ {
+              "hostname" : "cleanrooms.eu-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-north-1" : {
+            "variants" : [ {
+              "hostname" : "cleanrooms.eu-north-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-1" : {
+            "variants" : [ {
+              "hostname" : "cleanrooms.eu-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "variants" : [ {
+              "hostname" : "cleanrooms.eu-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "cleanrooms-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "cleanrooms-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "cleanrooms-fips.us-west-2.amazonaws.com"
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "cleanrooms-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "cleanrooms-fips.us-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "cleanrooms.us-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "cleanrooms-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "cleanrooms-fips.us-east-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "cleanrooms.us-east-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "cleanrooms-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "cleanrooms-fips.us-west-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "cleanrooms.us-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "cloud9" : {
+        "endpoints" : {
+          "af-south-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-east-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-2" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-3" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-central-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            }, {
+              "hostname" : "cloud9-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "cloud9-fips.ca-central-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            } ]
+          },
+          "eu-central-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-north-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-3" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "cloud9-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "cloud9-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "cloud9-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "cloud9-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "cloud9-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-south-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "sa-east-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            }, {
+              "hostname" : "cloud9-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "cloud9-fips.us-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            }, {
+              "hostname" : "cloud9-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "cloud9-fips.us-east-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            }, {
+              "hostname" : "cloud9-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "cloud9-fips.us-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            }, {
+              "hostname" : "cloud9-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "cloud9-fips.us-west-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            } ]
+          }
+        }
+      },
+      "cloudcontrolapi" : {
+        "endpoints" : {
+          "af-south-1" : {
+            "variants" : [ {
+              "hostname" : "cloudcontrolapi.af-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-east-1" : {
+            "variants" : [ {
+              "hostname" : "cloudcontrolapi.ap-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-1" : {
+            "variants" : [ {
+              "hostname" : "cloudcontrolapi.ap-northeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-2" : {
+            "variants" : [ {
+              "hostname" : "cloudcontrolapi.ap-northeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-3" : {
+            "variants" : [ {
+              "hostname" : "cloudcontrolapi.ap-northeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-1" : {
+            "variants" : [ {
+              "hostname" : "cloudcontrolapi.ap-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-2" : {
+            "variants" : [ {
+              "hostname" : "cloudcontrolapi.ap-south-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-1" : {
+            "variants" : [ {
+              "hostname" : "cloudcontrolapi.ap-southeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "variants" : [ {
+              "hostname" : "cloudcontrolapi.ap-southeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-3" : {
+            "variants" : [ {
+              "hostname" : "cloudcontrolapi.ap-southeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-4" : {
+            "variants" : [ {
+              "hostname" : "cloudcontrolapi.ap-southeast-4.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-5" : {
+            "variants" : [ {
+              "hostname" : "cloudcontrolapi.ap-southeast-5.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-7" : {
+            "variants" : [ {
+              "hostname" : "cloudcontrolapi.ap-southeast-7.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "cloudcontrolapi-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "cloudcontrolapi-fips.ca-central-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "cloudcontrolapi.ca-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "cloudcontrolapi-fips.ca-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "cloudcontrolapi-fips.ca-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "cloudcontrolapi.ca-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-1" : {
+            "variants" : [ {
+              "hostname" : "cloudcontrolapi.eu-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-2" : {
+            "variants" : [ {
+              "hostname" : "cloudcontrolapi.eu-central-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-north-1" : {
+            "variants" : [ {
+              "hostname" : "cloudcontrolapi.eu-north-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-1" : {
+            "variants" : [ {
+              "hostname" : "cloudcontrolapi.eu-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-2" : {
+            "variants" : [ {
+              "hostname" : "cloudcontrolapi.eu-south-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-1" : {
+            "variants" : [ {
+              "hostname" : "cloudcontrolapi.eu-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "variants" : [ {
+              "hostname" : "cloudcontrolapi.eu-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-3" : {
+            "variants" : [ {
+              "hostname" : "cloudcontrolapi.eu-west-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "cloudcontrolapi-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-ca-west-1" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "cloudcontrolapi-fips.ca-west-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "cloudcontrolapi-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "cloudcontrolapi-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "cloudcontrolapi-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "cloudcontrolapi-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : {
+            "variants" : [ {
+              "hostname" : "cloudcontrolapi.il-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-central-1" : {
+            "variants" : [ {
+              "hostname" : "cloudcontrolapi.me-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-south-1" : {
+            "variants" : [ {
+              "hostname" : "cloudcontrolapi.me-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "mx-central-1" : {
+            "variants" : [ {
+              "hostname" : "cloudcontrolapi.mx-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "sa-east-1" : {
+            "variants" : [ {
+              "hostname" : "cloudcontrolapi.sa-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "cloudcontrolapi-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "cloudcontrolapi-fips.us-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "cloudcontrolapi.us-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "cloudcontrolapi-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "cloudcontrolapi-fips.us-east-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "cloudcontrolapi.us-east-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "cloudcontrolapi-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "cloudcontrolapi-fips.us-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "cloudcontrolapi.us-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "cloudcontrolapi-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "cloudcontrolapi-fips.us-west-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "cloudcontrolapi.us-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "clouddirectory" : {
+        "endpoints" : {
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-2" : { }
+        }
+      },
+      "cloudformation" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ap-southeast-7" : { },
+          "ca-central-1" : { },
+          "ca-west-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "mx-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "cloudformation-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "cloudformation-fips.us-east-1.amazonaws.com"
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "cloudformation-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "cloudformation-fips.us-east-2.amazonaws.com"
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "cloudformation-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "cloudformation-fips.us-west-1.amazonaws.com"
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "cloudformation-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "cloudformation-fips.us-west-2.amazonaws.com"
+          }
+        }
+      },
+      "cloudfront" : {
+        "endpoints" : {
+          "aws-global" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "cloudfront.amazonaws.com",
+            "protocols" : [ "http", "https" ]
+          }
+        },
+        "isRegionalized" : false,
+        "partitionEndpoint" : "aws-global"
+      },
+      "cloudhsm" : {
+        "endpoints" : {
+          "us-east-1" : { }
+        }
+      },
+      "cloudhsmv2" : {
+        "defaults" : {
+          "credentialScope" : {
+            "service" : "cloudhsm"
+          }
+        },
+        "endpoints" : {
+          "af-south-1" : {
+            "variants" : [ {
+              "hostname" : "cloudhsmv2.af-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-east-1" : {
+            "variants" : [ {
+              "hostname" : "cloudhsmv2.ap-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-1" : {
+            "variants" : [ {
+              "hostname" : "cloudhsmv2.ap-northeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-2" : {
+            "variants" : [ {
+              "hostname" : "cloudhsmv2.ap-northeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-3" : {
+            "variants" : [ {
+              "hostname" : "cloudhsmv2.ap-northeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-1" : {
+            "variants" : [ {
+              "hostname" : "cloudhsmv2.ap-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-2" : {
+            "variants" : [ {
+              "hostname" : "cloudhsmv2.ap-south-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-1" : {
+            "variants" : [ {
+              "hostname" : "cloudhsmv2.ap-southeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "variants" : [ {
+              "hostname" : "cloudhsmv2.ap-southeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-3" : {
+            "variants" : [ {
+              "hostname" : "cloudhsmv2.ap-southeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "cloudhsmv2.ca-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-1" : {
+            "variants" : [ {
+              "hostname" : "cloudhsmv2.eu-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-2" : {
+            "variants" : [ {
+              "hostname" : "cloudhsmv2.eu-central-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-north-1" : {
+            "variants" : [ {
+              "hostname" : "cloudhsmv2.eu-north-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-1" : {
+            "variants" : [ {
+              "hostname" : "cloudhsmv2.eu-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-1" : {
+            "variants" : [ {
+              "hostname" : "cloudhsmv2.eu-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "variants" : [ {
+              "hostname" : "cloudhsmv2.eu-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-3" : {
+            "variants" : [ {
+              "hostname" : "cloudhsmv2.eu-west-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "il-central-1" : {
+            "variants" : [ {
+              "hostname" : "cloudhsmv2.il-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-central-1" : {
+            "variants" : [ {
+              "hostname" : "cloudhsmv2.me-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-south-1" : {
+            "variants" : [ {
+              "hostname" : "cloudhsmv2.me-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "sa-east-1" : {
+            "variants" : [ {
+              "hostname" : "cloudhsmv2.sa-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "cloudhsmv2.us-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "cloudhsmv2.us-east-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "cloudhsmv2.us-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "cloudhsmv2.us-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "cloudsearch" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "eu-central-1" : { },
+          "eu-west-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : { },
+          "us-west-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "cloudtrail" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ap-southeast-7" : { },
+          "ca-central-1" : { },
+          "ca-west-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "cloudtrail-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "cloudtrail-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "cloudtrail-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "cloudtrail-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "mx-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "cloudtrail-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "cloudtrail-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "cloudtrail-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "cloudtrail-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "cloudtrail-data" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "codeartifact" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-2" : { }
+        }
+      },
+      "codebuild" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "codebuild-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "codebuild-fips.us-east-1.amazonaws.com"
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "codebuild-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "codebuild-fips.us-east-2.amazonaws.com"
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "codebuild-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "codebuild-fips.us-west-1.amazonaws.com"
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "codebuild-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "codebuild-fips.us-west-2.amazonaws.com"
+          }
+        }
+      },
+      "codecatalyst" : {
+        "endpoints" : {
+          "aws-global" : {
+            "hostname" : "codecatalyst.global.api.aws"
+          }
+        },
+        "isRegionalized" : false,
+        "partitionEndpoint" : "aws-global"
+      },
+      "codecommit" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "codecommit-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-central-1-fips" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "codecommit-fips.ca-central-1.amazonaws.com"
+          },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "codecommit-fips.ca-central-1.amazonaws.com"
+          },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "codecommit-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "codecommit-fips.us-east-1.amazonaws.com"
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "codecommit-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "codecommit-fips.us-east-2.amazonaws.com"
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "codecommit-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "codecommit-fips.us-west-1.amazonaws.com"
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "codecommit-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "codecommit-fips.us-west-2.amazonaws.com"
+          }
+        }
+      },
+      "codedeploy" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ap-southeast-7" : { },
+          "ca-central-1" : { },
+          "ca-west-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "mx-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "codedeploy-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "codedeploy-fips.us-east-1.amazonaws.com"
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "codedeploy-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "codedeploy-fips.us-east-2.amazonaws.com"
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "codedeploy-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "codedeploy-fips.us-west-1.amazonaws.com"
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "codedeploy-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "codedeploy-fips.us-west-2.amazonaws.com"
+          }
+        }
+      },
+      "codeguru-reviewer" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-2" : { }
+        }
+      },
+      "codepipeline" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "codepipeline-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "codepipeline-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "codepipeline-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "codepipeline-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "codepipeline-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "codepipeline-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "codepipeline-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "codepipeline-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "codepipeline-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "codepipeline-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "codestar-connections" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "sa-east-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "codestar-notifications" : {
+        "endpoints" : {
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "cognito-identity" : {
+        "endpoints" : {
+          "af-south-1" : {
+            "variants" : [ {
+              "hostname" : "cognito-identity.af-south-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-east-1" : {
+            "variants" : [ {
+              "hostname" : "cognito-identity.ap-east-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-1" : {
+            "variants" : [ {
+              "hostname" : "cognito-identity.ap-northeast-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-2" : {
+            "variants" : [ {
+              "hostname" : "cognito-identity.ap-northeast-2.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-3" : {
+            "variants" : [ {
+              "hostname" : "cognito-identity.ap-northeast-3.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-1" : {
+            "variants" : [ {
+              "hostname" : "cognito-identity.ap-south-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-2" : {
+            "variants" : [ {
+              "hostname" : "cognito-identity.ap-south-2.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-1" : {
+            "variants" : [ {
+              "hostname" : "cognito-identity.ap-southeast-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "variants" : [ {
+              "hostname" : "cognito-identity.ap-southeast-2.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-3" : {
+            "variants" : [ {
+              "hostname" : "cognito-identity.ap-southeast-3.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-4" : {
+            "variants" : [ {
+              "hostname" : "cognito-identity.ap-southeast-4.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-5" : {
+            "variants" : [ {
+              "hostname" : "cognito-identity.ap-southeast-5.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "cognito-identity.ca-central-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "cognito-identity.ca-west-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-1" : {
+            "variants" : [ {
+              "hostname" : "cognito-identity.eu-central-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-2" : {
+            "variants" : [ {
+              "hostname" : "cognito-identity.eu-central-2.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-north-1" : {
+            "variants" : [ {
+              "hostname" : "cognito-identity.eu-north-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-1" : {
+            "variants" : [ {
+              "hostname" : "cognito-identity.eu-south-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-2" : {
+            "variants" : [ {
+              "hostname" : "cognito-identity.eu-south-2.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-1" : {
+            "variants" : [ {
+              "hostname" : "cognito-identity.eu-west-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "variants" : [ {
+              "hostname" : "cognito-identity.eu-west-2.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-3" : {
+            "variants" : [ {
+              "hostname" : "cognito-identity.eu-west-3.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "cognito-identity-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "cognito-identity-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "cognito-identity-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "cognito-identity-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : {
+            "variants" : [ {
+              "hostname" : "cognito-identity.il-central-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-central-1" : {
+            "variants" : [ {
+              "hostname" : "cognito-identity.me-central-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-south-1" : {
+            "variants" : [ {
+              "hostname" : "cognito-identity.me-south-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "sa-east-1" : {
+            "variants" : [ {
+              "hostname" : "cognito-identity.sa-east-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "cognito-identity-fips.us-east-1.amazonaws.com",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "cognito-identity-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "cognito-identity.us-east-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "cognito-identity-fips.us-east-2.amazonaws.com",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "cognito-identity-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "cognito-identity.us-east-2.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "cognito-identity-fips.us-west-1.amazonaws.com",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "cognito-identity-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "cognito-identity.us-west-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "cognito-identity-fips.us-west-2.amazonaws.com",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "cognito-identity-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "cognito-identity.us-west-2.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "cognito-idp" : {
+        "endpoints" : {
+          "af-south-1" : {
+            "variants" : [ {
+              "hostname" : "cognito-idp.af-south-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-east-1" : {
+            "variants" : [ {
+              "hostname" : "cognito-idp.ap-east-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-1" : {
+            "variants" : [ {
+              "hostname" : "cognito-idp.ap-northeast-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-2" : {
+            "variants" : [ {
+              "hostname" : "cognito-idp.ap-northeast-2.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-3" : {
+            "variants" : [ {
+              "hostname" : "cognito-idp.ap-northeast-3.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-1" : {
+            "variants" : [ {
+              "hostname" : "cognito-idp.ap-south-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-2" : {
+            "variants" : [ {
+              "hostname" : "cognito-idp.ap-south-2.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-1" : {
+            "variants" : [ {
+              "hostname" : "cognito-idp.ap-southeast-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "variants" : [ {
+              "hostname" : "cognito-idp.ap-southeast-2.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-3" : {
+            "variants" : [ {
+              "hostname" : "cognito-idp.ap-southeast-3.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-4" : {
+            "variants" : [ {
+              "hostname" : "cognito-idp.ap-southeast-4.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-5" : {
+            "variants" : [ {
+              "hostname" : "cognito-idp.ap-southeast-5.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "cognito-idp.ca-central-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "cognito-idp.ca-west-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-1" : {
+            "variants" : [ {
+              "hostname" : "cognito-idp.eu-central-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-2" : {
+            "variants" : [ {
+              "hostname" : "cognito-idp.eu-central-2.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-north-1" : {
+            "variants" : [ {
+              "hostname" : "cognito-idp.eu-north-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-1" : {
+            "variants" : [ {
+              "hostname" : "cognito-idp.eu-south-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-2" : {
+            "variants" : [ {
+              "hostname" : "cognito-idp.eu-south-2.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-1" : {
+            "variants" : [ {
+              "hostname" : "cognito-idp.eu-west-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "variants" : [ {
+              "hostname" : "cognito-idp.eu-west-2.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-3" : {
+            "variants" : [ {
+              "hostname" : "cognito-idp.eu-west-3.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "cognito-idp-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "cognito-idp-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "cognito-idp-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "cognito-idp-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : {
+            "variants" : [ {
+              "hostname" : "cognito-idp.il-central-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-central-1" : {
+            "variants" : [ {
+              "hostname" : "cognito-idp.me-central-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-south-1" : {
+            "variants" : [ {
+              "hostname" : "cognito-idp.me-south-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "sa-east-1" : {
+            "variants" : [ {
+              "hostname" : "cognito-idp.sa-east-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "cognito-idp-fips.us-east-1.amazonaws.com",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "cognito-idp-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "cognito-idp.us-east-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "cognito-idp-fips.us-east-2.amazonaws.com",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "cognito-idp-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "cognito-idp.us-east-2.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "cognito-idp-fips.us-west-1.amazonaws.com",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "cognito-idp-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "cognito-idp.us-west-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "cognito-idp-fips.us-west-2.amazonaws.com",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "cognito-idp-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "cognito-idp.us-west-2.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "cognito-sync" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "eu-central-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-2" : { }
+        }
+      },
+      "comprehend" : {
+        "defaults" : {
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "comprehend-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "comprehend-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "comprehend-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "comprehend-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "comprehend-fips.us-west-2.amazonaws.com"
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "comprehend-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "comprehend-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "comprehend-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "comprehendmedical" : {
+        "endpoints" : {
+          "ap-southeast-2" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "comprehendmedical-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "comprehendmedical-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "comprehendmedical-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "comprehendmedical-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "comprehendmedical-fips.us-west-2.amazonaws.com"
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "comprehendmedical-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "comprehendmedical-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "comprehendmedical-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "compute-optimizer" : {
+        "endpoints" : {
+          "af-south-1" : {
+            "credentialScope" : {
+              "region" : "af-south-1"
+            },
+            "hostname" : "compute-optimizer.af-south-1.amazonaws.com"
+          },
+          "ap-east-1" : {
+            "credentialScope" : {
+              "region" : "ap-east-1"
+            },
+            "hostname" : "compute-optimizer.ap-east-1.amazonaws.com"
+          },
+          "ap-northeast-1" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-1"
+            },
+            "hostname" : "compute-optimizer.ap-northeast-1.amazonaws.com"
+          },
+          "ap-northeast-2" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-2"
+            },
+            "hostname" : "compute-optimizer.ap-northeast-2.amazonaws.com"
+          },
+          "ap-northeast-3" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-3"
+            },
+            "hostname" : "compute-optimizer.ap-northeast-3.amazonaws.com"
+          },
+          "ap-south-1" : {
+            "credentialScope" : {
+              "region" : "ap-south-1"
+            },
+            "hostname" : "compute-optimizer.ap-south-1.amazonaws.com"
+          },
+          "ap-south-2" : {
+            "credentialScope" : {
+              "region" : "ap-south-2"
+            },
+            "hostname" : "compute-optimizer.ap-south-2.amazonaws.com"
+          },
+          "ap-southeast-1" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-1"
+            },
+            "hostname" : "compute-optimizer.ap-southeast-1.amazonaws.com"
+          },
+          "ap-southeast-2" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-2"
+            },
+            "hostname" : "compute-optimizer.ap-southeast-2.amazonaws.com"
+          },
+          "ap-southeast-3" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-3"
+            },
+            "hostname" : "compute-optimizer.ap-southeast-3.amazonaws.com"
+          },
+          "ap-southeast-4" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-4"
+            },
+            "hostname" : "compute-optimizer.ap-southeast-4.amazonaws.com"
+          },
+          "ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "hostname" : "compute-optimizer.ca-central-1.amazonaws.com"
+          },
+          "eu-central-1" : {
+            "credentialScope" : {
+              "region" : "eu-central-1"
+            },
+            "hostname" : "compute-optimizer.eu-central-1.amazonaws.com"
+          },
+          "eu-central-2" : {
+            "credentialScope" : {
+              "region" : "eu-central-2"
+            },
+            "hostname" : "compute-optimizer.eu-central-2.amazonaws.com"
+          },
+          "eu-north-1" : {
+            "credentialScope" : {
+              "region" : "eu-north-1"
+            },
+            "hostname" : "compute-optimizer.eu-north-1.amazonaws.com"
+          },
+          "eu-south-1" : {
+            "credentialScope" : {
+              "region" : "eu-south-1"
+            },
+            "hostname" : "compute-optimizer.eu-south-1.amazonaws.com"
+          },
+          "eu-south-2" : {
+            "credentialScope" : {
+              "region" : "eu-south-2"
+            },
+            "hostname" : "compute-optimizer.eu-south-2.amazonaws.com"
+          },
+          "eu-west-1" : {
+            "credentialScope" : {
+              "region" : "eu-west-1"
+            },
+            "hostname" : "compute-optimizer.eu-west-1.amazonaws.com"
+          },
+          "eu-west-2" : {
+            "credentialScope" : {
+              "region" : "eu-west-2"
+            },
+            "hostname" : "compute-optimizer.eu-west-2.amazonaws.com"
+          },
+          "eu-west-3" : {
+            "credentialScope" : {
+              "region" : "eu-west-3"
+            },
+            "hostname" : "compute-optimizer.eu-west-3.amazonaws.com"
+          },
+          "il-central-1" : {
+            "credentialScope" : {
+              "region" : "il-central-1"
+            },
+            "hostname" : "compute-optimizer.il-central-1.amazonaws.com"
+          },
+          "me-central-1" : {
+            "credentialScope" : {
+              "region" : "me-central-1"
+            },
+            "hostname" : "compute-optimizer.me-central-1.amazonaws.com"
+          },
+          "me-south-1" : {
+            "credentialScope" : {
+              "region" : "me-south-1"
+            },
+            "hostname" : "compute-optimizer.me-south-1.amazonaws.com"
+          },
+          "sa-east-1" : {
+            "credentialScope" : {
+              "region" : "sa-east-1"
+            },
+            "hostname" : "compute-optimizer.sa-east-1.amazonaws.com"
+          },
+          "us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "compute-optimizer.us-east-1.amazonaws.com"
+          },
+          "us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "hostname" : "compute-optimizer.us-east-2.amazonaws.com"
+          },
+          "us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "hostname" : "compute-optimizer.us-west-1.amazonaws.com"
+          },
+          "us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "hostname" : "compute-optimizer.us-west-2.amazonaws.com"
+          }
+        }
+      },
+      "config" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ap-southeast-7" : { },
+          "ca-central-1" : { },
+          "ca-west-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "config-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "config-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "config-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "config-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "mx-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "config-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "config-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "config-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "config-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "connect" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "connect-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : { },
+          "eu-west-2" : { },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "connect-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "connect-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "connect-fips.us-west-2.amazonaws.com"
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "connect-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "connect-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "connect-campaigns" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-west-2" : { },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "connect-campaigns-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "connect-campaigns-fips.us-west-2.amazonaws.com"
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "connect-campaigns-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "connect-campaigns-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "contact-lens" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-west-2" : { },
+          "us-east-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "controltower" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "controltower-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-central-1-fips" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "controltower-fips.ca-central-1.amazonaws.com"
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "controltower-fips.ca-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "controltower-fips.ca-west-1.amazonaws.com"
+          },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "controltower-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "controltower-fips.us-east-1.amazonaws.com"
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "controltower-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "controltower-fips.us-east-2.amazonaws.com"
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "controltower-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "controltower-fips.us-west-1.amazonaws.com"
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "controltower-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "controltower-fips.us-west-2.amazonaws.com"
+          }
+        }
+      },
+      "cost-optimization-hub" : {
+        "endpoints" : {
+          "us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "cost-optimization-hub.us-east-1.amazonaws.com"
+          }
+        }
+      },
+      "cur" : {
+        "endpoints" : {
+          "us-east-1" : { }
+        }
+      },
+      "data-ats.iot" : {
+        "defaults" : {
+          "credentialScope" : {
+            "service" : "iotdata"
+          },
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "data.iot-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "service" : "iotdata"
+            },
+            "deprecated" : true,
+            "hostname" : "data.iot-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "service" : "iotdata"
+            },
+            "deprecated" : true,
+            "hostname" : "data.iot-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "service" : "iotdata"
+            },
+            "deprecated" : true,
+            "hostname" : "data.iot-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "service" : "iotdata"
+            },
+            "deprecated" : true,
+            "hostname" : "data.iot-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "service" : "iotdata"
+            },
+            "deprecated" : true,
+            "hostname" : "data.iot-fips.us-west-2.amazonaws.com"
+          },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "data.iot-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "data.iot-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "data.iot-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "data.iot-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "data.iot" : {
+        "defaults" : {
+          "credentialScope" : {
+            "service" : "iotdata"
+          },
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "data.iot-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "service" : "iotdata"
+            },
+            "deprecated" : true,
+            "hostname" : "data.iot-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "service" : "iotdata"
+            },
+            "deprecated" : true,
+            "hostname" : "data.iot-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "service" : "iotdata"
+            },
+            "deprecated" : true,
+            "hostname" : "data.iot-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "service" : "iotdata"
+            },
+            "deprecated" : true,
+            "hostname" : "data.iot-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "service" : "iotdata"
+            },
+            "deprecated" : true,
+            "hostname" : "data.iot-fips.us-west-2.amazonaws.com"
+          },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "data.iot-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "data.iot-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "data.iot-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "data.iot-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "data.jobs.iot" : {
+        "endpoints" : {
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "data.jobs.iot-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "data.jobs.iot-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "data.jobs.iot-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "data.jobs.iot-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "data.jobs.iot-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "data.jobs.iot-fips.us-west-2.amazonaws.com"
+          },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "data.jobs.iot-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "data.jobs.iot-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "data.jobs.iot-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "data.jobs.iot-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "data.mediastore" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-southeast-2" : { },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "us-east-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "databrew" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "databrew-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "databrew-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "databrew-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "databrew-fips.us-west-2.amazonaws.com"
+          },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "databrew-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "databrew-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "databrew-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "databrew-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "dataexchange" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "eu-central-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "datapipeline" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-southeast-2" : { },
+          "eu-west-1" : { },
+          "us-east-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "datasync" : {
+        "endpoints" : {
+          "af-south-1" : {
+            "variants" : [ {
+              "hostname" : "datasync.af-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-east-1" : {
+            "variants" : [ {
+              "hostname" : "datasync.ap-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-1" : {
+            "variants" : [ {
+              "hostname" : "datasync.ap-northeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-2" : {
+            "variants" : [ {
+              "hostname" : "datasync.ap-northeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-3" : {
+            "variants" : [ {
+              "hostname" : "datasync.ap-northeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-1" : {
+            "variants" : [ {
+              "hostname" : "datasync.ap-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-2" : {
+            "variants" : [ {
+              "hostname" : "datasync.ap-south-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-1" : {
+            "variants" : [ {
+              "hostname" : "datasync.ap-southeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "variants" : [ {
+              "hostname" : "datasync.ap-southeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-3" : {
+            "variants" : [ {
+              "hostname" : "datasync.ap-southeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-4" : {
+            "variants" : [ {
+              "hostname" : "datasync.ap-southeast-4.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-5" : {
+            "variants" : [ {
+              "hostname" : "datasync.ap-southeast-5.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-7" : {
+            "variants" : [ {
+              "hostname" : "datasync.ap-southeast-7.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "datasync-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "datasync-fips.ca-central-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "datasync.ca-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "datasync-fips.ca-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "datasync-fips.ca-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "datasync.ca-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-1" : {
+            "variants" : [ {
+              "hostname" : "datasync.eu-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-2" : {
+            "variants" : [ {
+              "hostname" : "datasync.eu-central-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-north-1" : {
+            "variants" : [ {
+              "hostname" : "datasync.eu-north-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-1" : {
+            "variants" : [ {
+              "hostname" : "datasync.eu-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-2" : {
+            "variants" : [ {
+              "hostname" : "datasync.eu-south-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-1" : {
+            "variants" : [ {
+              "hostname" : "datasync.eu-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "variants" : [ {
+              "hostname" : "datasync.eu-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-3" : {
+            "variants" : [ {
+              "hostname" : "datasync.eu-west-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "datasync-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-ca-west-1" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "datasync-fips.ca-west-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "datasync-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "datasync-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "datasync-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "datasync-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : {
+            "variants" : [ {
+              "hostname" : "datasync.il-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-central-1" : {
+            "variants" : [ {
+              "hostname" : "datasync.me-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-south-1" : {
+            "variants" : [ {
+              "hostname" : "datasync.me-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "mx-central-1" : {
+            "variants" : [ {
+              "hostname" : "datasync.mx-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "sa-east-1" : {
+            "variants" : [ {
+              "hostname" : "datasync.sa-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "datasync-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "datasync-fips.us-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "datasync.us-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "datasync-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "datasync-fips.us-east-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "datasync.us-east-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "datasync-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "datasync-fips.us-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "datasync.us-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "datasync-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "datasync-fips.us-west-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "datasync.us-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "datazone" : {
+        "defaults" : {
+          "dnsSuffix" : "api.aws",
+          "variants" : [ {
+            "dnsSuffix" : "api.aws",
+            "hostname" : "{service}-fips.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "ap-northeast-1" : {
+            "hostname" : "datazone.ap-northeast-1.api.aws"
+          },
+          "ap-northeast-2" : {
+            "hostname" : "datazone.ap-northeast-2.api.aws"
+          },
+          "ap-northeast-3" : {
+            "hostname" : "datazone.ap-northeast-3.api.aws"
+          },
+          "ap-south-1" : {
+            "hostname" : "datazone.ap-south-1.api.aws"
+          },
+          "ap-south-2" : {
+            "hostname" : "datazone.ap-south-2.api.aws"
+          },
+          "ap-southeast-1" : {
+            "hostname" : "datazone.ap-southeast-1.api.aws"
+          },
+          "ap-southeast-2" : {
+            "hostname" : "datazone.ap-southeast-2.api.aws"
+          },
+          "ap-southeast-3" : {
+            "hostname" : "datazone.ap-southeast-3.api.aws"
+          },
+          "ap-southeast-4" : {
+            "hostname" : "datazone.ap-southeast-4.api.aws"
+          },
+          "ap-southeast-5" : {
+            "hostname" : "datazone.ap-southeast-5.api.aws"
+          },
+          "ap-southeast-7" : {
+            "hostname" : "datazone.ap-southeast-7.api.aws"
+          },
+          "ca-central-1" : {
+            "hostname" : "datazone.ca-central-1.api.aws",
+            "variants" : [ {
+              "hostname" : "datazone-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-west-1" : {
+            "hostname" : "datazone.ca-west-1.api.aws"
+          },
+          "eu-central-1" : {
+            "hostname" : "datazone.eu-central-1.api.aws"
+          },
+          "eu-north-1" : {
+            "hostname" : "datazone.eu-north-1.api.aws"
+          },
+          "eu-south-1" : {
+            "hostname" : "datazone.eu-south-1.api.aws"
+          },
+          "eu-west-1" : {
+            "hostname" : "datazone.eu-west-1.api.aws"
+          },
+          "eu-west-2" : {
+            "hostname" : "datazone.eu-west-2.api.aws"
+          },
+          "eu-west-3" : {
+            "hostname" : "datazone.eu-west-3.api.aws"
+          },
+          "il-central-1" : {
+            "hostname" : "datazone.il-central-1.api.aws"
+          },
+          "me-central-1" : {
+            "hostname" : "datazone.me-central-1.api.aws"
+          },
+          "me-south-1" : {
+            "hostname" : "datazone.me-south-1.api.aws"
+          },
+          "mx-central-1" : {
+            "hostname" : "datazone.mx-central-1.api.aws"
+          },
+          "sa-east-1" : {
+            "hostname" : "datazone.sa-east-1.api.aws"
+          },
+          "us-east-1" : {
+            "hostname" : "datazone.us-east-1.api.aws",
+            "variants" : [ {
+              "hostname" : "datazone-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "hostname" : "datazone.us-east-2.api.aws",
+            "variants" : [ {
+              "hostname" : "datazone-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "hostname" : "datazone.us-west-1.api.aws"
+          },
+          "us-west-2" : {
+            "hostname" : "datazone.us-west-2.api.aws",
+            "variants" : [ {
+              "hostname" : "datazone-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "dax" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "sa-east-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "devicefarm" : {
+        "endpoints" : {
+          "us-west-2" : { }
+        }
+      },
+      "devops-guru" : {
+        "defaults" : {
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "devops-guru-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "devops-guru-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "devops-guru-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "devops-guru-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "devops-guru-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "devops-guru-fips.us-west-2.amazonaws.com"
+          },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "devops-guru-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "devops-guru-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "devops-guru-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "devops-guru-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "directconnect" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ap-southeast-7" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "directconnect-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "directconnect-fips.ca-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "directconnect-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-ca-west-1" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "directconnect-fips.ca-west-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "directconnect-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "directconnect-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "directconnect-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "directconnect-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "mx-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "directconnect-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "directconnect-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "directconnect-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "directconnect-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "discovery" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-southeast-2" : { },
+          "eu-central-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "us-east-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "dlm" : {
+        "endpoints" : {
+          "af-south-1" : {
+            "variants" : [ {
+              "hostname" : "dlm.af-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-east-1" : {
+            "variants" : [ {
+              "hostname" : "dlm.ap-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-1" : {
+            "variants" : [ {
+              "hostname" : "dlm.ap-northeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-2" : {
+            "variants" : [ {
+              "hostname" : "dlm.ap-northeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-3" : {
+            "variants" : [ {
+              "hostname" : "dlm.ap-northeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-1" : {
+            "variants" : [ {
+              "hostname" : "dlm.ap-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-2" : {
+            "variants" : [ {
+              "hostname" : "dlm.ap-south-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-1" : {
+            "variants" : [ {
+              "hostname" : "dlm.ap-southeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "variants" : [ {
+              "hostname" : "dlm.ap-southeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-3" : {
+            "variants" : [ {
+              "hostname" : "dlm.ap-southeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-4" : {
+            "variants" : [ {
+              "hostname" : "dlm.ap-southeast-4.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-5" : {
+            "variants" : [ {
+              "hostname" : "dlm.ap-southeast-5.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-7" : {
+            "variants" : [ {
+              "hostname" : "dlm.ap-southeast-7.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "dlm-fips.ca-central-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "dlm.ca-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "dlm-fips.ca-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "dlm.ca-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-1" : {
+            "variants" : [ {
+              "hostname" : "dlm.eu-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-2" : {
+            "variants" : [ {
+              "hostname" : "dlm.eu-central-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-north-1" : {
+            "variants" : [ {
+              "hostname" : "dlm.eu-north-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-1" : {
+            "variants" : [ {
+              "hostname" : "dlm.eu-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-2" : {
+            "variants" : [ {
+              "hostname" : "dlm.eu-south-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-1" : {
+            "variants" : [ {
+              "hostname" : "dlm.eu-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "variants" : [ {
+              "hostname" : "dlm.eu-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-3" : {
+            "variants" : [ {
+              "hostname" : "dlm.eu-west-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "il-central-1" : {
+            "variants" : [ {
+              "hostname" : "dlm.il-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-central-1" : {
+            "variants" : [ {
+              "hostname" : "dlm.me-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-south-1" : {
+            "variants" : [ {
+              "hostname" : "dlm.me-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "mx-central-1" : {
+            "variants" : [ {
+              "hostname" : "dlm.mx-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "sa-east-1" : {
+            "variants" : [ {
+              "hostname" : "dlm.sa-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "dlm-fips.us-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "dlm.us-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "dlm-fips.us-east-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "dlm.us-east-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "dlm-fips.us-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "dlm.us-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "dlm-fips.us-west-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "dlm.us-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "dms" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ap-southeast-7" : { },
+          "ca-central-1" : { },
+          "ca-west-1" : { },
+          "dms" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "variants" : [ {
+              "hostname" : "dms-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "dms-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "dms-fips.us-west-1.amazonaws.com"
+          },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "mx-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "dms-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "dms-fips.us-east-1.amazonaws.com"
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "dms-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "dms-fips.us-east-2.amazonaws.com"
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "dms-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "dms-fips.us-west-1.amazonaws.com"
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "dms-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "dms-fips.us-west-2.amazonaws.com"
+          }
+        }
+      },
+      "docdb" : {
+        "endpoints" : {
+          "ap-northeast-1" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-1"
+            },
+            "hostname" : "rds.ap-northeast-1.amazonaws.com"
+          },
+          "ap-northeast-2" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-2"
+            },
+            "hostname" : "rds.ap-northeast-2.amazonaws.com"
+          },
+          "ap-south-1" : {
+            "credentialScope" : {
+              "region" : "ap-south-1"
+            },
+            "hostname" : "rds.ap-south-1.amazonaws.com"
+          },
+          "ap-southeast-1" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-1"
+            },
+            "hostname" : "rds.ap-southeast-1.amazonaws.com"
+          },
+          "ap-southeast-2" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-2"
+            },
+            "hostname" : "rds.ap-southeast-2.amazonaws.com"
+          },
+          "ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "hostname" : "rds.ca-central-1.amazonaws.com"
+          },
+          "eu-central-1" : {
+            "credentialScope" : {
+              "region" : "eu-central-1"
+            },
+            "hostname" : "rds.eu-central-1.amazonaws.com"
+          },
+          "eu-west-1" : {
+            "credentialScope" : {
+              "region" : "eu-west-1"
+            },
+            "hostname" : "rds.eu-west-1.amazonaws.com"
+          },
+          "eu-west-2" : {
+            "credentialScope" : {
+              "region" : "eu-west-2"
+            },
+            "hostname" : "rds.eu-west-2.amazonaws.com"
+          },
+          "eu-west-3" : {
+            "credentialScope" : {
+              "region" : "eu-west-3"
+            },
+            "hostname" : "rds.eu-west-3.amazonaws.com"
+          },
+          "sa-east-1" : {
+            "credentialScope" : {
+              "region" : "sa-east-1"
+            },
+            "hostname" : "rds.sa-east-1.amazonaws.com"
+          },
+          "us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "rds.us-east-1.amazonaws.com"
+          },
+          "us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "hostname" : "rds.us-east-2.amazonaws.com"
+          },
+          "us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "hostname" : "rds.us-west-2.amazonaws.com"
+          }
+        }
+      },
+      "drs" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "drs-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "drs-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "drs-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "drs-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "drs-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "drs-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "drs-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "drs-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "ds" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ap-southeast-7" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "ds-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "ds-fips.ca-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ds-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-ca-west-1" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ds-fips.ca-west-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ds-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "ds-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ds-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "ds-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "mx-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "ds-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "ds-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "ds-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "ds-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "dynamodb" : {
+        "defaults" : {
+          "protocols" : [ "http", "https" ]
+        },
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ap-southeast-7" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "dynamodb-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-central-1-fips" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "dynamodb-fips.ca-central-1.amazonaws.com"
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "dynamodb-fips.ca-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "dynamodb-fips.ca-west-1.amazonaws.com"
+          },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "il-central-1" : { },
+          "local" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "localhost:8000",
+            "protocols" : [ "http" ]
+          },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "mx-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "dynamodb-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "dynamodb-fips.us-east-1.amazonaws.com"
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "dynamodb-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "dynamodb-fips.us-east-2.amazonaws.com"
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "dynamodb-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "dynamodb-fips.us-west-1.amazonaws.com"
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "dynamodb-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "dynamodb-fips.us-west-2.amazonaws.com"
+          }
+        }
+      },
+      "ebs" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ap-southeast-7" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "ebs-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "ebs-fips.ca-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ebs-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-ca-west-1" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ebs-fips.ca-west-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ebs-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "ebs-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ebs-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "ebs-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "mx-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "ebs-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "ebs-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "ebs-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "ebs-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "ec2" : {
+        "defaults" : {
+          "protocols" : [ "http", "https" ]
+        },
+        "endpoints" : {
+          "af-south-1" : {
+            "variants" : [ {
+              "hostname" : "ec2.af-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-east-1" : {
+            "variants" : [ {
+              "hostname" : "ec2.ap-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-1" : {
+            "variants" : [ {
+              "hostname" : "ec2.ap-northeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-2" : {
+            "variants" : [ {
+              "hostname" : "ec2.ap-northeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-3" : { },
+          "ap-south-1" : {
+            "variants" : [ {
+              "hostname" : "ec2.ap-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-2" : { },
+          "ap-southeast-1" : {
+            "variants" : [ {
+              "hostname" : "ec2.ap-southeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "variants" : [ {
+              "hostname" : "ec2.ap-southeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ap-southeast-7" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "ec2-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "ec2.ca-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "ec2-fips.ca-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : {
+            "variants" : [ {
+              "hostname" : "ec2.eu-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-2" : { },
+          "eu-north-1" : {
+            "variants" : [ {
+              "hostname" : "ec2.eu-north-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-1" : {
+            "variants" : [ {
+              "hostname" : "ec2.eu-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-2" : { },
+          "eu-west-1" : {
+            "variants" : [ {
+              "hostname" : "ec2.eu-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "variants" : [ {
+              "hostname" : "ec2.eu-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-3" : {
+            "variants" : [ {
+              "hostname" : "ec2.eu-west-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ec2-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-ca-west-1" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ec2-fips.ca-west-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ec2-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "ec2-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ec2-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "ec2-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : {
+            "variants" : [ {
+              "hostname" : "ec2.me-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "mx-central-1" : { },
+          "sa-east-1" : {
+            "variants" : [ {
+              "hostname" : "ec2.sa-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "ec2-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "ec2.us-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "ec2-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "ec2.us-east-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "ec2-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "ec2.us-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "ec2-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "ec2.us-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "ecs" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ap-southeast-7" : { },
+          "ca-central-1" : { },
+          "ca-west-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ecs-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "ecs-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ecs-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "ecs-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "mx-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "ecs-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "ecs-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "ecs-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "ecs-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "edge.sagemaker" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "eu-central-1" : { },
+          "eu-west-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-2" : { }
+        }
+      },
+      "eks" : {
+        "defaults" : {
+          "protocols" : [ "http", "https" ],
+          "variants" : [ {
+            "hostname" : "fips.eks.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ap-southeast-7" : { },
+          "ca-central-1" : { },
+          "ca-west-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "fips.eks.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "fips.eks.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "fips.eks.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "fips.eks.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "mx-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "fips.eks.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "fips.eks.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "fips.eks.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "fips.eks.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "eks-auth" : {
+        "defaults" : {
+          "dnsSuffix" : "api.aws",
+          "variants" : [ {
+            "dnsSuffix" : "api.aws",
+            "hostname" : "{service}-fips.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "af-south-1" : {
+            "hostname" : "eks-auth.af-south-1.api.aws"
+          },
+          "ap-east-1" : {
+            "hostname" : "eks-auth.ap-east-1.api.aws"
+          },
+          "ap-northeast-1" : {
+            "hostname" : "eks-auth.ap-northeast-1.api.aws"
+          },
+          "ap-northeast-2" : {
+            "hostname" : "eks-auth.ap-northeast-2.api.aws"
+          },
+          "ap-northeast-3" : {
+            "hostname" : "eks-auth.ap-northeast-3.api.aws"
+          },
+          "ap-south-1" : {
+            "hostname" : "eks-auth.ap-south-1.api.aws"
+          },
+          "ap-south-2" : {
+            "hostname" : "eks-auth.ap-south-2.api.aws"
+          },
+          "ap-southeast-1" : {
+            "hostname" : "eks-auth.ap-southeast-1.api.aws"
+          },
+          "ap-southeast-2" : {
+            "hostname" : "eks-auth.ap-southeast-2.api.aws"
+          },
+          "ap-southeast-3" : {
+            "hostname" : "eks-auth.ap-southeast-3.api.aws"
+          },
+          "ap-southeast-4" : {
+            "hostname" : "eks-auth.ap-southeast-4.api.aws"
+          },
+          "ap-southeast-5" : {
+            "hostname" : "eks-auth.ap-southeast-5.api.aws"
+          },
+          "ap-southeast-7" : {
+            "hostname" : "eks-auth.ap-southeast-7.api.aws"
+          },
+          "ca-central-1" : {
+            "hostname" : "eks-auth.ca-central-1.api.aws"
+          },
+          "ca-west-1" : {
+            "hostname" : "eks-auth.ca-west-1.api.aws"
+          },
+          "eu-central-1" : {
+            "hostname" : "eks-auth.eu-central-1.api.aws"
+          },
+          "eu-central-2" : {
+            "hostname" : "eks-auth.eu-central-2.api.aws"
+          },
+          "eu-north-1" : {
+            "hostname" : "eks-auth.eu-north-1.api.aws"
+          },
+          "eu-south-1" : {
+            "hostname" : "eks-auth.eu-south-1.api.aws"
+          },
+          "eu-south-2" : {
+            "hostname" : "eks-auth.eu-south-2.api.aws"
+          },
+          "eu-west-1" : {
+            "hostname" : "eks-auth.eu-west-1.api.aws"
+          },
+          "eu-west-2" : {
+            "hostname" : "eks-auth.eu-west-2.api.aws"
+          },
+          "eu-west-3" : {
+            "hostname" : "eks-auth.eu-west-3.api.aws"
+          },
+          "il-central-1" : {
+            "hostname" : "eks-auth.il-central-1.api.aws"
+          },
+          "me-central-1" : {
+            "hostname" : "eks-auth.me-central-1.api.aws"
+          },
+          "me-south-1" : {
+            "hostname" : "eks-auth.me-south-1.api.aws"
+          },
+          "mx-central-1" : {
+            "hostname" : "eks-auth.mx-central-1.api.aws"
+          },
+          "sa-east-1" : {
+            "hostname" : "eks-auth.sa-east-1.api.aws"
+          },
+          "us-east-1" : {
+            "hostname" : "eks-auth.us-east-1.api.aws"
+          },
+          "us-east-2" : {
+            "hostname" : "eks-auth.us-east-2.api.aws"
+          },
+          "us-west-1" : {
+            "hostname" : "eks-auth.us-west-1.api.aws"
+          },
+          "us-west-2" : {
+            "hostname" : "eks-auth.us-west-2.api.aws"
+          }
+        }
+      },
+      "elasticache" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ap-southeast-7" : { },
+          "ca-central-1" : { },
+          "ca-west-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticache-fips.us-west-1.amazonaws.com"
+          },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "mx-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "elasticache-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticache-fips.us-east-1.amazonaws.com"
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "elasticache-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticache-fips.us-east-2.amazonaws.com"
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "elasticache-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticache-fips.us-west-1.amazonaws.com"
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "elasticache-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticache-fips.us-west-2.amazonaws.com"
+          }
+        }
+      },
+      "elasticbeanstalk" : {
+        "endpoints" : {
+          "af-south-1" : {
+            "variants" : [ {
+              "hostname" : "elasticbeanstalk.af-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-east-1" : {
+            "variants" : [ {
+              "hostname" : "elasticbeanstalk.ap-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-1" : {
+            "variants" : [ {
+              "hostname" : "elasticbeanstalk.ap-northeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-2" : {
+            "variants" : [ {
+              "hostname" : "elasticbeanstalk.ap-northeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-3" : {
+            "variants" : [ {
+              "hostname" : "elasticbeanstalk.ap-northeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-1" : {
+            "variants" : [ {
+              "hostname" : "elasticbeanstalk.ap-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-1" : {
+            "variants" : [ {
+              "hostname" : "elasticbeanstalk.ap-southeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "variants" : [ {
+              "hostname" : "elasticbeanstalk.ap-southeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-3" : {
+            "variants" : [ {
+              "hostname" : "elasticbeanstalk.ap-southeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "elasticbeanstalk.ca-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-1" : {
+            "variants" : [ {
+              "hostname" : "elasticbeanstalk.eu-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-north-1" : {
+            "variants" : [ {
+              "hostname" : "elasticbeanstalk.eu-north-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-1" : {
+            "variants" : [ {
+              "hostname" : "elasticbeanstalk.eu-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-1" : {
+            "variants" : [ {
+              "hostname" : "elasticbeanstalk.eu-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "variants" : [ {
+              "hostname" : "elasticbeanstalk.eu-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-3" : {
+            "variants" : [ {
+              "hostname" : "elasticbeanstalk.eu-west-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticbeanstalk-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticbeanstalk-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticbeanstalk-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticbeanstalk-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : {
+            "variants" : [ {
+              "hostname" : "elasticbeanstalk.il-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-south-1" : {
+            "variants" : [ {
+              "hostname" : "elasticbeanstalk.me-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "sa-east-1" : {
+            "variants" : [ {
+              "hostname" : "elasticbeanstalk.sa-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "elasticbeanstalk-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "elasticbeanstalk-fips.us-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "elasticbeanstalk.us-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "elasticbeanstalk-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "elasticbeanstalk-fips.us-east-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "elasticbeanstalk.us-east-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "elasticbeanstalk-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "elasticbeanstalk-fips.us-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "elasticbeanstalk.us-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "elasticbeanstalk-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "elasticbeanstalk-fips.us-west-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "elasticbeanstalk.us-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "elasticfilesystem" : {
+        "endpoints" : {
+          "af-south-1" : {
+            "variants" : [ {
+              "hostname" : "elasticfilesystem-fips.af-south-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-east-1" : {
+            "variants" : [ {
+              "hostname" : "elasticfilesystem-fips.ap-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-northeast-1" : {
+            "variants" : [ {
+              "hostname" : "elasticfilesystem-fips.ap-northeast-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-northeast-2" : {
+            "variants" : [ {
+              "hostname" : "elasticfilesystem-fips.ap-northeast-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-northeast-3" : {
+            "variants" : [ {
+              "hostname" : "elasticfilesystem-fips.ap-northeast-3.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-south-1" : {
+            "variants" : [ {
+              "hostname" : "elasticfilesystem-fips.ap-south-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-south-2" : {
+            "variants" : [ {
+              "hostname" : "elasticfilesystem-fips.ap-south-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-southeast-1" : {
+            "variants" : [ {
+              "hostname" : "elasticfilesystem-fips.ap-southeast-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "variants" : [ {
+              "hostname" : "elasticfilesystem-fips.ap-southeast-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-southeast-3" : {
+            "variants" : [ {
+              "hostname" : "elasticfilesystem-fips.ap-southeast-3.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-southeast-4" : {
+            "variants" : [ {
+              "hostname" : "elasticfilesystem-fips.ap-southeast-4.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-southeast-5" : {
+            "variants" : [ {
+              "hostname" : "elasticfilesystem-fips.ap-southeast-5.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-southeast-7" : {
+            "variants" : [ {
+              "hostname" : "elasticfilesystem-fips.ap-southeast-7.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "elasticfilesystem-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "elasticfilesystem-fips.ca-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : {
+            "variants" : [ {
+              "hostname" : "elasticfilesystem-fips.eu-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-2" : {
+            "variants" : [ {
+              "hostname" : "elasticfilesystem-fips.eu-central-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-north-1" : {
+            "variants" : [ {
+              "hostname" : "elasticfilesystem-fips.eu-north-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-south-1" : {
+            "variants" : [ {
+              "hostname" : "elasticfilesystem-fips.eu-south-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-south-2" : {
+            "variants" : [ {
+              "hostname" : "elasticfilesystem-fips.eu-south-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-west-1" : {
+            "variants" : [ {
+              "hostname" : "elasticfilesystem-fips.eu-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "variants" : [ {
+              "hostname" : "elasticfilesystem-fips.eu-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-west-3" : {
+            "variants" : [ {
+              "hostname" : "elasticfilesystem-fips.eu-west-3.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "fips-af-south-1" : {
+            "credentialScope" : {
+              "region" : "af-south-1"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticfilesystem-fips.af-south-1.amazonaws.com"
+          },
+          "fips-ap-east-1" : {
+            "credentialScope" : {
+              "region" : "ap-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticfilesystem-fips.ap-east-1.amazonaws.com"
+          },
+          "fips-ap-northeast-1" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-1"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticfilesystem-fips.ap-northeast-1.amazonaws.com"
+          },
+          "fips-ap-northeast-2" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-2"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticfilesystem-fips.ap-northeast-2.amazonaws.com"
+          },
+          "fips-ap-northeast-3" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-3"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticfilesystem-fips.ap-northeast-3.amazonaws.com"
+          },
+          "fips-ap-south-1" : {
+            "credentialScope" : {
+              "region" : "ap-south-1"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticfilesystem-fips.ap-south-1.amazonaws.com"
+          },
+          "fips-ap-south-2" : {
+            "credentialScope" : {
+              "region" : "ap-south-2"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticfilesystem-fips.ap-south-2.amazonaws.com"
+          },
+          "fips-ap-southeast-1" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-1"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticfilesystem-fips.ap-southeast-1.amazonaws.com"
+          },
+          "fips-ap-southeast-2" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-2"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticfilesystem-fips.ap-southeast-2.amazonaws.com"
+          },
+          "fips-ap-southeast-3" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-3"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticfilesystem-fips.ap-southeast-3.amazonaws.com"
+          },
+          "fips-ap-southeast-4" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-4"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticfilesystem-fips.ap-southeast-4.amazonaws.com"
+          },
+          "fips-ap-southeast-5" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-5"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticfilesystem-fips.ap-southeast-5.amazonaws.com"
+          },
+          "fips-ap-southeast-7" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-7"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticfilesystem-fips.ap-southeast-7.amazonaws.com"
+          },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticfilesystem-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-ca-west-1" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticfilesystem-fips.ca-west-1.amazonaws.com"
+          },
+          "fips-eu-central-1" : {
+            "credentialScope" : {
+              "region" : "eu-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticfilesystem-fips.eu-central-1.amazonaws.com"
+          },
+          "fips-eu-central-2" : {
+            "credentialScope" : {
+              "region" : "eu-central-2"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticfilesystem-fips.eu-central-2.amazonaws.com"
+          },
+          "fips-eu-north-1" : {
+            "credentialScope" : {
+              "region" : "eu-north-1"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticfilesystem-fips.eu-north-1.amazonaws.com"
+          },
+          "fips-eu-south-1" : {
+            "credentialScope" : {
+              "region" : "eu-south-1"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticfilesystem-fips.eu-south-1.amazonaws.com"
+          },
+          "fips-eu-south-2" : {
+            "credentialScope" : {
+              "region" : "eu-south-2"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticfilesystem-fips.eu-south-2.amazonaws.com"
+          },
+          "fips-eu-west-1" : {
+            "credentialScope" : {
+              "region" : "eu-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticfilesystem-fips.eu-west-1.amazonaws.com"
+          },
+          "fips-eu-west-2" : {
+            "credentialScope" : {
+              "region" : "eu-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticfilesystem-fips.eu-west-2.amazonaws.com"
+          },
+          "fips-eu-west-3" : {
+            "credentialScope" : {
+              "region" : "eu-west-3"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticfilesystem-fips.eu-west-3.amazonaws.com"
+          },
+          "fips-il-central-1" : {
+            "credentialScope" : {
+              "region" : "il-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticfilesystem-fips.il-central-1.amazonaws.com"
+          },
+          "fips-me-central-1" : {
+            "credentialScope" : {
+              "region" : "me-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticfilesystem-fips.me-central-1.amazonaws.com"
+          },
+          "fips-me-south-1" : {
+            "credentialScope" : {
+              "region" : "me-south-1"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticfilesystem-fips.me-south-1.amazonaws.com"
+          },
+          "fips-mx-central-1" : {
+            "credentialScope" : {
+              "region" : "mx-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticfilesystem-fips.mx-central-1.amazonaws.com"
+          },
+          "fips-sa-east-1" : {
+            "credentialScope" : {
+              "region" : "sa-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticfilesystem-fips.sa-east-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticfilesystem-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticfilesystem-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticfilesystem-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticfilesystem-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : {
+            "variants" : [ {
+              "hostname" : "elasticfilesystem-fips.il-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "me-central-1" : {
+            "variants" : [ {
+              "hostname" : "elasticfilesystem-fips.me-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "me-south-1" : {
+            "variants" : [ {
+              "hostname" : "elasticfilesystem-fips.me-south-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "mx-central-1" : {
+            "variants" : [ {
+              "hostname" : "elasticfilesystem-fips.mx-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "sa-east-1" : {
+            "variants" : [ {
+              "hostname" : "elasticfilesystem-fips.sa-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "elasticfilesystem-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "elasticfilesystem-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "elasticfilesystem-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "elasticfilesystem-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "elasticloadbalancing" : {
+        "defaults" : {
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ap-southeast-7" : { },
+          "ca-central-1" : { },
+          "ca-west-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticloadbalancing-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticloadbalancing-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticloadbalancing-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticloadbalancing-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "mx-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "elasticloadbalancing-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "elasticloadbalancing-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "elasticloadbalancing-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "elasticloadbalancing-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "elasticmapreduce" : {
+        "defaults" : {
+          "protocols" : [ "https" ],
+          "sslCommonName" : "{region}.{service}.{dnsSuffix}"
+        },
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ap-southeast-7" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "elasticmapreduce-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "elasticmapreduce-fips.ca-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : {
+            "sslCommonName" : "{service}.{region}.{dnsSuffix}"
+          },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticmapreduce-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-ca-west-1" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticmapreduce-fips.ca-west-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticmapreduce-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticmapreduce-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticmapreduce-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticmapreduce-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "mx-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "sslCommonName" : "{service}.{region}.{dnsSuffix}",
+            "variants" : [ {
+              "hostname" : "elasticmapreduce-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "elasticmapreduce-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "elasticmapreduce.us-east-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "elasticmapreduce-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "elasticmapreduce-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "elastictranscoder" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "eu-west-1" : { },
+          "us-east-1" : { },
+          "us-west-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "email" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "email-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "email-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "email-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "email-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "email-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "email-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : { },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "email-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "email-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "email-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "email-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "emr-containers" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "emr-containers-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "emr-containers-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "emr-containers-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "emr-containers-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "emr-containers-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "emr-containers-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "emr-containers-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "emr-containers-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "emr-containers-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "emr-containers-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "emr-serverless" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "emr-serverless-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "emr-serverless-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "emr-serverless-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "emr-serverless-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "emr-serverless-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "emr-serverless-fips.us-west-2.amazonaws.com"
+          },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "emr-serverless-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "emr-serverless-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "emr-serverless-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "emr-serverless-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "entitlement.marketplace" : {
+        "defaults" : {
+          "credentialScope" : {
+            "service" : "aws-marketplace"
+          }
+        },
+        "endpoints" : {
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "entitlement-marketplace.us-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "es" : {
+        "endpoints" : {
+          "af-south-1" : {
+            "variants" : [ {
+              "hostname" : "aos.af-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-east-1" : {
+            "variants" : [ {
+              "hostname" : "aos.ap-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-1" : {
+            "variants" : [ {
+              "hostname" : "aos.ap-northeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-2" : {
+            "variants" : [ {
+              "hostname" : "aos.ap-northeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-3" : {
+            "variants" : [ {
+              "hostname" : "aos.ap-northeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-1" : {
+            "variants" : [ {
+              "hostname" : "aos.ap-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-2" : {
+            "variants" : [ {
+              "hostname" : "aos.ap-south-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-1" : {
+            "variants" : [ {
+              "hostname" : "aos.ap-southeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "variants" : [ {
+              "hostname" : "aos.ap-southeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-3" : {
+            "variants" : [ {
+              "hostname" : "aos.ap-southeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-4" : {
+            "variants" : [ {
+              "hostname" : "aos.ap-southeast-4.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-5" : {
+            "variants" : [ {
+              "hostname" : "aos.ap-southeast-5.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-7" : {
+            "variants" : [ {
+              "hostname" : "aos.ap-southeast-7.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "aos.ca-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "aos.ca-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-1" : {
+            "variants" : [ {
+              "hostname" : "aos.eu-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-2" : {
+            "variants" : [ {
+              "hostname" : "aos.eu-central-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-north-1" : {
+            "variants" : [ {
+              "hostname" : "aos.eu-north-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-1" : {
+            "variants" : [ {
+              "hostname" : "aos.eu-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-2" : {
+            "variants" : [ {
+              "hostname" : "aos.eu-south-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-1" : {
+            "variants" : [ {
+              "hostname" : "aos.eu-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "variants" : [ {
+              "hostname" : "aos.eu-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-3" : {
+            "variants" : [ {
+              "hostname" : "aos.eu-west-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "fips" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "es-fips.us-west-1.amazonaws.com"
+          },
+          "il-central-1" : {
+            "variants" : [ {
+              "hostname" : "aos.il-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-central-1" : {
+            "variants" : [ {
+              "hostname" : "aos.me-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-south-1" : {
+            "variants" : [ {
+              "hostname" : "aos.me-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "mx-central-1" : {
+            "variants" : [ {
+              "hostname" : "aos.mx-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "sa-east-1" : {
+            "variants" : [ {
+              "hostname" : "aos.sa-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "aos.us-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            }, {
+              "hostname" : "es-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "es-fips.us-east-1.amazonaws.com"
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "aos.us-east-2.api.aws",
+              "tags" : [ "dualstack" ]
+            }, {
+              "hostname" : "es-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "es-fips.us-east-2.amazonaws.com"
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "aos.us-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            }, {
+              "hostname" : "es-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "es-fips.us-west-1.amazonaws.com"
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "aos.us-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            }, {
+              "hostname" : "es-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "es-fips.us-west-2.amazonaws.com"
+          }
+        }
+      },
+      "events" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ap-southeast-7" : { },
+          "ca-central-1" : { },
+          "ca-west-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "events-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "events-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "events-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "events-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "mx-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "events-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "events-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "events-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "events-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "evidently" : {
+        "endpoints" : {
+          "ap-northeast-1" : {
+            "hostname" : "evidently.ap-northeast-1.amazonaws.com"
+          },
+          "ap-southeast-1" : {
+            "hostname" : "evidently.ap-southeast-1.amazonaws.com"
+          },
+          "ap-southeast-2" : {
+            "hostname" : "evidently.ap-southeast-2.amazonaws.com"
+          },
+          "eu-central-1" : {
+            "hostname" : "evidently.eu-central-1.amazonaws.com"
+          },
+          "eu-north-1" : {
+            "hostname" : "evidently.eu-north-1.amazonaws.com"
+          },
+          "eu-west-1" : {
+            "hostname" : "evidently.eu-west-1.amazonaws.com"
+          },
+          "us-east-1" : {
+            "hostname" : "evidently.us-east-1.amazonaws.com"
+          },
+          "us-east-2" : {
+            "hostname" : "evidently.us-east-2.amazonaws.com"
+          },
+          "us-west-2" : {
+            "hostname" : "evidently.us-west-2.amazonaws.com"
+          }
+        }
+      },
+      "finspace" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-2" : { }
+        }
+      },
+      "finspace-api" : {
+        "endpoints" : {
+          "ca-central-1" : { },
+          "eu-west-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-2" : { }
+        }
+      },
+      "firehose" : {
+        "endpoints" : {
+          "af-south-1" : {
+            "variants" : [ {
+              "hostname" : "firehose.af-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-east-1" : {
+            "variants" : [ {
+              "hostname" : "firehose.ap-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-1" : {
+            "variants" : [ {
+              "hostname" : "firehose.ap-northeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-2" : {
+            "variants" : [ {
+              "hostname" : "firehose.ap-northeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-3" : {
+            "variants" : [ {
+              "hostname" : "firehose.ap-northeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-1" : {
+            "variants" : [ {
+              "hostname" : "firehose.ap-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-2" : {
+            "variants" : [ {
+              "hostname" : "firehose.ap-south-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-1" : {
+            "variants" : [ {
+              "hostname" : "firehose.ap-southeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "variants" : [ {
+              "hostname" : "firehose.ap-southeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-3" : {
+            "variants" : [ {
+              "hostname" : "firehose.ap-southeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-4" : {
+            "variants" : [ {
+              "hostname" : "firehose.ap-southeast-4.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-5" : { },
+          "ap-southeast-7" : {
+            "variants" : [ {
+              "hostname" : "firehose.ap-southeast-7.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "firehose.ca-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "firehose.ca-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-1" : {
+            "variants" : [ {
+              "hostname" : "firehose.eu-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-2" : {
+            "variants" : [ {
+              "hostname" : "firehose.eu-central-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-north-1" : {
+            "variants" : [ {
+              "hostname" : "firehose.eu-north-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-1" : {
+            "variants" : [ {
+              "hostname" : "firehose.eu-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-2" : {
+            "variants" : [ {
+              "hostname" : "firehose.eu-south-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-1" : {
+            "variants" : [ {
+              "hostname" : "firehose.eu-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "variants" : [ {
+              "hostname" : "firehose.eu-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-3" : {
+            "variants" : [ {
+              "hostname" : "firehose.eu-west-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "firehose-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "firehose-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "firehose-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "firehose-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : {
+            "variants" : [ {
+              "hostname" : "firehose.il-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-central-1" : {
+            "variants" : [ {
+              "hostname" : "firehose.me-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-south-1" : {
+            "variants" : [ {
+              "hostname" : "firehose.me-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "mx-central-1" : {
+            "variants" : [ {
+              "hostname" : "firehose.mx-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "sa-east-1" : {
+            "variants" : [ {
+              "hostname" : "firehose.sa-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "firehose-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "firehose-fips.us-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "firehose.us-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "firehose-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "firehose-fips.us-east-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "firehose.us-east-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "firehose-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "firehose-fips.us-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "firehose.us-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "firehose-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "firehose-fips.us-west-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "firehose.us-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "fms" : {
+        "defaults" : {
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "af-south-1" : {
+            "variants" : [ {
+              "hostname" : "fms-fips.af-south-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-east-1" : {
+            "variants" : [ {
+              "hostname" : "fms-fips.ap-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-northeast-1" : {
+            "variants" : [ {
+              "hostname" : "fms-fips.ap-northeast-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-northeast-2" : {
+            "variants" : [ {
+              "hostname" : "fms-fips.ap-northeast-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-northeast-3" : { },
+          "ap-south-1" : {
+            "variants" : [ {
+              "hostname" : "fms-fips.ap-south-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-south-2" : { },
+          "ap-southeast-1" : {
+            "variants" : [ {
+              "hostname" : "fms-fips.ap-southeast-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "variants" : [ {
+              "hostname" : "fms-fips.ap-southeast-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ap-southeast-7" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "fms-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "fms-fips.ca-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : {
+            "variants" : [ {
+              "hostname" : "fms-fips.eu-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : {
+            "variants" : [ {
+              "hostname" : "fms-fips.eu-south-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-south-2" : { },
+          "eu-west-1" : {
+            "variants" : [ {
+              "hostname" : "fms-fips.eu-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "variants" : [ {
+              "hostname" : "fms-fips.eu-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-west-3" : {
+            "variants" : [ {
+              "hostname" : "fms-fips.eu-west-3.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "fips-af-south-1" : {
+            "credentialScope" : {
+              "region" : "af-south-1"
+            },
+            "deprecated" : true,
+            "hostname" : "fms-fips.af-south-1.amazonaws.com"
+          },
+          "fips-ap-east-1" : {
+            "credentialScope" : {
+              "region" : "ap-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "fms-fips.ap-east-1.amazonaws.com"
+          },
+          "fips-ap-northeast-1" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-1"
+            },
+            "deprecated" : true,
+            "hostname" : "fms-fips.ap-northeast-1.amazonaws.com"
+          },
+          "fips-ap-northeast-2" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-2"
+            },
+            "deprecated" : true,
+            "hostname" : "fms-fips.ap-northeast-2.amazonaws.com"
+          },
+          "fips-ap-south-1" : {
+            "credentialScope" : {
+              "region" : "ap-south-1"
+            },
+            "deprecated" : true,
+            "hostname" : "fms-fips.ap-south-1.amazonaws.com"
+          },
+          "fips-ap-southeast-1" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-1"
+            },
+            "deprecated" : true,
+            "hostname" : "fms-fips.ap-southeast-1.amazonaws.com"
+          },
+          "fips-ap-southeast-2" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-2"
+            },
+            "deprecated" : true,
+            "hostname" : "fms-fips.ap-southeast-2.amazonaws.com"
+          },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "fms-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-ca-west-1" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "fms-fips.ca-west-1.amazonaws.com"
+          },
+          "fips-eu-central-1" : {
+            "credentialScope" : {
+              "region" : "eu-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "fms-fips.eu-central-1.amazonaws.com"
+          },
+          "fips-eu-south-1" : {
+            "credentialScope" : {
+              "region" : "eu-south-1"
+            },
+            "deprecated" : true,
+            "hostname" : "fms-fips.eu-south-1.amazonaws.com"
+          },
+          "fips-eu-west-1" : {
+            "credentialScope" : {
+              "region" : "eu-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "fms-fips.eu-west-1.amazonaws.com"
+          },
+          "fips-eu-west-2" : {
+            "credentialScope" : {
+              "region" : "eu-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "fms-fips.eu-west-2.amazonaws.com"
+          },
+          "fips-eu-west-3" : {
+            "credentialScope" : {
+              "region" : "eu-west-3"
+            },
+            "deprecated" : true,
+            "hostname" : "fms-fips.eu-west-3.amazonaws.com"
+          },
+          "fips-me-south-1" : {
+            "credentialScope" : {
+              "region" : "me-south-1"
+            },
+            "deprecated" : true,
+            "hostname" : "fms-fips.me-south-1.amazonaws.com"
+          },
+          "fips-sa-east-1" : {
+            "credentialScope" : {
+              "region" : "sa-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "fms-fips.sa-east-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "fms-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "fms-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "fms-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "fms-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : {
+            "variants" : [ {
+              "hostname" : "fms-fips.me-south-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "mx-central-1" : { },
+          "sa-east-1" : {
+            "variants" : [ {
+              "hostname" : "fms-fips.sa-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "fms-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "fms-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "fms-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "fms-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "forecast" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "eu-central-1" : { },
+          "eu-west-1" : { },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "forecast-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "forecast-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "forecast-fips.us-west-2.amazonaws.com"
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "forecast-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "forecast-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "forecast-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "forecastquery" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "eu-central-1" : { },
+          "eu-west-1" : { },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "forecastquery-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "forecastquery-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "forecastquery-fips.us-west-2.amazonaws.com"
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "forecastquery-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "forecastquery-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "forecastquery-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "frauddetector" : {
+        "endpoints" : {
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "eu-west-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-2" : { }
+        }
+      },
+      "fsx" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "fsx-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "fsx-fips.ca-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "fsx-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-ca-west-1" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "fsx-fips.ca-west-1.amazonaws.com"
+          },
+          "fips-prod-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "fsx-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-prod-ca-west-1" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "fsx-fips.ca-west-1.amazonaws.com"
+          },
+          "fips-prod-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "fsx-fips.us-east-1.amazonaws.com"
+          },
+          "fips-prod-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "fsx-fips.us-east-2.amazonaws.com"
+          },
+          "fips-prod-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "fsx-fips.us-west-1.amazonaws.com"
+          },
+          "fips-prod-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "fsx-fips.us-west-2.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "fsx-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "fsx-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "fsx-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "fsx-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "prod-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "variants" : [ {
+              "hostname" : "fsx-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "prod-ca-west-1" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "deprecated" : true,
+            "variants" : [ {
+              "hostname" : "fsx-fips.ca-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "prod-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "variants" : [ {
+              "hostname" : "fsx-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "prod-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "variants" : [ {
+              "hostname" : "fsx-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "prod-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "variants" : [ {
+              "hostname" : "fsx-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "prod-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "variants" : [ {
+              "hostname" : "fsx-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "fsx-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "fsx-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "fsx-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "fsx-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "gamelift" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "gameliftstreams" : {
+        "defaults" : {
+          "dnsSuffix" : "api.aws",
+          "variants" : [ {
+            "dnsSuffix" : "api.aws",
+            "hostname" : "{service}-fips.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "af-south-1" : {
+            "hostname" : "gameliftstreams.af-south-1.api.aws"
+          },
+          "ap-east-1" : {
+            "hostname" : "gameliftstreams.ap-east-1.api.aws"
+          },
+          "ap-northeast-1" : {
+            "hostname" : "gameliftstreams.ap-northeast-1.api.aws"
+          },
+          "ap-northeast-2" : {
+            "hostname" : "gameliftstreams.ap-northeast-2.api.aws"
+          },
+          "ap-northeast-3" : {
+            "hostname" : "gameliftstreams.ap-northeast-3.api.aws"
+          },
+          "ap-south-1" : {
+            "hostname" : "gameliftstreams.ap-south-1.api.aws"
+          },
+          "ap-south-2" : {
+            "hostname" : "gameliftstreams.ap-south-2.api.aws"
+          },
+          "ap-southeast-1" : {
+            "hostname" : "gameliftstreams.ap-southeast-1.api.aws"
+          },
+          "ap-southeast-2" : {
+            "hostname" : "gameliftstreams.ap-southeast-2.api.aws"
+          },
+          "ap-southeast-3" : {
+            "hostname" : "gameliftstreams.ap-southeast-3.api.aws"
+          },
+          "ap-southeast-4" : {
+            "hostname" : "gameliftstreams.ap-southeast-4.api.aws"
+          },
+          "ap-southeast-5" : {
+            "hostname" : "gameliftstreams.ap-southeast-5.api.aws"
+          },
+          "ap-southeast-7" : {
+            "hostname" : "gameliftstreams.ap-southeast-7.api.aws"
+          },
+          "ca-central-1" : {
+            "hostname" : "gameliftstreams.ca-central-1.api.aws"
+          },
+          "ca-west-1" : {
+            "hostname" : "gameliftstreams.ca-west-1.api.aws"
+          },
+          "eu-central-1" : {
+            "hostname" : "gameliftstreams.eu-central-1.api.aws"
+          },
+          "eu-central-2" : {
+            "hostname" : "gameliftstreams.eu-central-2.api.aws"
+          },
+          "eu-north-1" : {
+            "hostname" : "gameliftstreams.eu-north-1.api.aws"
+          },
+          "eu-south-1" : {
+            "hostname" : "gameliftstreams.eu-south-1.api.aws"
+          },
+          "eu-south-2" : {
+            "hostname" : "gameliftstreams.eu-south-2.api.aws"
+          },
+          "eu-west-1" : {
+            "hostname" : "gameliftstreams.eu-west-1.api.aws"
+          },
+          "eu-west-2" : {
+            "hostname" : "gameliftstreams.eu-west-2.api.aws"
+          },
+          "eu-west-3" : {
+            "hostname" : "gameliftstreams.eu-west-3.api.aws"
+          },
+          "il-central-1" : {
+            "hostname" : "gameliftstreams.il-central-1.api.aws"
+          },
+          "me-central-1" : {
+            "hostname" : "gameliftstreams.me-central-1.api.aws"
+          },
+          "me-south-1" : {
+            "hostname" : "gameliftstreams.me-south-1.api.aws"
+          },
+          "mx-central-1" : {
+            "hostname" : "gameliftstreams.mx-central-1.api.aws"
+          },
+          "sa-east-1" : {
+            "hostname" : "gameliftstreams.sa-east-1.api.aws"
+          },
+          "us-east-1" : {
+            "hostname" : "gameliftstreams.us-east-1.api.aws"
+          },
+          "us-east-2" : {
+            "hostname" : "gameliftstreams.us-east-2.api.aws"
+          },
+          "us-west-1" : {
+            "hostname" : "gameliftstreams.us-west-1.api.aws"
+          },
+          "us-west-2" : {
+            "hostname" : "gameliftstreams.us-west-2.api.aws"
+          }
+        }
+      },
+      "geo" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-5" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "sa-east-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-2" : { }
+        }
+      },
+      "glacier" : {
+        "defaults" : {
+          "protocols" : [ "http", "https" ]
+        },
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "glacier-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "glacier-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "glacier-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "glacier-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "glacier-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "glacier-fips.us-west-2.amazonaws.com"
+          },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "glacier-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "glacier-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "glacier-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "glacier-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "globalaccelerator" : {
+        "endpoints" : {
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "hostname" : "globalaccelerator-fips.us-west-2.amazonaws.com"
+          }
+        }
+      },
+      "glue" : {
+        "endpoints" : {
+          "af-south-1" : {
+            "variants" : [ {
+              "hostname" : "glue.af-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-east-1" : {
+            "variants" : [ {
+              "hostname" : "glue.ap-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-1" : {
+            "variants" : [ {
+              "hostname" : "glue.ap-northeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-2" : {
+            "variants" : [ {
+              "hostname" : "glue.ap-northeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-3" : {
+            "variants" : [ {
+              "hostname" : "glue.ap-northeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-1" : {
+            "variants" : [ {
+              "hostname" : "glue.ap-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-2" : {
+            "variants" : [ {
+              "hostname" : "glue.ap-south-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-1" : {
+            "variants" : [ {
+              "hostname" : "glue.ap-southeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "variants" : [ {
+              "hostname" : "glue.ap-southeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-3" : {
+            "variants" : [ {
+              "hostname" : "glue.ap-southeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-4" : {
+            "variants" : [ {
+              "hostname" : "glue.ap-southeast-4.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-5" : {
+            "variants" : [ {
+              "hostname" : "glue.ap-southeast-5.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-7" : {
+            "variants" : [ {
+              "hostname" : "glue.ap-southeast-7.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "glue.ca-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "glue.ca-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-1" : {
+            "variants" : [ {
+              "hostname" : "glue.eu-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-2" : {
+            "variants" : [ {
+              "hostname" : "glue.eu-central-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-north-1" : {
+            "variants" : [ {
+              "hostname" : "glue.eu-north-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-1" : {
+            "variants" : [ {
+              "hostname" : "glue.eu-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-2" : {
+            "variants" : [ {
+              "hostname" : "glue.eu-south-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-1" : {
+            "variants" : [ {
+              "hostname" : "glue.eu-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "variants" : [ {
+              "hostname" : "glue.eu-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-3" : {
+            "variants" : [ {
+              "hostname" : "glue.eu-west-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "glue-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "glue-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "glue-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "glue-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : {
+            "variants" : [ {
+              "hostname" : "glue.il-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-central-1" : {
+            "variants" : [ {
+              "hostname" : "glue.me-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-south-1" : {
+            "variants" : [ {
+              "hostname" : "glue.me-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "mx-central-1" : {
+            "variants" : [ {
+              "hostname" : "glue.mx-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "sa-east-1" : {
+            "variants" : [ {
+              "hostname" : "glue.sa-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "glue-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "glue-fips.us-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "glue.us-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "glue-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "glue-fips.us-east-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "glue.us-east-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "glue-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "glue-fips.us-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "glue.us-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "glue-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "glue-fips.us-west-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "glue.us-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "grafana" : {
+        "endpoints" : {
+          "ap-northeast-1" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-1"
+            },
+            "hostname" : "grafana.ap-northeast-1.amazonaws.com"
+          },
+          "ap-northeast-2" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-2"
+            },
+            "hostname" : "grafana.ap-northeast-2.amazonaws.com"
+          },
+          "ap-southeast-1" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-1"
+            },
+            "hostname" : "grafana.ap-southeast-1.amazonaws.com"
+          },
+          "ap-southeast-2" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-2"
+            },
+            "hostname" : "grafana.ap-southeast-2.amazonaws.com"
+          },
+          "eu-central-1" : {
+            "credentialScope" : {
+              "region" : "eu-central-1"
+            },
+            "hostname" : "grafana.eu-central-1.amazonaws.com"
+          },
+          "eu-west-1" : {
+            "credentialScope" : {
+              "region" : "eu-west-1"
+            },
+            "hostname" : "grafana.eu-west-1.amazonaws.com"
+          },
+          "eu-west-2" : {
+            "credentialScope" : {
+              "region" : "eu-west-2"
+            },
+            "hostname" : "grafana.eu-west-2.amazonaws.com"
+          },
+          "us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "grafana.us-east-1.amazonaws.com"
+          },
+          "us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "hostname" : "grafana.us-east-2.amazonaws.com"
+          },
+          "us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "hostname" : "grafana.us-west-2.amazonaws.com"
+          }
+        }
+      },
+      "greengrass" : {
+        "defaults" : {
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "greengrass-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "greengrass-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "greengrass-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "greengrass-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "greengrass-fips.us-west-2.amazonaws.com"
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "greengrass-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "greengrass-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "greengrass-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        },
+        "isRegionalized" : true
+      },
+      "groundstation" : {
+        "endpoints" : {
+          "af-south-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-2" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-north-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "groundstation-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "groundstation-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "groundstation-fips.us-west-2.amazonaws.com"
+          },
+          "me-south-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "sa-east-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            }, {
+              "hostname" : "groundstation-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "groundstation-fips.us-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            }, {
+              "hostname" : "groundstation-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "groundstation-fips.us-east-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            }, {
+              "hostname" : "groundstation-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "groundstation-fips.us-west-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            } ]
+          }
+        }
+      },
+      "guardduty" : {
+        "defaults" : {
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ca-central-1" : { },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "guardduty-fips.ca-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "guardduty-fips.ca-west-1.amazonaws.com"
+          },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "guardduty-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "guardduty-fips.us-east-1.amazonaws.com"
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "guardduty-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "guardduty-fips.us-east-2.amazonaws.com"
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "guardduty-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "guardduty-fips.us-west-1.amazonaws.com"
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "guardduty-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "guardduty-fips.us-west-2.amazonaws.com"
+          }
+        },
+        "isRegionalized" : true
+      },
+      "health" : {
+        "defaults" : {
+          "protocols" : [ "https" ],
+          "sslCommonName" : "health.us-east-1.amazonaws.com"
+        },
+        "endpoints" : {
+          "aws-global" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "global.health.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "health-fips.us-east-2.amazonaws.com"
+          },
+          "us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "variants" : [ {
+              "hostname" : "health-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        },
+        "isRegionalized" : false,
+        "partitionEndpoint" : "aws-global"
+      },
+      "healthlake" : {
+        "defaults" : {
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "ap-south-1" : { },
+          "ap-southeast-2" : { },
+          "eu-west-2" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-2" : { }
+        }
+      },
+      "iam" : {
+        "endpoints" : {
+          "aws-global" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "iam.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "iam-fips.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "iam.global.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "aws-global-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "iam-fips.amazonaws.com"
+          },
+          "iam" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "variants" : [ {
+              "hostname" : "iam-fips.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "iam-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "iam-fips.amazonaws.com"
+          }
+        },
+        "isRegionalized" : false,
+        "partitionEndpoint" : "aws-global"
+      },
+      "identity-chime" : {
+        "endpoints" : {
+          "eu-central-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "identity-chime-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "identity-chime-fips.us-east-1.amazonaws.com"
+          }
+        }
+      },
+      "identitystore" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ca-central-1" : { },
+          "ca-west-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "importexport" : {
+        "endpoints" : {
+          "aws-global" : {
+            "credentialScope" : {
+              "region" : "us-east-1",
+              "service" : "IngestionService"
+            },
+            "hostname" : "importexport.amazonaws.com",
+            "signatureVersions" : [ "v2", "v4" ]
+          }
+        },
+        "isRegionalized" : false,
+        "partitionEndpoint" : "aws-global"
+      },
+      "ingest.timestream" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-south-1" : { },
+          "ap-southeast-2" : { },
+          "eu-central-1" : { },
+          "eu-west-1" : { },
+          "ingest-fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ingest.timestream-fips.us-east-1.amazonaws.com"
+          },
+          "ingest-fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "ingest.timestream-fips.us-east-2.amazonaws.com"
+          },
+          "ingest-fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "ingest.timestream-fips.us-west-2.amazonaws.com"
+          },
+          "ingest-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "variants" : [ {
+              "hostname" : "ingest.timestream-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ingest-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "variants" : [ {
+              "hostname" : "ingest.timestream-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ingest-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "variants" : [ {
+              "hostname" : "ingest.timestream-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-2" : { }
+        }
+      },
+      "inspector" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-south-1" : { },
+          "ap-southeast-2" : { },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "inspector-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "inspector-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "inspector-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "inspector-fips.us-west-2.amazonaws.com"
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "inspector-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "inspector-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "inspector-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "inspector-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "inspector2" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "inspector2-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "inspector2-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "inspector2-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "inspector2-fips.us-west-2.amazonaws.com"
+          },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "inspector2-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "inspector2-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "inspector2-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "inspector2-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "internetmonitor" : {
+        "defaults" : {
+          "dnsSuffix" : "api.aws",
+          "variants" : [ {
+            "dnsSuffix" : "api.aws",
+            "hostname" : "{service}-fips.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "af-south-1" : {
+            "hostname" : "internetmonitor.af-south-1.api.aws",
+            "variants" : [ {
+              "hostname" : "internetmonitor.af-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-east-1" : {
+            "hostname" : "internetmonitor.ap-east-1.api.aws",
+            "variants" : [ {
+              "hostname" : "internetmonitor.ap-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-1" : {
+            "hostname" : "internetmonitor.ap-northeast-1.api.aws",
+            "variants" : [ {
+              "hostname" : "internetmonitor.ap-northeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-2" : {
+            "hostname" : "internetmonitor.ap-northeast-2.api.aws",
+            "variants" : [ {
+              "hostname" : "internetmonitor.ap-northeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-3" : {
+            "hostname" : "internetmonitor.ap-northeast-3.api.aws",
+            "variants" : [ {
+              "hostname" : "internetmonitor.ap-northeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-1" : {
+            "hostname" : "internetmonitor.ap-south-1.api.aws",
+            "variants" : [ {
+              "hostname" : "internetmonitor.ap-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-2" : {
+            "hostname" : "internetmonitor.ap-south-2.api.aws",
+            "variants" : [ {
+              "hostname" : "internetmonitor.ap-south-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-1" : {
+            "hostname" : "internetmonitor.ap-southeast-1.api.aws",
+            "variants" : [ {
+              "hostname" : "internetmonitor.ap-southeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "hostname" : "internetmonitor.ap-southeast-2.api.aws",
+            "variants" : [ {
+              "hostname" : "internetmonitor.ap-southeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-3" : {
+            "hostname" : "internetmonitor.ap-southeast-3.api.aws",
+            "variants" : [ {
+              "hostname" : "internetmonitor.ap-southeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-4" : {
+            "hostname" : "internetmonitor.ap-southeast-4.api.aws",
+            "variants" : [ {
+              "hostname" : "internetmonitor.ap-southeast-4.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-5" : {
+            "hostname" : "internetmonitor.ap-southeast-5.api.aws"
+          },
+          "ap-southeast-7" : {
+            "hostname" : "internetmonitor.ap-southeast-7.api.aws"
+          },
+          "ca-central-1" : {
+            "hostname" : "internetmonitor.ca-central-1.api.aws",
+            "variants" : [ {
+              "hostname" : "internetmonitor-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "internetmonitor-fips.ca-central-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "internetmonitor.ca-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-west-1" : {
+            "hostname" : "internetmonitor.ca-west-1.api.aws"
+          },
+          "eu-central-1" : {
+            "hostname" : "internetmonitor.eu-central-1.api.aws",
+            "variants" : [ {
+              "hostname" : "internetmonitor.eu-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-2" : {
+            "hostname" : "internetmonitor.eu-central-2.api.aws",
+            "variants" : [ {
+              "hostname" : "internetmonitor.eu-central-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-north-1" : {
+            "hostname" : "internetmonitor.eu-north-1.api.aws",
+            "variants" : [ {
+              "hostname" : "internetmonitor.eu-north-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-1" : {
+            "hostname" : "internetmonitor.eu-south-1.api.aws",
+            "variants" : [ {
+              "hostname" : "internetmonitor.eu-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-2" : {
+            "hostname" : "internetmonitor.eu-south-2.api.aws",
+            "variants" : [ {
+              "hostname" : "internetmonitor.eu-south-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-1" : {
+            "hostname" : "internetmonitor.eu-west-1.api.aws",
+            "variants" : [ {
+              "hostname" : "internetmonitor.eu-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "hostname" : "internetmonitor.eu-west-2.api.aws",
+            "variants" : [ {
+              "hostname" : "internetmonitor.eu-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-3" : {
+            "hostname" : "internetmonitor.eu-west-3.api.aws",
+            "variants" : [ {
+              "hostname" : "internetmonitor.eu-west-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "il-central-1" : {
+            "hostname" : "internetmonitor.il-central-1.api.aws"
+          },
+          "me-central-1" : {
+            "hostname" : "internetmonitor.me-central-1.api.aws",
+            "variants" : [ {
+              "hostname" : "internetmonitor.me-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-south-1" : {
+            "hostname" : "internetmonitor.me-south-1.api.aws",
+            "variants" : [ {
+              "hostname" : "internetmonitor.me-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "mx-central-1" : {
+            "hostname" : "internetmonitor.mx-central-1.api.aws"
+          },
+          "sa-east-1" : {
+            "hostname" : "internetmonitor.sa-east-1.api.aws",
+            "variants" : [ {
+              "hostname" : "internetmonitor.sa-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1" : {
+            "hostname" : "internetmonitor.us-east-1.api.aws",
+            "variants" : [ {
+              "hostname" : "internetmonitor-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "internetmonitor-fips.us-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "internetmonitor.us-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-2" : {
+            "hostname" : "internetmonitor.us-east-2.api.aws",
+            "variants" : [ {
+              "hostname" : "internetmonitor-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "internetmonitor-fips.us-east-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "internetmonitor.us-east-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-1" : {
+            "hostname" : "internetmonitor.us-west-1.api.aws",
+            "variants" : [ {
+              "hostname" : "internetmonitor-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "internetmonitor-fips.us-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "internetmonitor.us-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-2" : {
+            "hostname" : "internetmonitor.us-west-2.api.aws",
+            "variants" : [ {
+              "hostname" : "internetmonitor-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "internetmonitor-fips.us-west-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "internetmonitor.us-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "iot" : {
+        "endpoints" : {
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "iot-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-ca-central-1" : {
+            "deprecated" : true,
+            "hostname" : "iot-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "deprecated" : true,
+            "hostname" : "iot-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "deprecated" : true,
+            "hostname" : "iot-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "deprecated" : true,
+            "hostname" : "iot-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "deprecated" : true,
+            "hostname" : "iot-fips.us-west-2.amazonaws.com"
+          },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "iot-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "iot-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "iot-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "iot-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "iotanalytics" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-south-1" : { },
+          "ap-southeast-2" : { },
+          "eu-central-1" : { },
+          "eu-west-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-2" : { }
+        }
+      },
+      "iotevents" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "iotevents-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "iotevents-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "iotevents-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "iotevents-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "iotevents-fips.us-west-2.amazonaws.com"
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "iotevents-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "iotevents-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "iotevents-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "ioteventsdata" : {
+        "endpoints" : {
+          "ap-northeast-1" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-1"
+            },
+            "hostname" : "data.iotevents.ap-northeast-1.amazonaws.com"
+          },
+          "ap-northeast-2" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-2"
+            },
+            "hostname" : "data.iotevents.ap-northeast-2.amazonaws.com"
+          },
+          "ap-south-1" : {
+            "credentialScope" : {
+              "region" : "ap-south-1"
+            },
+            "hostname" : "data.iotevents.ap-south-1.amazonaws.com"
+          },
+          "ap-southeast-1" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-1"
+            },
+            "hostname" : "data.iotevents.ap-southeast-1.amazonaws.com"
+          },
+          "ap-southeast-2" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-2"
+            },
+            "hostname" : "data.iotevents.ap-southeast-2.amazonaws.com"
+          },
+          "ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "hostname" : "data.iotevents.ca-central-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "data.iotevents-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : {
+            "credentialScope" : {
+              "region" : "eu-central-1"
+            },
+            "hostname" : "data.iotevents.eu-central-1.amazonaws.com"
+          },
+          "eu-west-1" : {
+            "credentialScope" : {
+              "region" : "eu-west-1"
+            },
+            "hostname" : "data.iotevents.eu-west-1.amazonaws.com"
+          },
+          "eu-west-2" : {
+            "credentialScope" : {
+              "region" : "eu-west-2"
+            },
+            "hostname" : "data.iotevents.eu-west-2.amazonaws.com"
+          },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "data.iotevents-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "data.iotevents-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "data.iotevents-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "data.iotevents-fips.us-west-2.amazonaws.com"
+          },
+          "us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "data.iotevents.us-east-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "data.iotevents-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "hostname" : "data.iotevents.us-east-2.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "data.iotevents-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "hostname" : "data.iotevents.us-west-2.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "data.iotevents-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "iotfleetwise" : {
+        "endpoints" : {
+          "ap-south-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "iotsecuredtunneling" : {
+        "defaults" : {
+          "variants" : [ {
+            "hostname" : "api.tunneling.iot-fips.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "api.tunneling.iot-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "api.tunneling.iot-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "api.tunneling.iot-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "api.tunneling.iot-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "api.tunneling.iot-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "api.tunneling.iot-fips.us-west-2.amazonaws.com"
+          },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "api.tunneling.iot-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "api.tunneling.iot-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "api.tunneling.iot-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "api.tunneling.iot-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "iotsitewise" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "iotsitewise-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : { },
+          "eu-west-1" : { },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "iotsitewise-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "iotsitewise-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "iotsitewise-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "iotsitewise-fips.us-west-2.amazonaws.com"
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "iotsitewise-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "iotsitewise-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "iotsitewise-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "iotthingsgraph" : {
+        "defaults" : {
+          "credentialScope" : {
+            "service" : "iotthingsgraph"
+          }
+        },
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-southeast-2" : { },
+          "eu-west-1" : { },
+          "us-east-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "iottwinmaker" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "api-ap-northeast-1" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-1"
+            },
+            "hostname" : "api.iottwinmaker.ap-northeast-1.amazonaws.com"
+          },
+          "api-ap-northeast-2" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-2"
+            },
+            "hostname" : "api.iottwinmaker.ap-northeast-2.amazonaws.com"
+          },
+          "api-ap-south-1" : {
+            "credentialScope" : {
+              "region" : "ap-south-1"
+            },
+            "hostname" : "api.iottwinmaker.ap-south-1.amazonaws.com"
+          },
+          "api-ap-southeast-1" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-1"
+            },
+            "hostname" : "api.iottwinmaker.ap-southeast-1.amazonaws.com"
+          },
+          "api-ap-southeast-2" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-2"
+            },
+            "hostname" : "api.iottwinmaker.ap-southeast-2.amazonaws.com"
+          },
+          "api-eu-central-1" : {
+            "credentialScope" : {
+              "region" : "eu-central-1"
+            },
+            "hostname" : "api.iottwinmaker.eu-central-1.amazonaws.com"
+          },
+          "api-eu-west-1" : {
+            "credentialScope" : {
+              "region" : "eu-west-1"
+            },
+            "hostname" : "api.iottwinmaker.eu-west-1.amazonaws.com"
+          },
+          "api-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "api.iottwinmaker.us-east-1.amazonaws.com"
+          },
+          "api-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "hostname" : "api.iottwinmaker.us-west-2.amazonaws.com"
+          },
+          "data-ap-northeast-1" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-1"
+            },
+            "hostname" : "data.iottwinmaker.ap-northeast-1.amazonaws.com"
+          },
+          "data-ap-northeast-2" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-2"
+            },
+            "hostname" : "data.iottwinmaker.ap-northeast-2.amazonaws.com"
+          },
+          "data-ap-south-1" : {
+            "credentialScope" : {
+              "region" : "ap-south-1"
+            },
+            "hostname" : "data.iottwinmaker.ap-south-1.amazonaws.com"
+          },
+          "data-ap-southeast-1" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-1"
+            },
+            "hostname" : "data.iottwinmaker.ap-southeast-1.amazonaws.com"
+          },
+          "data-ap-southeast-2" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-2"
+            },
+            "hostname" : "data.iottwinmaker.ap-southeast-2.amazonaws.com"
+          },
+          "data-eu-central-1" : {
+            "credentialScope" : {
+              "region" : "eu-central-1"
+            },
+            "hostname" : "data.iottwinmaker.eu-central-1.amazonaws.com"
+          },
+          "data-eu-west-1" : {
+            "credentialScope" : {
+              "region" : "eu-west-1"
+            },
+            "hostname" : "data.iottwinmaker.eu-west-1.amazonaws.com"
+          },
+          "data-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "data.iottwinmaker.us-east-1.amazonaws.com"
+          },
+          "data-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "hostname" : "data.iottwinmaker.us-west-2.amazonaws.com"
+          },
+          "eu-central-1" : { },
+          "eu-west-1" : { },
+          "fips-api-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "api.iottwinmaker-fips.us-east-1.amazonaws.com"
+          },
+          "fips-api-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "hostname" : "api.iottwinmaker-fips.us-west-2.amazonaws.com"
+          },
+          "fips-data-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "data.iottwinmaker-fips.us-east-1.amazonaws.com"
+          },
+          "fips-data-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "hostname" : "data.iottwinmaker-fips.us-west-2.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "iottwinmaker-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "iottwinmaker-fips.us-west-2.amazonaws.com"
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "iottwinmaker-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "iottwinmaker-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "iotwireless" : {
+        "endpoints" : {
+          "ap-northeast-1" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-1"
+            },
+            "hostname" : "api.iotwireless.ap-northeast-1.amazonaws.com"
+          },
+          "ap-southeast-2" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-2"
+            },
+            "hostname" : "api.iotwireless.ap-southeast-2.amazonaws.com"
+          },
+          "eu-west-1" : {
+            "credentialScope" : {
+              "region" : "eu-west-1"
+            },
+            "hostname" : "api.iotwireless.eu-west-1.amazonaws.com"
+          },
+          "us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "api.iotwireless.us-east-1.amazonaws.com"
+          },
+          "us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "hostname" : "api.iotwireless.us-west-2.amazonaws.com"
+          }
+        }
+      },
+      "ivs" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-south-1" : { },
+          "eu-central-1" : { },
+          "eu-west-1" : { },
+          "us-east-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "ivschat" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-south-1" : { },
+          "eu-central-1" : { },
+          "eu-west-1" : { },
+          "us-east-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "ivsrealtime" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-south-1" : { },
+          "eu-central-1" : { },
+          "eu-west-1" : { },
+          "us-east-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "kafka" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "kafka-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "kafka-fips.ca-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "kafka-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-ca-west-1" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "kafka-fips.ca-west-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "kafka-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "kafka-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "kafka-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "kafka-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "kafka-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "kafka-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "kafka-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "kafka-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "kafkaconnect" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "sa-east-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "kendra" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "kendra-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "kendra-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "kendra-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "kendra-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "kendra-fips.us-west-2.amazonaws.com"
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "kendra-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "kendra-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "kendra-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "kendra-ranking" : {
+        "defaults" : {
+          "dnsSuffix" : "api.aws",
+          "variants" : [ {
+            "dnsSuffix" : "api.aws",
+            "hostname" : "{service}-fips.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "af-south-1" : {
+            "hostname" : "kendra-ranking.af-south-1.api.aws"
+          },
+          "ap-east-1" : {
+            "hostname" : "kendra-ranking.ap-east-1.api.aws"
+          },
+          "ap-northeast-1" : {
+            "hostname" : "kendra-ranking.ap-northeast-1.api.aws"
+          },
+          "ap-northeast-2" : {
+            "hostname" : "kendra-ranking.ap-northeast-2.api.aws"
+          },
+          "ap-northeast-3" : {
+            "hostname" : "kendra-ranking.ap-northeast-3.api.aws"
+          },
+          "ap-south-1" : {
+            "hostname" : "kendra-ranking.ap-south-1.api.aws"
+          },
+          "ap-south-2" : {
+            "hostname" : "kendra-ranking.ap-south-2.api.aws"
+          },
+          "ap-southeast-1" : {
+            "hostname" : "kendra-ranking.ap-southeast-1.api.aws"
+          },
+          "ap-southeast-2" : {
+            "hostname" : "kendra-ranking.ap-southeast-2.api.aws"
+          },
+          "ap-southeast-3" : {
+            "hostname" : "kendra-ranking.ap-southeast-3.api.aws"
+          },
+          "ap-southeast-4" : {
+            "hostname" : "kendra-ranking.ap-southeast-4.api.aws"
+          },
+          "ap-southeast-5" : {
+            "hostname" : "kendra-ranking.ap-southeast-5.api.aws"
+          },
+          "ap-southeast-7" : {
+            "hostname" : "kendra-ranking.ap-southeast-7.api.aws"
+          },
+          "ca-central-1" : {
+            "hostname" : "kendra-ranking.ca-central-1.api.aws",
+            "variants" : [ {
+              "hostname" : "kendra-ranking-fips.ca-central-1.api.aws",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-west-1" : {
+            "hostname" : "kendra-ranking.ca-west-1.api.aws"
+          },
+          "eu-central-2" : {
+            "hostname" : "kendra-ranking.eu-central-2.api.aws"
+          },
+          "eu-north-1" : {
+            "hostname" : "kendra-ranking.eu-north-1.api.aws"
+          },
+          "eu-south-1" : {
+            "hostname" : "kendra-ranking.eu-south-1.api.aws"
+          },
+          "eu-south-2" : {
+            "hostname" : "kendra-ranking.eu-south-2.api.aws"
+          },
+          "eu-west-1" : {
+            "hostname" : "kendra-ranking.eu-west-1.api.aws"
+          },
+          "eu-west-3" : {
+            "hostname" : "kendra-ranking.eu-west-3.api.aws"
+          },
+          "il-central-1" : {
+            "hostname" : "kendra-ranking.il-central-1.api.aws"
+          },
+          "me-central-1" : {
+            "hostname" : "kendra-ranking.me-central-1.api.aws"
+          },
+          "me-south-1" : {
+            "hostname" : "kendra-ranking.me-south-1.api.aws"
+          },
+          "mx-central-1" : {
+            "hostname" : "kendra-ranking.mx-central-1.api.aws"
+          },
+          "sa-east-1" : {
+            "hostname" : "kendra-ranking.sa-east-1.api.aws"
+          },
+          "us-east-1" : {
+            "hostname" : "kendra-ranking.us-east-1.api.aws",
+            "variants" : [ {
+              "hostname" : "kendra-ranking-fips.us-east-1.api.aws",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "hostname" : "kendra-ranking.us-east-2.api.aws",
+            "variants" : [ {
+              "hostname" : "kendra-ranking-fips.us-east-2.api.aws",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "hostname" : "kendra-ranking.us-west-1.api.aws"
+          },
+          "us-west-2" : {
+            "hostname" : "kendra-ranking.us-west-2.api.aws",
+            "variants" : [ {
+              "hostname" : "kendra-ranking-fips.us-west-2.api.aws",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "kinesis" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ap-southeast-7" : { },
+          "ca-central-1" : { },
+          "ca-west-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "kinesis-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "kinesis-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "kinesis-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "kinesis-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "mx-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "kinesis-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "kinesis-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "kinesis-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "kinesis-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "kinesisanalytics" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "kinesisanalytics-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "kinesisanalytics-fips.ca-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "kinesisanalytics-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-ca-west-1" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "kinesisanalytics-fips.ca-west-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "kinesisanalytics-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "kinesisanalytics-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "kinesisanalytics-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "kinesisanalytics-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "kinesisanalytics-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "kinesisanalytics-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "kinesisanalytics-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "kinesisanalytics-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "kinesisvideo" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "sa-east-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-2" : { }
+        }
+      },
+      "kms" : {
+        "endpoints" : {
+          "ProdFips" : {
+            "credentialScope" : {
+              "region" : "eu-central-2"
+            },
+            "deprecated" : true,
+            "hostname" : "kms-fips.eu-central-2.amazonaws.com"
+          },
+          "af-south-1" : {
+            "variants" : [ {
+              "hostname" : "kms-fips.af-south-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "af-south-1-fips" : {
+            "credentialScope" : {
+              "region" : "af-south-1"
+            },
+            "deprecated" : true,
+            "hostname" : "kms-fips.af-south-1.amazonaws.com"
+          },
+          "ap-east-1" : {
+            "variants" : [ {
+              "hostname" : "kms-fips.ap-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "ap-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "kms-fips.ap-east-1.amazonaws.com"
+          },
+          "ap-northeast-1" : {
+            "variants" : [ {
+              "hostname" : "kms-fips.ap-northeast-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-northeast-1-fips" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-1"
+            },
+            "deprecated" : true,
+            "hostname" : "kms-fips.ap-northeast-1.amazonaws.com"
+          },
+          "ap-northeast-2" : {
+            "variants" : [ {
+              "hostname" : "kms-fips.ap-northeast-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-northeast-2-fips" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-2"
+            },
+            "deprecated" : true,
+            "hostname" : "kms-fips.ap-northeast-2.amazonaws.com"
+          },
+          "ap-northeast-3" : {
+            "variants" : [ {
+              "hostname" : "kms-fips.ap-northeast-3.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-northeast-3-fips" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-3"
+            },
+            "deprecated" : true,
+            "hostname" : "kms-fips.ap-northeast-3.amazonaws.com"
+          },
+          "ap-south-1" : {
+            "variants" : [ {
+              "hostname" : "kms-fips.ap-south-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-south-1-fips" : {
+            "credentialScope" : {
+              "region" : "ap-south-1"
+            },
+            "deprecated" : true,
+            "hostname" : "kms-fips.ap-south-1.amazonaws.com"
+          },
+          "ap-south-2" : {
+            "variants" : [ {
+              "hostname" : "kms-fips.ap-south-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-south-2-fips" : {
+            "credentialScope" : {
+              "region" : "ap-south-2"
+            },
+            "deprecated" : true,
+            "hostname" : "kms-fips.ap-south-2.amazonaws.com"
+          },
+          "ap-southeast-1" : {
+            "variants" : [ {
+              "hostname" : "kms-fips.ap-southeast-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-southeast-1-fips" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-1"
+            },
+            "deprecated" : true,
+            "hostname" : "kms-fips.ap-southeast-1.amazonaws.com"
+          },
+          "ap-southeast-2" : {
+            "variants" : [ {
+              "hostname" : "kms-fips.ap-southeast-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-southeast-2-fips" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-2"
+            },
+            "deprecated" : true,
+            "hostname" : "kms-fips.ap-southeast-2.amazonaws.com"
+          },
+          "ap-southeast-3" : {
+            "variants" : [ {
+              "hostname" : "kms-fips.ap-southeast-3.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-southeast-3-fips" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-3"
+            },
+            "deprecated" : true,
+            "hostname" : "kms-fips.ap-southeast-3.amazonaws.com"
+          },
+          "ap-southeast-4" : {
+            "variants" : [ {
+              "hostname" : "kms-fips.ap-southeast-4.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-southeast-4-fips" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-4"
+            },
+            "deprecated" : true,
+            "hostname" : "kms-fips.ap-southeast-4.amazonaws.com"
+          },
+          "ap-southeast-5" : {
+            "variants" : [ {
+              "hostname" : "kms-fips.ap-southeast-5.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-southeast-5-fips" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-5"
+            },
+            "deprecated" : true,
+            "hostname" : "kms-fips.ap-southeast-5.amazonaws.com"
+          },
+          "ap-southeast-7" : {
+            "variants" : [ {
+              "hostname" : "kms-fips.ap-southeast-7.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-southeast-7-fips" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-7"
+            },
+            "deprecated" : true,
+            "hostname" : "kms-fips.ap-southeast-7.amazonaws.com"
+          },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "kms-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-central-1-fips" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "kms-fips.ca-central-1.amazonaws.com"
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "kms-fips.ca-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "kms-fips.ca-west-1.amazonaws.com"
+          },
+          "eu-central-1" : {
+            "variants" : [ {
+              "hostname" : "kms-fips.eu-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1-fips" : {
+            "credentialScope" : {
+              "region" : "eu-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "kms-fips.eu-central-1.amazonaws.com"
+          },
+          "eu-central-2" : {
+            "variants" : [ {
+              "hostname" : "kms-fips.eu-central-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-2-fips" : {
+            "credentialScope" : {
+              "region" : "eu-central-2"
+            },
+            "deprecated" : true,
+            "hostname" : "kms-fips.eu-central-2.amazonaws.com"
+          },
+          "eu-north-1" : {
+            "variants" : [ {
+              "hostname" : "kms-fips.eu-north-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-north-1-fips" : {
+            "credentialScope" : {
+              "region" : "eu-north-1"
+            },
+            "deprecated" : true,
+            "hostname" : "kms-fips.eu-north-1.amazonaws.com"
+          },
+          "eu-south-1" : {
+            "variants" : [ {
+              "hostname" : "kms-fips.eu-south-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-south-1-fips" : {
+            "credentialScope" : {
+              "region" : "eu-south-1"
+            },
+            "deprecated" : true,
+            "hostname" : "kms-fips.eu-south-1.amazonaws.com"
+          },
+          "eu-south-2" : {
+            "variants" : [ {
+              "hostname" : "kms-fips.eu-south-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-south-2-fips" : {
+            "credentialScope" : {
+              "region" : "eu-south-2"
+            },
+            "deprecated" : true,
+            "hostname" : "kms-fips.eu-south-2.amazonaws.com"
+          },
+          "eu-west-1" : {
+            "variants" : [ {
+              "hostname" : "kms-fips.eu-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "eu-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "kms-fips.eu-west-1.amazonaws.com"
+          },
+          "eu-west-2" : {
+            "variants" : [ {
+              "hostname" : "kms-fips.eu-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-west-2-fips" : {
+            "credentialScope" : {
+              "region" : "eu-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "kms-fips.eu-west-2.amazonaws.com"
+          },
+          "eu-west-3" : {
+            "variants" : [ {
+              "hostname" : "kms-fips.eu-west-3.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-west-3-fips" : {
+            "credentialScope" : {
+              "region" : "eu-west-3"
+            },
+            "deprecated" : true,
+            "hostname" : "kms-fips.eu-west-3.amazonaws.com"
+          },
+          "il-central-1" : {
+            "variants" : [ {
+              "hostname" : "kms-fips.il-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "il-central-1-fips" : {
+            "credentialScope" : {
+              "region" : "il-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "kms-fips.il-central-1.amazonaws.com"
+          },
+          "me-central-1" : {
+            "variants" : [ {
+              "hostname" : "kms-fips.me-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "me-central-1-fips" : {
+            "credentialScope" : {
+              "region" : "me-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "kms-fips.me-central-1.amazonaws.com"
+          },
+          "me-south-1" : {
+            "variants" : [ {
+              "hostname" : "kms-fips.me-south-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "me-south-1-fips" : {
+            "credentialScope" : {
+              "region" : "me-south-1"
+            },
+            "deprecated" : true,
+            "hostname" : "kms-fips.me-south-1.amazonaws.com"
+          },
+          "mx-central-1" : {
+            "variants" : [ {
+              "hostname" : "kms-fips.mx-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "mx-central-1-fips" : {
+            "credentialScope" : {
+              "region" : "mx-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "kms-fips.mx-central-1.amazonaws.com"
+          },
+          "sa-east-1" : {
+            "variants" : [ {
+              "hostname" : "kms-fips.sa-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "sa-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "sa-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "kms-fips.sa-east-1.amazonaws.com"
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "kms-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "kms-fips.us-east-1.amazonaws.com"
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "kms-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "kms-fips.us-east-2.amazonaws.com"
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "kms-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "kms-fips.us-west-1.amazonaws.com"
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "kms-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "kms-fips.us-west-2.amazonaws.com"
+          }
+        }
+      },
+      "lakeformation" : {
+        "endpoints" : {
+          "af-south-1" : {
+            "variants" : [ {
+              "hostname" : "lakeformation.af-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-east-1" : {
+            "variants" : [ {
+              "hostname" : "lakeformation.ap-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-1" : {
+            "variants" : [ {
+              "hostname" : "lakeformation.ap-northeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-2" : {
+            "variants" : [ {
+              "hostname" : "lakeformation.ap-northeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-3" : {
+            "variants" : [ {
+              "hostname" : "lakeformation.ap-northeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-1" : {
+            "variants" : [ {
+              "hostname" : "lakeformation.ap-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-2" : {
+            "variants" : [ {
+              "hostname" : "lakeformation.ap-south-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-1" : {
+            "variants" : [ {
+              "hostname" : "lakeformation.ap-southeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "variants" : [ {
+              "hostname" : "lakeformation.ap-southeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-3" : {
+            "variants" : [ {
+              "hostname" : "lakeformation.ap-southeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-4" : {
+            "variants" : [ {
+              "hostname" : "lakeformation.ap-southeast-4.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-5" : {
+            "variants" : [ {
+              "hostname" : "lakeformation.ap-southeast-5.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "lakeformation.ca-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "lakeformation.ca-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-1" : {
+            "variants" : [ {
+              "hostname" : "lakeformation.eu-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-2" : {
+            "variants" : [ {
+              "hostname" : "lakeformation.eu-central-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-north-1" : {
+            "variants" : [ {
+              "hostname" : "lakeformation.eu-north-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-1" : {
+            "variants" : [ {
+              "hostname" : "lakeformation.eu-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-2" : {
+            "variants" : [ {
+              "hostname" : "lakeformation.eu-south-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-1" : {
+            "variants" : [ {
+              "hostname" : "lakeformation.eu-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "variants" : [ {
+              "hostname" : "lakeformation.eu-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-3" : {
+            "variants" : [ {
+              "hostname" : "lakeformation.eu-west-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "lakeformation-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "lakeformation-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "lakeformation-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "lakeformation-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : {
+            "variants" : [ {
+              "hostname" : "lakeformation.il-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-central-1" : {
+            "variants" : [ {
+              "hostname" : "lakeformation.me-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-south-1" : {
+            "variants" : [ {
+              "hostname" : "lakeformation.me-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "sa-east-1" : {
+            "variants" : [ {
+              "hostname" : "lakeformation.sa-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "lakeformation-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "lakeformation-fips.us-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "lakeformation.us-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "lakeformation-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "lakeformation-fips.us-east-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "lakeformation.us-east-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "lakeformation-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "lakeformation-fips.us-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "lakeformation.us-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "lakeformation-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "lakeformation-fips.us-west-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "lakeformation.us-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "lambda" : {
+        "endpoints" : {
+          "af-south-1" : {
+            "variants" : [ {
+              "hostname" : "lambda.af-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-east-1" : {
+            "variants" : [ {
+              "hostname" : "lambda.ap-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-1" : {
+            "variants" : [ {
+              "hostname" : "lambda.ap-northeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-2" : {
+            "variants" : [ {
+              "hostname" : "lambda.ap-northeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-3" : {
+            "variants" : [ {
+              "hostname" : "lambda.ap-northeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-1" : {
+            "variants" : [ {
+              "hostname" : "lambda.ap-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-2" : {
+            "variants" : [ {
+              "hostname" : "lambda.ap-south-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-1" : {
+            "variants" : [ {
+              "hostname" : "lambda.ap-southeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "variants" : [ {
+              "hostname" : "lambda.ap-southeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-3" : {
+            "variants" : [ {
+              "hostname" : "lambda.ap-southeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-4" : {
+            "variants" : [ {
+              "hostname" : "lambda.ap-southeast-4.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-5" : {
+            "variants" : [ {
+              "hostname" : "lambda.ap-southeast-5.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-7" : {
+            "variants" : [ {
+              "hostname" : "lambda.ap-southeast-7.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "lambda.ca-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "lambda.ca-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-1" : {
+            "variants" : [ {
+              "hostname" : "lambda.eu-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-2" : {
+            "variants" : [ {
+              "hostname" : "lambda.eu-central-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-north-1" : {
+            "variants" : [ {
+              "hostname" : "lambda.eu-north-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-1" : {
+            "variants" : [ {
+              "hostname" : "lambda.eu-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-2" : {
+            "variants" : [ {
+              "hostname" : "lambda.eu-south-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-1" : {
+            "variants" : [ {
+              "hostname" : "lambda.eu-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "variants" : [ {
+              "hostname" : "lambda.eu-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-3" : {
+            "variants" : [ {
+              "hostname" : "lambda.eu-west-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "lambda-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "lambda-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "lambda-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "lambda-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : {
+            "variants" : [ {
+              "hostname" : "lambda.il-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-central-1" : {
+            "variants" : [ {
+              "hostname" : "lambda.me-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-south-1" : {
+            "variants" : [ {
+              "hostname" : "lambda.me-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "mx-central-1" : {
+            "variants" : [ {
+              "hostname" : "lambda.mx-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "sa-east-1" : {
+            "variants" : [ {
+              "hostname" : "lambda.sa-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "lambda-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "lambda.us-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "lambda-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "lambda.us-east-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "lambda-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "lambda.us-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "lambda-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "lambda.us-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "license-manager" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ca-central-1" : { },
+          "ca-west-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "license-manager-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "license-manager-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "license-manager-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "license-manager-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "license-manager-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "license-manager-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "license-manager-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "license-manager-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "license-manager-linux-subscriptions" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ap-southeast-7" : { },
+          "ca-central-1" : { },
+          "ca-west-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "license-manager-linux-subscriptions-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "license-manager-linux-subscriptions-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "license-manager-linux-subscriptions-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "license-manager-linux-subscriptions-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "mx-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "license-manager-linux-subscriptions-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "license-manager-linux-subscriptions-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "license-manager-linux-subscriptions-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "license-manager-linux-subscriptions-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "license-manager-user-subscriptions" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ca-central-1" : { },
+          "ca-west-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "license-manager-user-subscriptions-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "license-manager-user-subscriptions-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "license-manager-user-subscriptions-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "license-manager-user-subscriptions-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "license-manager-user-subscriptions-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "license-manager-user-subscriptions-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "license-manager-user-subscriptions-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "license-manager-user-subscriptions-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "lightsail" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-2" : { }
+        }
+      },
+      "logs" : {
+        "endpoints" : {
+          "af-south-1" : {
+            "variants" : [ {
+              "hostname" : "logs.af-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-east-1" : {
+            "variants" : [ {
+              "hostname" : "logs.ap-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-1" : {
+            "variants" : [ {
+              "hostname" : "logs.ap-northeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-2" : {
+            "variants" : [ {
+              "hostname" : "logs.ap-northeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-3" : {
+            "variants" : [ {
+              "hostname" : "logs.ap-northeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-1" : {
+            "variants" : [ {
+              "hostname" : "logs.ap-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-2" : {
+            "variants" : [ {
+              "hostname" : "logs.ap-south-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-1" : {
+            "variants" : [ {
+              "hostname" : "logs.ap-southeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "variants" : [ {
+              "hostname" : "logs.ap-southeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-3" : {
+            "variants" : [ {
+              "hostname" : "logs.ap-southeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-4" : {
+            "variants" : [ {
+              "hostname" : "logs.ap-southeast-4.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-5" : { },
+          "ap-southeast-7" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "logs-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "logs.ca-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "logs-fips.ca-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "logs.ca-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-1" : {
+            "variants" : [ {
+              "hostname" : "logs.eu-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-2" : {
+            "variants" : [ {
+              "hostname" : "logs.eu-central-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-north-1" : {
+            "variants" : [ {
+              "hostname" : "logs.eu-north-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-1" : {
+            "variants" : [ {
+              "hostname" : "logs.eu-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-2" : {
+            "variants" : [ {
+              "hostname" : "logs.eu-south-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-1" : {
+            "variants" : [ {
+              "hostname" : "logs.eu-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "variants" : [ {
+              "hostname" : "logs.eu-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-3" : {
+            "variants" : [ {
+              "hostname" : "logs.eu-west-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "logs-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-ca-west-1" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "logs-fips.ca-west-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "logs-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "logs-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "logs-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "logs-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : {
+            "variants" : [ {
+              "hostname" : "logs.il-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-central-1" : {
+            "variants" : [ {
+              "hostname" : "logs.me-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-south-1" : {
+            "variants" : [ {
+              "hostname" : "logs.me-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "mx-central-1" : { },
+          "sa-east-1" : {
+            "variants" : [ {
+              "hostname" : "logs.sa-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "logs-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "logs.us-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "logs-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "logs.us-east-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "logs-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "logs.us-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "logs-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "logs.us-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "lookoutequipment" : {
+        "endpoints" : {
+          "ap-northeast-2" : { },
+          "eu-west-1" : { },
+          "us-east-1" : { }
+        }
+      },
+      "lookoutmetrics" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-west-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-2" : { }
+        }
+      },
+      "lookoutvision" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "eu-central-1" : { },
+          "eu-west-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-2" : { }
+        }
+      },
+      "m2" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-ca-central-1" : {
+            "deprecated" : true
+          },
+          "fips-us-east-1" : {
+            "deprecated" : true
+          },
+          "fips-us-east-2" : {
+            "deprecated" : true
+          },
+          "fips-us-west-1" : {
+            "deprecated" : true
+          },
+          "fips-us-west-2" : {
+            "deprecated" : true
+          },
+          "il-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "machinelearning" : {
+        "endpoints" : {
+          "eu-west-1" : { },
+          "us-east-1" : { }
+        }
+      },
+      "macie2" : {
+        "endpoints" : {
+          "af-south-1" : {
+            "variants" : [ {
+              "hostname" : "macie2.af-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-east-1" : {
+            "variants" : [ {
+              "hostname" : "macie2.ap-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-1" : {
+            "variants" : [ {
+              "hostname" : "macie2.ap-northeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-2" : {
+            "variants" : [ {
+              "hostname" : "macie2.ap-northeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-3" : {
+            "variants" : [ {
+              "hostname" : "macie2.ap-northeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-1" : {
+            "variants" : [ {
+              "hostname" : "macie2.ap-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-1" : {
+            "variants" : [ {
+              "hostname" : "macie2.ap-southeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "variants" : [ {
+              "hostname" : "macie2.ap-southeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "macie2.ca-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-1" : {
+            "variants" : [ {
+              "hostname" : "macie2.eu-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-north-1" : {
+            "variants" : [ {
+              "hostname" : "macie2.eu-north-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-1" : {
+            "variants" : [ {
+              "hostname" : "macie2.eu-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-1" : {
+            "variants" : [ {
+              "hostname" : "macie2.eu-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "variants" : [ {
+              "hostname" : "macie2.eu-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-3" : {
+            "variants" : [ {
+              "hostname" : "macie2.eu-west-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "macie2-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "macie2-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "macie2-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "macie2-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : {
+            "variants" : [ {
+              "hostname" : "macie2.il-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-south-1" : {
+            "variants" : [ {
+              "hostname" : "macie2.me-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "sa-east-1" : {
+            "variants" : [ {
+              "hostname" : "macie2.sa-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "macie2-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "macie2-fips.us-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "macie2.us-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "macie2-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "macie2-fips.us-east-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "macie2.us-east-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "macie2-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "macie2-fips.us-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "macie2.us-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "macie2-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "macie2-fips.us-west-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "macie2.us-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "managedblockchain" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-southeast-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "us-east-1" : { }
+        }
+      },
+      "managedblockchain-query" : {
+        "endpoints" : {
+          "us-east-1" : { }
+        }
+      },
+      "marketplacecommerceanalytics" : {
+        "endpoints" : {
+          "us-east-1" : { }
+        }
+      },
+      "media-pipelines-chime" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-west-2" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "media-pipelines-chime-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "media-pipelines-chime-fips.us-east-1.amazonaws.com"
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "media-pipelines-chime-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "media-pipelines-chime-fips.us-west-2.amazonaws.com"
+          }
+        }
+      },
+      "mediaconnect" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-4" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "me-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "mediaconvert" : {
+        "endpoints" : {
+          "af-south-1" : {
+            "variants" : [ {
+              "hostname" : "mediaconvert.af-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-1" : {
+            "variants" : [ {
+              "hostname" : "mediaconvert.ap-northeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-2" : {
+            "variants" : [ {
+              "hostname" : "mediaconvert.ap-northeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-3" : {
+            "variants" : [ {
+              "hostname" : "mediaconvert.ap-northeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-1" : {
+            "variants" : [ {
+              "hostname" : "mediaconvert.ap-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-1" : {
+            "variants" : [ {
+              "hostname" : "mediaconvert.ap-southeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "variants" : [ {
+              "hostname" : "mediaconvert.ap-southeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-4" : {
+            "variants" : [ {
+              "hostname" : "mediaconvert.ap-southeast-4.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "mediaconvert-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "mediaconvert-fips.ca-central-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "mediaconvert.ca-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-1" : {
+            "variants" : [ {
+              "hostname" : "mediaconvert.eu-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-north-1" : {
+            "variants" : [ {
+              "hostname" : "mediaconvert.eu-north-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-1" : {
+            "variants" : [ {
+              "hostname" : "mediaconvert.eu-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "variants" : [ {
+              "hostname" : "mediaconvert.eu-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-3" : {
+            "variants" : [ {
+              "hostname" : "mediaconvert.eu-west-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "mediaconvert-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "mediaconvert-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "mediaconvert-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "mediaconvert-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "mediaconvert-fips.us-west-2.amazonaws.com"
+          },
+          "me-central-1" : {
+            "variants" : [ {
+              "hostname" : "mediaconvert.me-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "sa-east-1" : {
+            "variants" : [ {
+              "hostname" : "mediaconvert.sa-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "mediaconvert-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "mediaconvert-fips.us-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "mediaconvert.us-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "mediaconvert-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "mediaconvert-fips.us-east-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "mediaconvert.us-east-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "mediaconvert-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "mediaconvert-fips.us-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "mediaconvert.us-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "mediaconvert-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "mediaconvert-fips.us-west-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "mediaconvert.us-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "medialive" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-4" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "medialive-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "medialive-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "medialive-fips.us-west-2.amazonaws.com"
+          },
+          "me-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "medialive-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "medialive-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "medialive-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "mediapackage" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-4" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "sa-east-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "mediapackage-vod" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-4" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "me-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "mediapackagev2" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-4" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "me-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "mediastore" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-southeast-2" : { },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "us-east-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "meetings-chime" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "meetings-chime-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-central-1-fips" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "meetings-chime-fips.ca-central-1.amazonaws.com"
+          },
+          "eu-central-1" : { },
+          "eu-west-2" : { },
+          "il-central-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "meetings-chime-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "meetings-chime-fips.us-east-1.amazonaws.com"
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "meetings-chime-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "meetings-chime-fips.us-west-2.amazonaws.com"
+          }
+        }
+      },
+      "memory-db" : {
+        "endpoints" : {
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "hostname" : "memory-db-fips.us-west-1.amazonaws.com"
+          },
+          "sa-east-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "messaging-chime" : {
+        "endpoints" : {
+          "eu-central-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "messaging-chime-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "messaging-chime-fips.us-east-1.amazonaws.com"
+          }
+        }
+      },
+      "metering.marketplace" : {
+        "defaults" : {
+          "credentialScope" : {
+            "service" : "aws-marketplace"
+          }
+        },
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "metrics.sagemaker" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ap-southeast-7" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "metrics-fips.sagemaker.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-central-1-fips" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "metrics-fips.sagemaker.ca-central-1.amazonaws.com"
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "metrics-fips.sagemaker.ca-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "metrics-fips.sagemaker.ca-west-1.amazonaws.com"
+          },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "mx-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "metrics-fips.sagemaker.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "metrics-fips.sagemaker.us-east-1.amazonaws.com"
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "metrics-fips.sagemaker.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "metrics-fips.sagemaker.us-east-2.amazonaws.com"
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "metrics-fips.sagemaker.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "metrics-fips.sagemaker.us-west-1.amazonaws.com"
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "metrics-fips.sagemaker.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "metrics-fips.sagemaker.us-west-2.amazonaws.com"
+          }
+        }
+      },
+      "mgh" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-southeast-2" : { },
+          "eu-central-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "us-east-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "mgn" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "mgn-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "mgn-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "mgn-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "mgn-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "mgn-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "mgn-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "mgn-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "mgn-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "migrationhub-orchestrator" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-southeast-2" : { },
+          "eu-central-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "us-east-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "migrationhub-strategy" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-southeast-2" : { },
+          "eu-central-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "us-east-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "mobileanalytics" : {
+        "endpoints" : {
+          "us-east-1" : { }
+        }
+      },
+      "models-v2-lex" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "us-east-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "models.lex" : {
+        "defaults" : {
+          "credentialScope" : {
+            "service" : "lex"
+          },
+          "variants" : [ {
+            "hostname" : "models-fips.lex.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "eu-central-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "models-fips.lex.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "models-fips.lex.us-east-1.amazonaws.com"
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "models-fips.lex.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "models-fips.lex.us-west-2.amazonaws.com"
+          }
+        }
+      },
+      "monitoring" : {
+        "defaults" : {
+          "protocols" : [ "http", "https" ]
+        },
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ap-southeast-7" : { },
+          "ca-central-1" : { },
+          "ca-west-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "monitoring-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "monitoring-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "monitoring-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "monitoring-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "mx-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "monitoring-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "monitoring-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "monitoring-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "monitoring-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "mq" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ca-central-1" : { },
+          "ca-west-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "mq-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "mq-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "mq-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "mq-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "mq-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "mq-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "mq-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "mq-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "mturk-requester" : {
+        "endpoints" : {
+          "sandbox" : {
+            "hostname" : "mturk-requester-sandbox.us-east-1.amazonaws.com"
+          },
+          "us-east-1" : { }
+        },
+        "isRegionalized" : false
+      },
+      "neptune" : {
+        "endpoints" : {
+          "ap-east-1" : {
+            "credentialScope" : {
+              "region" : "ap-east-1"
+            },
+            "hostname" : "rds.ap-east-1.amazonaws.com"
+          },
+          "ap-northeast-1" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-1"
+            },
+            "hostname" : "rds.ap-northeast-1.amazonaws.com"
+          },
+          "ap-northeast-2" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-2"
+            },
+            "hostname" : "rds.ap-northeast-2.amazonaws.com"
+          },
+          "ap-south-1" : {
+            "credentialScope" : {
+              "region" : "ap-south-1"
+            },
+            "hostname" : "rds.ap-south-1.amazonaws.com"
+          },
+          "ap-southeast-1" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-1"
+            },
+            "hostname" : "rds.ap-southeast-1.amazonaws.com"
+          },
+          "ap-southeast-2" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-2"
+            },
+            "hostname" : "rds.ap-southeast-2.amazonaws.com"
+          },
+          "ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "hostname" : "rds.ca-central-1.amazonaws.com"
+          },
+          "eu-central-1" : {
+            "credentialScope" : {
+              "region" : "eu-central-1"
+            },
+            "hostname" : "rds.eu-central-1.amazonaws.com"
+          },
+          "eu-north-1" : {
+            "credentialScope" : {
+              "region" : "eu-north-1"
+            },
+            "hostname" : "rds.eu-north-1.amazonaws.com"
+          },
+          "eu-west-1" : {
+            "credentialScope" : {
+              "region" : "eu-west-1"
+            },
+            "hostname" : "rds.eu-west-1.amazonaws.com"
+          },
+          "eu-west-2" : {
+            "credentialScope" : {
+              "region" : "eu-west-2"
+            },
+            "hostname" : "rds.eu-west-2.amazonaws.com"
+          },
+          "eu-west-3" : {
+            "credentialScope" : {
+              "region" : "eu-west-3"
+            },
+            "hostname" : "rds.eu-west-3.amazonaws.com"
+          },
+          "me-south-1" : {
+            "credentialScope" : {
+              "region" : "me-south-1"
+            },
+            "hostname" : "rds.me-south-1.amazonaws.com"
+          },
+          "sa-east-1" : {
+            "credentialScope" : {
+              "region" : "sa-east-1"
+            },
+            "hostname" : "rds.sa-east-1.amazonaws.com"
+          },
+          "us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "rds.us-east-1.amazonaws.com"
+          },
+          "us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "hostname" : "rds.us-east-2.amazonaws.com"
+          },
+          "us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "hostname" : "rds.us-west-1.amazonaws.com"
+          },
+          "us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "hostname" : "rds.us-west-2.amazonaws.com"
+          }
+        }
+      },
+      "network-firewall" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "network-firewall-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-west-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "network-firewall-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "network-firewall-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "network-firewall-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "network-firewall-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "network-firewall-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "network-firewall-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "network-firewall-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "network-firewall-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "network-firewall-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "networkmanager" : {
+        "endpoints" : {
+          "aws-global" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "hostname" : "networkmanager.us-west-2.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "networkmanager-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "fips-aws-global" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "networkmanager-fips.us-west-2.amazonaws.com"
+          }
+        },
+        "isRegionalized" : false,
+        "partitionEndpoint" : "aws-global"
+      },
+      "notifications" : {
+        "defaults" : {
+          "dnsSuffix" : "api.aws",
+          "variants" : [ {
+            "dnsSuffix" : "api.aws",
+            "hostname" : "{service}-fips.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "af-south-1" : {
+            "hostname" : "notifications.af-south-1.api.aws"
+          },
+          "ap-east-1" : {
+            "hostname" : "notifications.ap-east-1.api.aws"
+          },
+          "ap-northeast-1" : {
+            "hostname" : "notifications.ap-northeast-1.api.aws"
+          },
+          "ap-northeast-2" : {
+            "hostname" : "notifications.ap-northeast-2.api.aws"
+          },
+          "ap-northeast-3" : {
+            "hostname" : "notifications.ap-northeast-3.api.aws"
+          },
+          "ap-south-1" : {
+            "hostname" : "notifications.ap-south-1.api.aws"
+          },
+          "ap-south-2" : {
+            "hostname" : "notifications.ap-south-2.api.aws"
+          },
+          "ap-southeast-1" : {
+            "hostname" : "notifications.ap-southeast-1.api.aws"
+          },
+          "ap-southeast-2" : {
+            "hostname" : "notifications.ap-southeast-2.api.aws"
+          },
+          "ap-southeast-3" : {
+            "hostname" : "notifications.ap-southeast-3.api.aws"
+          },
+          "ap-southeast-4" : {
+            "hostname" : "notifications.ap-southeast-4.api.aws"
+          },
+          "ap-southeast-5" : {
+            "hostname" : "notifications.ap-southeast-5.api.aws"
+          },
+          "ap-southeast-7" : {
+            "hostname" : "notifications.ap-southeast-7.api.aws"
+          },
+          "ca-central-1" : {
+            "hostname" : "notifications.ca-central-1.api.aws"
+          },
+          "ca-west-1" : {
+            "hostname" : "notifications.ca-west-1.api.aws"
+          },
+          "eu-central-1" : {
+            "hostname" : "notifications.eu-central-1.api.aws"
+          },
+          "eu-central-2" : {
+            "hostname" : "notifications.eu-central-2.api.aws"
+          },
+          "eu-north-1" : {
+            "hostname" : "notifications.eu-north-1.api.aws"
+          },
+          "eu-south-1" : {
+            "hostname" : "notifications.eu-south-1.api.aws"
+          },
+          "eu-south-2" : {
+            "hostname" : "notifications.eu-south-2.api.aws"
+          },
+          "eu-west-1" : {
+            "hostname" : "notifications.eu-west-1.api.aws"
+          },
+          "eu-west-2" : {
+            "hostname" : "notifications.eu-west-2.api.aws"
+          },
+          "eu-west-3" : {
+            "hostname" : "notifications.eu-west-3.api.aws"
+          },
+          "il-central-1" : {
+            "hostname" : "notifications.il-central-1.api.aws"
+          },
+          "me-central-1" : {
+            "hostname" : "notifications.me-central-1.api.aws"
+          },
+          "me-south-1" : {
+            "hostname" : "notifications.me-south-1.api.aws"
+          },
+          "mx-central-1" : {
+            "hostname" : "notifications.mx-central-1.api.aws"
+          },
+          "sa-east-1" : {
+            "hostname" : "notifications.sa-east-1.api.aws"
+          },
+          "us-east-1" : {
+            "hostname" : "notifications.us-east-1.api.aws"
+          },
+          "us-east-2" : {
+            "hostname" : "notifications.us-east-2.api.aws"
+          },
+          "us-west-1" : {
+            "hostname" : "notifications.us-west-1.api.aws"
+          },
+          "us-west-2" : {
+            "hostname" : "notifications.us-west-2.api.aws"
+          }
+        }
+      },
+      "notifications-contacts" : {
+        "endpoints" : {
+          "aws-global" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "notifications-contacts.us-east-1.api.aws"
+          }
+        },
+        "isRegionalized" : false,
+        "partitionEndpoint" : "aws-global"
+      },
+      "oam" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ap-southeast-7" : { },
+          "ca-central-1" : { },
+          "ca-west-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "mx-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "oidc" : {
+        "endpoints" : {
+          "af-south-1" : {
+            "credentialScope" : {
+              "region" : "af-south-1"
+            },
+            "hostname" : "oidc.af-south-1.amazonaws.com"
+          },
+          "ap-east-1" : {
+            "credentialScope" : {
+              "region" : "ap-east-1"
+            },
+            "hostname" : "oidc.ap-east-1.amazonaws.com"
+          },
+          "ap-northeast-1" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-1"
+            },
+            "hostname" : "oidc.ap-northeast-1.amazonaws.com"
+          },
+          "ap-northeast-2" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-2"
+            },
+            "hostname" : "oidc.ap-northeast-2.amazonaws.com"
+          },
+          "ap-northeast-3" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-3"
+            },
+            "hostname" : "oidc.ap-northeast-3.amazonaws.com"
+          },
+          "ap-south-1" : {
+            "credentialScope" : {
+              "region" : "ap-south-1"
+            },
+            "hostname" : "oidc.ap-south-1.amazonaws.com"
+          },
+          "ap-south-2" : {
+            "credentialScope" : {
+              "region" : "ap-south-2"
+            },
+            "hostname" : "oidc.ap-south-2.amazonaws.com"
+          },
+          "ap-southeast-1" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-1"
+            },
+            "hostname" : "oidc.ap-southeast-1.amazonaws.com"
+          },
+          "ap-southeast-2" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-2"
+            },
+            "hostname" : "oidc.ap-southeast-2.amazonaws.com"
+          },
+          "ap-southeast-3" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-3"
+            },
+            "hostname" : "oidc.ap-southeast-3.amazonaws.com"
+          },
+          "ap-southeast-4" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-4"
+            },
+            "hostname" : "oidc.ap-southeast-4.amazonaws.com"
+          },
+          "ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "hostname" : "oidc.ca-central-1.amazonaws.com"
+          },
+          "ca-west-1" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "hostname" : "oidc.ca-west-1.amazonaws.com"
+          },
+          "eu-central-1" : {
+            "credentialScope" : {
+              "region" : "eu-central-1"
+            },
+            "hostname" : "oidc.eu-central-1.amazonaws.com"
+          },
+          "eu-central-2" : {
+            "credentialScope" : {
+              "region" : "eu-central-2"
+            },
+            "hostname" : "oidc.eu-central-2.amazonaws.com"
+          },
+          "eu-north-1" : {
+            "credentialScope" : {
+              "region" : "eu-north-1"
+            },
+            "hostname" : "oidc.eu-north-1.amazonaws.com"
+          },
+          "eu-south-1" : {
+            "credentialScope" : {
+              "region" : "eu-south-1"
+            },
+            "hostname" : "oidc.eu-south-1.amazonaws.com"
+          },
+          "eu-south-2" : {
+            "credentialScope" : {
+              "region" : "eu-south-2"
+            },
+            "hostname" : "oidc.eu-south-2.amazonaws.com"
+          },
+          "eu-west-1" : {
+            "credentialScope" : {
+              "region" : "eu-west-1"
+            },
+            "hostname" : "oidc.eu-west-1.amazonaws.com"
+          },
+          "eu-west-2" : {
+            "credentialScope" : {
+              "region" : "eu-west-2"
+            },
+            "hostname" : "oidc.eu-west-2.amazonaws.com"
+          },
+          "eu-west-3" : {
+            "credentialScope" : {
+              "region" : "eu-west-3"
+            },
+            "hostname" : "oidc.eu-west-3.amazonaws.com"
+          },
+          "il-central-1" : {
+            "credentialScope" : {
+              "region" : "il-central-1"
+            },
+            "hostname" : "oidc.il-central-1.amazonaws.com"
+          },
+          "me-central-1" : {
+            "credentialScope" : {
+              "region" : "me-central-1"
+            },
+            "hostname" : "oidc.me-central-1.amazonaws.com"
+          },
+          "me-south-1" : {
+            "credentialScope" : {
+              "region" : "me-south-1"
+            },
+            "hostname" : "oidc.me-south-1.amazonaws.com"
+          },
+          "sa-east-1" : {
+            "credentialScope" : {
+              "region" : "sa-east-1"
+            },
+            "hostname" : "oidc.sa-east-1.amazonaws.com"
+          },
+          "us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "oidc.us-east-1.amazonaws.com"
+          },
+          "us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "hostname" : "oidc.us-east-2.amazonaws.com"
+          },
+          "us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "hostname" : "oidc.us-west-1.amazonaws.com"
+          },
+          "us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "hostname" : "oidc.us-west-2.amazonaws.com"
+          }
+        }
+      },
+      "omics" : {
+        "endpoints" : {
+          "ap-southeast-1" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-1"
+            },
+            "hostname" : "omics.ap-southeast-1.amazonaws.com"
+          },
+          "eu-central-1" : {
+            "credentialScope" : {
+              "region" : "eu-central-1"
+            },
+            "hostname" : "omics.eu-central-1.amazonaws.com"
+          },
+          "eu-west-1" : {
+            "credentialScope" : {
+              "region" : "eu-west-1"
+            },
+            "hostname" : "omics.eu-west-1.amazonaws.com"
+          },
+          "eu-west-2" : {
+            "credentialScope" : {
+              "region" : "eu-west-2"
+            },
+            "hostname" : "omics.eu-west-2.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "omics-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "omics-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : {
+            "credentialScope" : {
+              "region" : "il-central-1"
+            },
+            "hostname" : "omics.il-central-1.amazonaws.com"
+          },
+          "us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "omics.us-east-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "omics-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "hostname" : "omics.us-west-2.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "omics-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "opsworks" : {
+        "endpoints" : {
+          "ap-southeast-1" : { },
+          "eu-central-1" : { },
+          "eu-west-1" : { },
+          "us-east-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "opsworks-cm" : {
+        "endpoints" : {
+          "ap-southeast-2" : { },
+          "eu-west-1" : { },
+          "us-east-1" : { }
+        }
+      },
+      "organizations" : {
+        "endpoints" : {
+          "aws-global" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "organizations.us-east-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "organizations-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "fips-aws-global" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "organizations-fips.us-east-1.amazonaws.com"
+          }
+        },
+        "isRegionalized" : false,
+        "partitionEndpoint" : "aws-global"
+      },
+      "osis" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "sa-east-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "outposts" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "outposts-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "outposts-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "outposts-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "outposts-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "outposts-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "outposts-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "outposts-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "outposts-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "outposts-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "outposts-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "participant.connect" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-west-2" : { },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "participant.connect-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "participant.connect-fips.us-west-2.amazonaws.com"
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "participant.connect-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "participant.connect-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "personalize" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-west-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-2" : { }
+        }
+      },
+      "pi" : {
+        "endpoints" : {
+          "af-south-1" : {
+            "protocols" : [ "https" ],
+            "variants" : [ {
+              "hostname" : "pi.af-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-east-1" : {
+            "protocols" : [ "https" ],
+            "variants" : [ {
+              "hostname" : "pi.ap-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-1" : {
+            "protocols" : [ "https" ],
+            "variants" : [ {
+              "hostname" : "pi.ap-northeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-2" : {
+            "protocols" : [ "https" ],
+            "variants" : [ {
+              "hostname" : "pi.ap-northeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-3" : {
+            "protocols" : [ "https" ],
+            "variants" : [ {
+              "hostname" : "pi.ap-northeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-1" : {
+            "protocols" : [ "https" ],
+            "variants" : [ {
+              "hostname" : "pi.ap-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-2" : {
+            "protocols" : [ "https" ],
+            "variants" : [ {
+              "hostname" : "pi.ap-south-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-1" : {
+            "protocols" : [ "https" ],
+            "variants" : [ {
+              "hostname" : "pi.ap-southeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "protocols" : [ "https" ],
+            "variants" : [ {
+              "hostname" : "pi.ap-southeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-3" : {
+            "protocols" : [ "https" ],
+            "variants" : [ {
+              "hostname" : "pi.ap-southeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-4" : {
+            "protocols" : [ "https" ],
+            "variants" : [ {
+              "hostname" : "pi.ap-southeast-4.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-5" : {
+            "protocols" : [ "https" ],
+            "variants" : [ {
+              "hostname" : "pi.ap-southeast-5.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-7" : {
+            "protocols" : [ "https" ],
+            "variants" : [ {
+              "hostname" : "pi.ap-southeast-7.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-central-1" : {
+            "protocols" : [ "https" ],
+            "variants" : [ {
+              "hostname" : "pi-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "pi-fips.ca-central-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "pi.ca-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-west-1" : {
+            "protocols" : [ "https" ],
+            "variants" : [ {
+              "hostname" : "pi-fips.ca-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "pi-fips.ca-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "pi.ca-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-1" : {
+            "protocols" : [ "https" ],
+            "variants" : [ {
+              "hostname" : "pi.eu-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-2" : {
+            "protocols" : [ "https" ],
+            "variants" : [ {
+              "hostname" : "pi.eu-central-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-north-1" : {
+            "protocols" : [ "https" ],
+            "variants" : [ {
+              "hostname" : "pi.eu-north-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-1" : {
+            "protocols" : [ "https" ],
+            "variants" : [ {
+              "hostname" : "pi.eu-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-2" : {
+            "protocols" : [ "https" ],
+            "variants" : [ {
+              "hostname" : "pi.eu-south-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-1" : {
+            "protocols" : [ "https" ],
+            "variants" : [ {
+              "hostname" : "pi.eu-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "protocols" : [ "https" ],
+            "variants" : [ {
+              "hostname" : "pi.eu-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-3" : {
+            "protocols" : [ "https" ],
+            "variants" : [ {
+              "hostname" : "pi.eu-west-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "pi-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-ca-west-1" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "pi-fips.ca-west-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "pi-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "pi-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "pi-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "pi-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : {
+            "protocols" : [ "https" ],
+            "variants" : [ {
+              "hostname" : "pi.il-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-central-1" : {
+            "protocols" : [ "https" ],
+            "variants" : [ {
+              "hostname" : "pi.me-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-south-1" : {
+            "protocols" : [ "https" ],
+            "variants" : [ {
+              "hostname" : "pi.me-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "mx-central-1" : {
+            "protocols" : [ "https" ],
+            "variants" : [ {
+              "hostname" : "pi.mx-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "sa-east-1" : {
+            "protocols" : [ "https" ],
+            "variants" : [ {
+              "hostname" : "pi.sa-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1" : {
+            "protocols" : [ "https" ],
+            "variants" : [ {
+              "hostname" : "pi-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "pi-fips.us-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "pi.us-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-2" : {
+            "protocols" : [ "https" ],
+            "variants" : [ {
+              "hostname" : "pi-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "pi-fips.us-east-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "pi.us-east-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-1" : {
+            "protocols" : [ "https" ],
+            "variants" : [ {
+              "hostname" : "pi-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "pi-fips.us-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "pi.us-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-2" : {
+            "protocols" : [ "https" ],
+            "variants" : [ {
+              "hostname" : "pi-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "pi-fips.us-west-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "pi.us-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "pinpoint" : {
+        "defaults" : {
+          "credentialScope" : {
+            "service" : "mobiletargeting"
+          }
+        },
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "hostname" : "pinpoint.ca-central-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "pinpoint-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "pinpoint-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "pinpoint-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "pinpoint-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "pinpoint-fips.us-west-2.amazonaws.com"
+          },
+          "us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "pinpoint.us-east-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "pinpoint-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "hostname" : "pinpoint.us-east-2.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "pinpoint-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "hostname" : "pinpoint.us-west-2.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "pinpoint-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "pipes" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "polly" : {
+        "endpoints" : {
+          "af-south-1" : {
+            "variants" : [ {
+              "hostname" : "polly.af-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-east-1" : {
+            "variants" : [ {
+              "hostname" : "polly.ap-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-1" : {
+            "variants" : [ {
+              "hostname" : "polly.ap-northeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-2" : {
+            "variants" : [ {
+              "hostname" : "polly.ap-northeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-3" : {
+            "variants" : [ {
+              "hostname" : "polly.ap-northeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-1" : {
+            "variants" : [ {
+              "hostname" : "polly.ap-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-1" : {
+            "variants" : [ {
+              "hostname" : "polly.ap-southeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "variants" : [ {
+              "hostname" : "polly.ap-southeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "polly-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "polly-fips.ca-central-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "polly.ca-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-1" : {
+            "variants" : [ {
+              "hostname" : "polly.eu-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-north-1" : {
+            "variants" : [ {
+              "hostname" : "polly.eu-north-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-2" : {
+            "variants" : [ {
+              "hostname" : "polly.eu-south-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-1" : {
+            "variants" : [ {
+              "hostname" : "polly.eu-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "variants" : [ {
+              "hostname" : "polly.eu-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-3" : {
+            "variants" : [ {
+              "hostname" : "polly.eu-west-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "polly-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "polly-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "polly-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "polly-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "polly-fips.us-west-2.amazonaws.com"
+          },
+          "me-south-1" : {
+            "variants" : [ {
+              "hostname" : "polly.me-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "sa-east-1" : {
+            "variants" : [ {
+              "hostname" : "polly.sa-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "polly-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "polly-fips.us-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "polly.us-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "polly-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "polly-fips.us-east-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "polly.us-east-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "polly-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "polly-fips.us-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "polly.us-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "polly-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "polly-fips.us-west-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "polly.us-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "portal.sso" : {
+        "endpoints" : {
+          "af-south-1" : {
+            "credentialScope" : {
+              "region" : "af-south-1"
+            },
+            "hostname" : "portal.sso.af-south-1.amazonaws.com"
+          },
+          "ap-east-1" : {
+            "credentialScope" : {
+              "region" : "ap-east-1"
+            },
+            "hostname" : "portal.sso.ap-east-1.amazonaws.com"
+          },
+          "ap-northeast-1" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-1"
+            },
+            "hostname" : "portal.sso.ap-northeast-1.amazonaws.com"
+          },
+          "ap-northeast-2" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-2"
+            },
+            "hostname" : "portal.sso.ap-northeast-2.amazonaws.com"
+          },
+          "ap-northeast-3" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-3"
+            },
+            "hostname" : "portal.sso.ap-northeast-3.amazonaws.com"
+          },
+          "ap-south-1" : {
+            "credentialScope" : {
+              "region" : "ap-south-1"
+            },
+            "hostname" : "portal.sso.ap-south-1.amazonaws.com"
+          },
+          "ap-south-2" : {
+            "credentialScope" : {
+              "region" : "ap-south-2"
+            },
+            "hostname" : "portal.sso.ap-south-2.amazonaws.com"
+          },
+          "ap-southeast-1" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-1"
+            },
+            "hostname" : "portal.sso.ap-southeast-1.amazonaws.com"
+          },
+          "ap-southeast-2" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-2"
+            },
+            "hostname" : "portal.sso.ap-southeast-2.amazonaws.com"
+          },
+          "ap-southeast-3" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-3"
+            },
+            "hostname" : "portal.sso.ap-southeast-3.amazonaws.com"
+          },
+          "ap-southeast-4" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-4"
+            },
+            "hostname" : "portal.sso.ap-southeast-4.amazonaws.com"
+          },
+          "ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "hostname" : "portal.sso.ca-central-1.amazonaws.com"
+          },
+          "ca-west-1" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "hostname" : "portal.sso.ca-west-1.amazonaws.com"
+          },
+          "eu-central-1" : {
+            "credentialScope" : {
+              "region" : "eu-central-1"
+            },
+            "hostname" : "portal.sso.eu-central-1.amazonaws.com"
+          },
+          "eu-central-2" : {
+            "credentialScope" : {
+              "region" : "eu-central-2"
+            },
+            "hostname" : "portal.sso.eu-central-2.amazonaws.com"
+          },
+          "eu-north-1" : {
+            "credentialScope" : {
+              "region" : "eu-north-1"
+            },
+            "hostname" : "portal.sso.eu-north-1.amazonaws.com"
+          },
+          "eu-south-1" : {
+            "credentialScope" : {
+              "region" : "eu-south-1"
+            },
+            "hostname" : "portal.sso.eu-south-1.amazonaws.com"
+          },
+          "eu-south-2" : {
+            "credentialScope" : {
+              "region" : "eu-south-2"
+            },
+            "hostname" : "portal.sso.eu-south-2.amazonaws.com"
+          },
+          "eu-west-1" : {
+            "credentialScope" : {
+              "region" : "eu-west-1"
+            },
+            "hostname" : "portal.sso.eu-west-1.amazonaws.com"
+          },
+          "eu-west-2" : {
+            "credentialScope" : {
+              "region" : "eu-west-2"
+            },
+            "hostname" : "portal.sso.eu-west-2.amazonaws.com"
+          },
+          "eu-west-3" : {
+            "credentialScope" : {
+              "region" : "eu-west-3"
+            },
+            "hostname" : "portal.sso.eu-west-3.amazonaws.com"
+          },
+          "il-central-1" : {
+            "credentialScope" : {
+              "region" : "il-central-1"
+            },
+            "hostname" : "portal.sso.il-central-1.amazonaws.com"
+          },
+          "me-central-1" : {
+            "credentialScope" : {
+              "region" : "me-central-1"
+            },
+            "hostname" : "portal.sso.me-central-1.amazonaws.com"
+          },
+          "me-south-1" : {
+            "credentialScope" : {
+              "region" : "me-south-1"
+            },
+            "hostname" : "portal.sso.me-south-1.amazonaws.com"
+          },
+          "sa-east-1" : {
+            "credentialScope" : {
+              "region" : "sa-east-1"
+            },
+            "hostname" : "portal.sso.sa-east-1.amazonaws.com"
+          },
+          "us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "portal.sso.us-east-1.amazonaws.com"
+          },
+          "us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "hostname" : "portal.sso.us-east-2.amazonaws.com"
+          },
+          "us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "hostname" : "portal.sso.us-west-1.amazonaws.com"
+          },
+          "us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "hostname" : "portal.sso.us-west-2.amazonaws.com"
+          }
+        }
+      },
+      "private-networks" : {
+        "endpoints" : {
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-2" : { }
+        }
+      },
+      "profile" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "profile-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : { },
+          "eu-west-2" : { },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "profile-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "profile-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "profile-fips.us-west-2.amazonaws.com"
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "profile-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "profile-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "proton" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-2" : { }
+        }
+      },
+      "qbusiness" : {
+        "defaults" : {
+          "dnsSuffix" : "api.aws",
+          "variants" : [ {
+            "dnsSuffix" : "api.aws",
+            "hostname" : "{service}-fips.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "af-south-1" : {
+            "hostname" : "qbusiness.af-south-1.api.aws"
+          },
+          "ap-east-1" : {
+            "hostname" : "qbusiness.ap-east-1.api.aws"
+          },
+          "ap-northeast-1" : {
+            "hostname" : "qbusiness.ap-northeast-1.api.aws"
+          },
+          "ap-northeast-2" : {
+            "hostname" : "qbusiness.ap-northeast-2.api.aws"
+          },
+          "ap-northeast-3" : {
+            "hostname" : "qbusiness.ap-northeast-3.api.aws"
+          },
+          "ap-south-1" : {
+            "hostname" : "qbusiness.ap-south-1.api.aws"
+          },
+          "ap-south-2" : {
+            "hostname" : "qbusiness.ap-south-2.api.aws"
+          },
+          "ap-southeast-1" : {
+            "hostname" : "qbusiness.ap-southeast-1.api.aws"
+          },
+          "ap-southeast-2" : {
+            "hostname" : "qbusiness.ap-southeast-2.api.aws"
+          },
+          "ap-southeast-3" : {
+            "hostname" : "qbusiness.ap-southeast-3.api.aws"
+          },
+          "ap-southeast-4" : {
+            "hostname" : "qbusiness.ap-southeast-4.api.aws"
+          },
+          "ap-southeast-5" : {
+            "hostname" : "qbusiness.ap-southeast-5.api.aws"
+          },
+          "ap-southeast-7" : {
+            "hostname" : "qbusiness.ap-southeast-7.api.aws"
+          },
+          "ca-central-1" : {
+            "hostname" : "qbusiness.ca-central-1.api.aws"
+          },
+          "ca-west-1" : {
+            "hostname" : "qbusiness.ca-west-1.api.aws"
+          },
+          "eu-central-1" : {
+            "hostname" : "qbusiness.eu-central-1.api.aws"
+          },
+          "eu-central-2" : {
+            "hostname" : "qbusiness.eu-central-2.api.aws"
+          },
+          "eu-north-1" : {
+            "hostname" : "qbusiness.eu-north-1.api.aws"
+          },
+          "eu-south-1" : {
+            "hostname" : "qbusiness.eu-south-1.api.aws"
+          },
+          "eu-south-2" : {
+            "hostname" : "qbusiness.eu-south-2.api.aws"
+          },
+          "eu-west-1" : {
+            "hostname" : "qbusiness.eu-west-1.api.aws"
+          },
+          "eu-west-2" : {
+            "hostname" : "qbusiness.eu-west-2.api.aws"
+          },
+          "eu-west-3" : {
+            "hostname" : "qbusiness.eu-west-3.api.aws"
+          },
+          "il-central-1" : {
+            "hostname" : "qbusiness.il-central-1.api.aws"
+          },
+          "me-central-1" : {
+            "hostname" : "qbusiness.me-central-1.api.aws"
+          },
+          "me-south-1" : {
+            "hostname" : "qbusiness.me-south-1.api.aws"
+          },
+          "mx-central-1" : {
+            "hostname" : "qbusiness.mx-central-1.api.aws"
+          },
+          "sa-east-1" : {
+            "hostname" : "qbusiness.sa-east-1.api.aws"
+          },
+          "us-east-1" : {
+            "hostname" : "qbusiness.us-east-1.api.aws"
+          },
+          "us-east-2" : {
+            "hostname" : "qbusiness.us-east-2.api.aws"
+          },
+          "us-west-1" : {
+            "hostname" : "qbusiness.us-west-1.api.aws"
+          },
+          "us-west-2" : {
+            "hostname" : "qbusiness.us-west-2.api.aws"
+          }
+        }
+      },
+      "qldb" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "qldb-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "qldb-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "qldb-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "qldb-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "qldb-fips.us-west-2.amazonaws.com"
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "qldb-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "qldb-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "qldb-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "quicksight" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "sa-east-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-2" : { }
+        }
+      },
+      "ram" : {
+        "endpoints" : {
+          "af-south-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-east-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-2" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-3" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-2" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-3" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-4" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-5" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-7" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-central-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            }, {
+              "hostname" : "ram-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "ram-fips.ca-central-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            } ]
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            }, {
+              "hostname" : "ram-fips.ca-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "ram-fips.ca-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            } ]
+          },
+          "eu-central-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-2" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-north-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-2" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-3" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ram-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-ca-west-1" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ram-fips.ca-west-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ram-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "ram-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ram-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "ram-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-central-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-south-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "mx-central-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "sa-east-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            }, {
+              "hostname" : "ram-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "ram-fips.us-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            }, {
+              "hostname" : "ram-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "ram-fips.us-east-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            }, {
+              "hostname" : "ram-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "ram-fips.us-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            }, {
+              "hostname" : "ram-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "ram-fips.us-west-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            } ]
+          }
+        }
+      },
+      "rbin" : {
+        "endpoints" : {
+          "af-south-1" : {
+            "variants" : [ {
+              "hostname" : "rbin.af-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-east-1" : {
+            "variants" : [ {
+              "hostname" : "rbin.ap-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-1" : {
+            "variants" : [ {
+              "hostname" : "rbin.ap-northeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-2" : {
+            "variants" : [ {
+              "hostname" : "rbin.ap-northeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-3" : {
+            "variants" : [ {
+              "hostname" : "rbin.ap-northeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-1" : {
+            "variants" : [ {
+              "hostname" : "rbin.ap-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-2" : {
+            "variants" : [ {
+              "hostname" : "rbin.ap-south-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-1" : {
+            "variants" : [ {
+              "hostname" : "rbin.ap-southeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "variants" : [ {
+              "hostname" : "rbin.ap-southeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-3" : {
+            "variants" : [ {
+              "hostname" : "rbin.ap-southeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-4" : {
+            "variants" : [ {
+              "hostname" : "rbin.ap-southeast-4.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-5" : {
+            "variants" : [ {
+              "hostname" : "rbin.ap-southeast-5.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-7" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "rbin-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "rbin-fips.ca-central-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "rbin.ca-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "rbin-fips.ca-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "rbin-fips.ca-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "rbin.ca-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-1" : {
+            "variants" : [ {
+              "hostname" : "rbin.eu-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-2" : {
+            "variants" : [ {
+              "hostname" : "rbin.eu-central-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-north-1" : {
+            "variants" : [ {
+              "hostname" : "rbin.eu-north-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-1" : {
+            "variants" : [ {
+              "hostname" : "rbin.eu-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-2" : {
+            "variants" : [ {
+              "hostname" : "rbin.eu-south-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-1" : {
+            "variants" : [ {
+              "hostname" : "rbin.eu-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "variants" : [ {
+              "hostname" : "rbin.eu-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-3" : {
+            "variants" : [ {
+              "hostname" : "rbin.eu-west-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "rbin-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-ca-west-1" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "rbin-fips.ca-west-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "rbin-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "rbin-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "rbin-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "rbin-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : {
+            "variants" : [ {
+              "hostname" : "rbin.il-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-central-1" : {
+            "variants" : [ {
+              "hostname" : "rbin.me-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-south-1" : {
+            "variants" : [ {
+              "hostname" : "rbin.me-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "mx-central-1" : { },
+          "sa-east-1" : {
+            "variants" : [ {
+              "hostname" : "rbin.sa-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "rbin-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "rbin-fips.us-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "rbin.us-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "rbin-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "rbin-fips.us-east-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "rbin.us-east-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "rbin-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "rbin-fips.us-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "rbin.us-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "rbin-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "rbin-fips.us-west-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "rbin.us-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "rds" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ap-southeast-7" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "rds-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-central-1-fips" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "rds-fips.ca-central-1.amazonaws.com"
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "rds-fips.ca-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "rds-fips.ca-west-1.amazonaws.com"
+          },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "mx-central-1" : { },
+          "rds-fips.ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "rds-fips.ca-central-1.amazonaws.com"
+          },
+          "rds-fips.ca-west-1" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "rds-fips.ca-west-1.amazonaws.com"
+          },
+          "rds-fips.us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "rds-fips.us-east-1.amazonaws.com"
+          },
+          "rds-fips.us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "rds-fips.us-east-2.amazonaws.com"
+          },
+          "rds-fips.us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "rds-fips.us-west-1.amazonaws.com"
+          },
+          "rds-fips.us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "rds-fips.us-west-2.amazonaws.com"
+          },
+          "rds.ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "variants" : [ {
+              "hostname" : "rds-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "rds.ca-west-1" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "deprecated" : true,
+            "variants" : [ {
+              "hostname" : "rds-fips.ca-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "rds.us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "variants" : [ {
+              "hostname" : "rds-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "rds.us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "variants" : [ {
+              "hostname" : "rds-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "rds.us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "variants" : [ {
+              "hostname" : "rds-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "rds.us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "variants" : [ {
+              "hostname" : "rds-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "sslCommonName" : "{service}.{dnsSuffix}",
+            "variants" : [ {
+              "hostname" : "rds-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "rds-fips.us-east-1.amazonaws.com"
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "rds-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "rds-fips.us-east-2.amazonaws.com"
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "rds-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "rds-fips.us-west-1.amazonaws.com"
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "rds-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "rds-fips.us-west-2.amazonaws.com"
+          }
+        }
+      },
+      "rds-data" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "rds-data-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "rds-data-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "rds-data-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "rds-data-fips.us-west-2.amazonaws.com"
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "rds-data-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "rds-data-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "rds-data-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "rds-data-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "redshift" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ap-southeast-7" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "redshift-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "redshift-fips.ca-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "redshift-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-ca-west-1" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "redshift-fips.ca-west-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "redshift-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "redshift-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "redshift-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "redshift-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "mx-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "redshift-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "redshift-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "redshift-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "redshift-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "redshift-serverless" : {
+        "endpoints" : {
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-7" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "redshift-serverless-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "redshift-serverless-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "redshift-serverless-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "redshift-serverless-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "redshift-serverless-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "redshift-serverless-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "mx-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "redshift-serverless-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "redshift-serverless-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "redshift-serverless-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "redshift-serverless-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "rekognition" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "rekognition-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-central-1-fips" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "rekognition-fips.ca-central-1.amazonaws.com"
+          },
+          "eu-central-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "il-central-1" : { },
+          "rekognition-fips.ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "rekognition-fips.ca-central-1.amazonaws.com"
+          },
+          "rekognition-fips.us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "rekognition-fips.us-east-1.amazonaws.com"
+          },
+          "rekognition-fips.us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "rekognition-fips.us-east-2.amazonaws.com"
+          },
+          "rekognition-fips.us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "rekognition-fips.us-west-1.amazonaws.com"
+          },
+          "rekognition-fips.us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "rekognition-fips.us-west-2.amazonaws.com"
+          },
+          "rekognition.ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "variants" : [ {
+              "hostname" : "rekognition-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "rekognition.us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "variants" : [ {
+              "hostname" : "rekognition-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "rekognition.us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "variants" : [ {
+              "hostname" : "rekognition-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "rekognition.us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "variants" : [ {
+              "hostname" : "rekognition-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "rekognition.us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "variants" : [ {
+              "hostname" : "rekognition-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "rekognition-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "rekognition-fips.us-east-1.amazonaws.com"
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "rekognition-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "rekognition-fips.us-east-2.amazonaws.com"
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "rekognition-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "rekognition-fips.us-west-1.amazonaws.com"
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "rekognition-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "rekognition-fips.us-west-2.amazonaws.com"
+          }
+        }
+      },
+      "resiliencehub" : {
+        "endpoints" : {
+          "af-south-1" : {
+            "variants" : [ {
+              "hostname" : "resiliencehub.af-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-east-1" : {
+            "variants" : [ {
+              "hostname" : "resiliencehub.ap-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-1" : {
+            "variants" : [ {
+              "hostname" : "resiliencehub.ap-northeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-2" : {
+            "variants" : [ {
+              "hostname" : "resiliencehub.ap-northeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-1" : {
+            "variants" : [ {
+              "hostname" : "resiliencehub.ap-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-1" : {
+            "variants" : [ {
+              "hostname" : "resiliencehub.ap-southeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "variants" : [ {
+              "hostname" : "resiliencehub.ap-southeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "resiliencehub.ca-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-1" : {
+            "variants" : [ {
+              "hostname" : "resiliencehub.eu-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-north-1" : {
+            "variants" : [ {
+              "hostname" : "resiliencehub.eu-north-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-1" : {
+            "variants" : [ {
+              "hostname" : "resiliencehub.eu-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-1" : {
+            "variants" : [ {
+              "hostname" : "resiliencehub.eu-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "variants" : [ {
+              "hostname" : "resiliencehub.eu-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-3" : {
+            "variants" : [ {
+              "hostname" : "resiliencehub.eu-west-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-south-1" : {
+            "variants" : [ {
+              "hostname" : "resiliencehub.me-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "sa-east-1" : {
+            "variants" : [ {
+              "hostname" : "resiliencehub.sa-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "resiliencehub.us-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "resiliencehub.us-east-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "resiliencehub.us-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "resiliencehub.us-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "resource-explorer-2" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "resource-explorer-2-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "resource-explorer-2-fips.ca-central-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            } ]
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "resource-explorer-2-fips.ca-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "resource-explorer-2-fips.ca-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            } ]
+          },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "resource-explorer-2-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-ca-west-1" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "resource-explorer-2-fips.ca-west-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "resource-explorer-2-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "resource-explorer-2-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "resource-explorer-2-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "resource-explorer-2-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "resource-explorer-2-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "resource-explorer-2-fips.us-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "resource-explorer-2-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "resource-explorer-2-fips.us-east-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "resource-explorer-2-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "resource-explorer-2-fips.us-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "resource-explorer-2-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "resource-explorer-2-fips.us-west-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            } ]
+          }
+        }
+      },
+      "resource-groups" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ap-southeast-7" : { },
+          "ca-central-1" : { },
+          "ca-west-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "resource-groups-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "resource-groups-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "resource-groups-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "resource-groups-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "mx-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "resource-groups-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "resource-groups-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "resource-groups-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "resource-groups-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "robomaker" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-southeast-1" : { },
+          "eu-central-1" : { },
+          "eu-west-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-2" : { }
+        }
+      },
+      "rolesanywhere" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ap-southeast-7" : { },
+          "ca-central-1" : { },
+          "ca-west-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "rolesanywhere-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "rolesanywhere-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "rolesanywhere-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "rolesanywhere-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "mx-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "rolesanywhere-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "rolesanywhere-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "rolesanywhere-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "rolesanywhere-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "route53" : {
+        "endpoints" : {
+          "aws-global" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "route53.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "route53-fips.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "fips-aws-global" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "route53-fips.amazonaws.com"
+          }
+        },
+        "isRegionalized" : false,
+        "partitionEndpoint" : "aws-global"
+      },
+      "route53-recovery-control-config" : {
+        "endpoints" : {
+          "aws-global" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "hostname" : "route53-recovery-control-config.us-west-2.amazonaws.com"
+          }
+        }
+      },
+      "route53domains" : {
+        "endpoints" : {
+          "us-east-1" : { }
+        }
+      },
+      "route53profiles" : {
+        "endpoints" : {
+          "af-south-1" : {
+            "variants" : [ {
+              "hostname" : "route53profiles.af-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-east-1" : {
+            "variants" : [ {
+              "hostname" : "route53profiles.ap-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-1" : {
+            "variants" : [ {
+              "hostname" : "route53profiles.ap-northeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-2" : {
+            "variants" : [ {
+              "hostname" : "route53profiles.ap-northeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-3" : {
+            "variants" : [ {
+              "hostname" : "route53profiles.ap-northeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-1" : {
+            "variants" : [ {
+              "hostname" : "route53profiles.ap-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-2" : {
+            "variants" : [ {
+              "hostname" : "route53profiles.ap-south-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-1" : {
+            "variants" : [ {
+              "hostname" : "route53profiles.ap-southeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "variants" : [ {
+              "hostname" : "route53profiles.ap-southeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-3" : {
+            "variants" : [ {
+              "hostname" : "route53profiles.ap-southeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-4" : {
+            "variants" : [ {
+              "hostname" : "route53profiles.ap-southeast-4.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "route53profiles-fips.ca-central-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "route53profiles.ca-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "route53profiles-fips.ca-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "route53profiles.ca-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-1" : {
+            "variants" : [ {
+              "hostname" : "route53profiles.eu-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-2" : {
+            "variants" : [ {
+              "hostname" : "route53profiles.eu-central-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-north-1" : {
+            "variants" : [ {
+              "hostname" : "route53profiles.eu-north-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-1" : {
+            "variants" : [ {
+              "hostname" : "route53profiles.eu-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-2" : {
+            "variants" : [ {
+              "hostname" : "route53profiles.eu-south-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-1" : {
+            "variants" : [ {
+              "hostname" : "route53profiles.eu-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "variants" : [ {
+              "hostname" : "route53profiles.eu-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-3" : {
+            "variants" : [ {
+              "hostname" : "route53profiles.eu-west-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "il-central-1" : {
+            "variants" : [ {
+              "hostname" : "route53profiles.il-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-central-1" : {
+            "variants" : [ {
+              "hostname" : "route53profiles.me-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-south-1" : {
+            "variants" : [ {
+              "hostname" : "route53profiles.me-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "sa-east-1" : {
+            "variants" : [ {
+              "hostname" : "route53profiles.sa-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "route53profiles-fips.us-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "route53profiles.us-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "route53profiles-fips.us-east-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "route53profiles.us-east-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "route53profiles-fips.us-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "route53profiles.us-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "route53profiles-fips.us-west-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "route53profiles.us-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "route53resolver" : {
+        "defaults" : {
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ap-southeast-7" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "route53resolver-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-central-1-fips" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "route53resolver-fips.ca-central-1.amazonaws.com"
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "route53resolver-fips.ca-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "route53resolver-fips.ca-west-1.amazonaws.com"
+          },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "mx-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "route53resolver-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "route53resolver-fips.us-east-1.amazonaws.com"
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "route53resolver-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "route53resolver-fips.us-east-2.amazonaws.com"
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "route53resolver-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "route53resolver-fips.us-west-1.amazonaws.com"
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "route53resolver-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "route53resolver-fips.us-west-2.amazonaws.com"
+          }
+        }
+      },
+      "rum" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "runtime-v2-lex" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "us-east-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "runtime.lex" : {
+        "defaults" : {
+          "credentialScope" : {
+            "service" : "lex"
+          },
+          "variants" : [ {
+            "hostname" : "runtime-fips.lex.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "eu-central-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "runtime-fips.lex.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "runtime-fips.lex.us-east-1.amazonaws.com"
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "runtime-fips.lex.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "runtime-fips.lex.us-west-2.amazonaws.com"
+          }
+        }
+      },
+      "runtime.sagemaker" : {
+        "defaults" : {
+          "variants" : [ {
+            "hostname" : "runtime-fips.sagemaker.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ca-central-1" : { },
+          "ca-west-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "runtime-fips.sagemaker.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "runtime-fips.sagemaker.us-east-1.amazonaws.com"
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "runtime-fips.sagemaker.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "runtime-fips.sagemaker.us-east-2.amazonaws.com"
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "runtime-fips.sagemaker.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "runtime-fips.sagemaker.us-west-1.amazonaws.com"
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "runtime-fips.sagemaker.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "runtime-fips.sagemaker.us-west-2.amazonaws.com"
+          }
+        }
+      },
+      "s3" : {
+        "defaults" : {
+          "protocols" : [ "http", "https" ],
+          "signatureVersions" : [ "s3v4" ],
+          "variants" : [ {
+            "dnsSuffix" : "amazonaws.com",
+            "hostname" : "{service}-fips.dualstack.{region}.{dnsSuffix}",
+            "tags" : [ "dualstack", "fips" ]
+          }, {
+            "dnsSuffix" : "amazonaws.com",
+            "hostname" : "{service}.dualstack.{region}.{dnsSuffix}",
+            "tags" : [ "dualstack" ]
+          } ]
+        },
+        "endpoints" : {
+          "af-south-1" : {
+            "variants" : [ {
+              "hostname" : "s3.dualstack.af-south-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-east-1" : {
+            "variants" : [ {
+              "hostname" : "s3.dualstack.ap-east-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-1" : {
+            "hostname" : "s3.ap-northeast-1.amazonaws.com",
+            "signatureVersions" : [ "s3", "s3v4" ],
+            "variants" : [ {
+              "hostname" : "s3.dualstack.ap-northeast-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-2" : {
+            "variants" : [ {
+              "hostname" : "s3.dualstack.ap-northeast-2.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-3" : {
+            "variants" : [ {
+              "hostname" : "s3.dualstack.ap-northeast-3.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-1" : {
+            "variants" : [ {
+              "hostname" : "s3.dualstack.ap-south-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-2" : {
+            "variants" : [ {
+              "hostname" : "s3.dualstack.ap-south-2.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-1" : {
+            "hostname" : "s3.ap-southeast-1.amazonaws.com",
+            "signatureVersions" : [ "s3", "s3v4" ],
+            "variants" : [ {
+              "hostname" : "s3.dualstack.ap-southeast-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "hostname" : "s3.ap-southeast-2.amazonaws.com",
+            "signatureVersions" : [ "s3", "s3v4" ],
+            "variants" : [ {
+              "hostname" : "s3.dualstack.ap-southeast-2.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-3" : {
+            "variants" : [ {
+              "hostname" : "s3.dualstack.ap-southeast-3.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-4" : {
+            "variants" : [ {
+              "hostname" : "s3.dualstack.ap-southeast-4.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-5" : {
+            "variants" : [ {
+              "hostname" : "s3.dualstack.ap-southeast-5.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-7" : {
+            "variants" : [ {
+              "hostname" : "s3.dualstack.ap-southeast-7.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "aws-global" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "s3.amazonaws.com",
+            "signatureVersions" : [ "s3", "s3v4" ]
+          },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "s3-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "s3-fips.dualstack.ca-central-1.amazonaws.com",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "s3.dualstack.ca-central-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "s3-fips.ca-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "s3-fips.dualstack.ca-west-1.amazonaws.com",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "s3.dualstack.ca-west-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-1" : {
+            "variants" : [ {
+              "hostname" : "s3.dualstack.eu-central-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-2" : {
+            "variants" : [ {
+              "hostname" : "s3.dualstack.eu-central-2.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-north-1" : {
+            "variants" : [ {
+              "hostname" : "s3.dualstack.eu-north-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-1" : {
+            "variants" : [ {
+              "hostname" : "s3.dualstack.eu-south-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-2" : {
+            "variants" : [ {
+              "hostname" : "s3.dualstack.eu-south-2.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-1" : {
+            "hostname" : "s3.eu-west-1.amazonaws.com",
+            "signatureVersions" : [ "s3", "s3v4" ],
+            "variants" : [ {
+              "hostname" : "s3.dualstack.eu-west-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "variants" : [ {
+              "hostname" : "s3.dualstack.eu-west-2.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-3" : {
+            "variants" : [ {
+              "hostname" : "s3.dualstack.eu-west-3.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "s3-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-ca-west-1" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "s3-fips.ca-west-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "s3-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "s3-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "s3-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "s3-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : {
+            "variants" : [ {
+              "hostname" : "s3.dualstack.il-central-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-central-1" : {
+            "variants" : [ {
+              "hostname" : "s3.dualstack.me-central-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-south-1" : {
+            "variants" : [ {
+              "hostname" : "s3.dualstack.me-south-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "mx-central-1" : {
+            "variants" : [ {
+              "hostname" : "s3.dualstack.mx-central-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "s3-external-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "s3-external-1.amazonaws.com",
+            "signatureVersions" : [ "s3", "s3v4" ]
+          },
+          "sa-east-1" : {
+            "hostname" : "s3.sa-east-1.amazonaws.com",
+            "signatureVersions" : [ "s3", "s3v4" ],
+            "variants" : [ {
+              "hostname" : "s3.dualstack.sa-east-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1" : {
+            "hostname" : "s3.us-east-1.amazonaws.com",
+            "signatureVersions" : [ "s3", "s3v4" ],
+            "variants" : [ {
+              "hostname" : "s3-fips.dualstack.us-east-1.amazonaws.com",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "s3-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "s3.dualstack.us-east-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "s3-fips.dualstack.us-east-2.amazonaws.com",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "s3-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "s3.dualstack.us-east-2.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-1" : {
+            "hostname" : "s3.us-west-1.amazonaws.com",
+            "signatureVersions" : [ "s3", "s3v4" ],
+            "variants" : [ {
+              "hostname" : "s3-fips.dualstack.us-west-1.amazonaws.com",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "s3-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "s3.dualstack.us-west-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-2" : {
+            "hostname" : "s3.us-west-2.amazonaws.com",
+            "signatureVersions" : [ "s3", "s3v4" ],
+            "variants" : [ {
+              "hostname" : "s3-fips.dualstack.us-west-2.amazonaws.com",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "s3-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "s3.dualstack.us-west-2.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        },
+        "isRegionalized" : true,
+        "partitionEndpoint" : "aws-global"
+      },
+      "s3-control" : {
+        "defaults" : {
+          "protocols" : [ "https" ],
+          "signatureVersions" : [ "s3v4" ],
+          "variants" : [ {
+            "dnsSuffix" : "amazonaws.com",
+            "hostname" : "{service}-fips.dualstack.{region}.{dnsSuffix}",
+            "tags" : [ "dualstack", "fips" ]
+          }, {
+            "dnsSuffix" : "amazonaws.com",
+            "hostname" : "{service}.dualstack.{region}.{dnsSuffix}",
+            "tags" : [ "dualstack" ]
+          } ]
+        },
+        "endpoints" : {
+          "af-south-1" : {
+            "credentialScope" : {
+              "region" : "af-south-1"
+            },
+            "hostname" : "s3-control.af-south-1.amazonaws.com",
+            "signatureVersions" : [ "s3v4" ],
+            "variants" : [ {
+              "hostname" : "s3-control.dualstack.af-south-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-east-1" : {
+            "credentialScope" : {
+              "region" : "ap-east-1"
+            },
+            "hostname" : "s3-control.ap-east-1.amazonaws.com",
+            "signatureVersions" : [ "s3v4" ],
+            "variants" : [ {
+              "hostname" : "s3-control.dualstack.ap-east-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-1" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-1"
+            },
+            "hostname" : "s3-control.ap-northeast-1.amazonaws.com",
+            "signatureVersions" : [ "s3v4" ],
+            "variants" : [ {
+              "hostname" : "s3-control.dualstack.ap-northeast-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-2" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-2"
+            },
+            "hostname" : "s3-control.ap-northeast-2.amazonaws.com",
+            "signatureVersions" : [ "s3v4" ],
+            "variants" : [ {
+              "hostname" : "s3-control.dualstack.ap-northeast-2.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-3" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-3"
+            },
+            "hostname" : "s3-control.ap-northeast-3.amazonaws.com",
+            "signatureVersions" : [ "s3v4" ],
+            "variants" : [ {
+              "hostname" : "s3-control.dualstack.ap-northeast-3.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-1" : {
+            "credentialScope" : {
+              "region" : "ap-south-1"
+            },
+            "hostname" : "s3-control.ap-south-1.amazonaws.com",
+            "signatureVersions" : [ "s3v4" ],
+            "variants" : [ {
+              "hostname" : "s3-control.dualstack.ap-south-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-2" : {
+            "credentialScope" : {
+              "region" : "ap-south-2"
+            },
+            "hostname" : "s3-control.ap-south-2.amazonaws.com",
+            "signatureVersions" : [ "s3v4" ],
+            "variants" : [ {
+              "hostname" : "s3-control.dualstack.ap-south-2.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-1" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-1"
+            },
+            "hostname" : "s3-control.ap-southeast-1.amazonaws.com",
+            "signatureVersions" : [ "s3v4" ],
+            "variants" : [ {
+              "hostname" : "s3-control.dualstack.ap-southeast-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-2"
+            },
+            "hostname" : "s3-control.ap-southeast-2.amazonaws.com",
+            "signatureVersions" : [ "s3v4" ],
+            "variants" : [ {
+              "hostname" : "s3-control.dualstack.ap-southeast-2.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-3" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-3"
+            },
+            "hostname" : "s3-control.ap-southeast-3.amazonaws.com",
+            "signatureVersions" : [ "s3v4" ],
+            "variants" : [ {
+              "hostname" : "s3-control.dualstack.ap-southeast-3.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-4" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-4"
+            },
+            "hostname" : "s3-control.ap-southeast-4.amazonaws.com",
+            "signatureVersions" : [ "s3v4" ],
+            "variants" : [ {
+              "hostname" : "s3-control.dualstack.ap-southeast-4.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "hostname" : "s3-control.ca-central-1.amazonaws.com",
+            "signatureVersions" : [ "s3v4" ],
+            "variants" : [ {
+              "hostname" : "s3-control-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "s3-control-fips.dualstack.ca-central-1.amazonaws.com",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "s3-control.dualstack.ca-central-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-central-1-fips" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "s3-control-fips.ca-central-1.amazonaws.com",
+            "signatureVersions" : [ "s3v4" ]
+          },
+          "ca-west-1" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "hostname" : "s3-control.ca-west-1.amazonaws.com",
+            "signatureVersions" : [ "s3v4" ],
+            "variants" : [ {
+              "hostname" : "s3-control-fips.ca-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "s3-control-fips.dualstack.ca-west-1.amazonaws.com",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "s3-control.dualstack.ca-west-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "s3-control-fips.ca-west-1.amazonaws.com",
+            "signatureVersions" : [ "s3v4" ]
+          },
+          "eu-central-1" : {
+            "credentialScope" : {
+              "region" : "eu-central-1"
+            },
+            "hostname" : "s3-control.eu-central-1.amazonaws.com",
+            "signatureVersions" : [ "s3v4" ],
+            "variants" : [ {
+              "hostname" : "s3-control.dualstack.eu-central-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-2" : {
+            "credentialScope" : {
+              "region" : "eu-central-2"
+            },
+            "hostname" : "s3-control.eu-central-2.amazonaws.com",
+            "signatureVersions" : [ "s3v4" ],
+            "variants" : [ {
+              "hostname" : "s3-control.dualstack.eu-central-2.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-north-1" : {
+            "credentialScope" : {
+              "region" : "eu-north-1"
+            },
+            "hostname" : "s3-control.eu-north-1.amazonaws.com",
+            "signatureVersions" : [ "s3v4" ],
+            "variants" : [ {
+              "hostname" : "s3-control.dualstack.eu-north-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-1" : {
+            "credentialScope" : {
+              "region" : "eu-south-1"
+            },
+            "hostname" : "s3-control.eu-south-1.amazonaws.com",
+            "signatureVersions" : [ "s3v4" ],
+            "variants" : [ {
+              "hostname" : "s3-control.dualstack.eu-south-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-2" : {
+            "credentialScope" : {
+              "region" : "eu-south-2"
+            },
+            "hostname" : "s3-control.eu-south-2.amazonaws.com",
+            "signatureVersions" : [ "s3v4" ],
+            "variants" : [ {
+              "hostname" : "s3-control.dualstack.eu-south-2.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-1" : {
+            "credentialScope" : {
+              "region" : "eu-west-1"
+            },
+            "hostname" : "s3-control.eu-west-1.amazonaws.com",
+            "signatureVersions" : [ "s3v4" ],
+            "variants" : [ {
+              "hostname" : "s3-control.dualstack.eu-west-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "credentialScope" : {
+              "region" : "eu-west-2"
+            },
+            "hostname" : "s3-control.eu-west-2.amazonaws.com",
+            "signatureVersions" : [ "s3v4" ],
+            "variants" : [ {
+              "hostname" : "s3-control.dualstack.eu-west-2.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-3" : {
+            "credentialScope" : {
+              "region" : "eu-west-3"
+            },
+            "hostname" : "s3-control.eu-west-3.amazonaws.com",
+            "signatureVersions" : [ "s3v4" ],
+            "variants" : [ {
+              "hostname" : "s3-control.dualstack.eu-west-3.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "il-central-1" : {
+            "credentialScope" : {
+              "region" : "il-central-1"
+            },
+            "hostname" : "s3-control.il-central-1.amazonaws.com",
+            "signatureVersions" : [ "s3v4" ],
+            "variants" : [ {
+              "hostname" : "s3-control.dualstack.il-central-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-central-1" : {
+            "credentialScope" : {
+              "region" : "me-central-1"
+            },
+            "hostname" : "s3-control.me-central-1.amazonaws.com",
+            "signatureVersions" : [ "s3v4" ],
+            "variants" : [ {
+              "hostname" : "s3-control.dualstack.me-central-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-south-1" : {
+            "credentialScope" : {
+              "region" : "me-south-1"
+            },
+            "hostname" : "s3-control.me-south-1.amazonaws.com",
+            "signatureVersions" : [ "s3v4" ],
+            "variants" : [ {
+              "hostname" : "s3-control.dualstack.me-south-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "sa-east-1" : {
+            "credentialScope" : {
+              "region" : "sa-east-1"
+            },
+            "hostname" : "s3-control.sa-east-1.amazonaws.com",
+            "signatureVersions" : [ "s3v4" ],
+            "variants" : [ {
+              "hostname" : "s3-control.dualstack.sa-east-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "s3-control.us-east-1.amazonaws.com",
+            "signatureVersions" : [ "s3v4" ],
+            "variants" : [ {
+              "hostname" : "s3-control-fips.dualstack.us-east-1.amazonaws.com",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "s3-control-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "s3-control.dualstack.us-east-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "s3-control-fips.us-east-1.amazonaws.com",
+            "signatureVersions" : [ "s3v4" ]
+          },
+          "us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "hostname" : "s3-control.us-east-2.amazonaws.com",
+            "signatureVersions" : [ "s3v4" ],
+            "variants" : [ {
+              "hostname" : "s3-control-fips.dualstack.us-east-2.amazonaws.com",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "s3-control-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "s3-control.dualstack.us-east-2.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "s3-control-fips.us-east-2.amazonaws.com",
+            "signatureVersions" : [ "s3v4" ]
+          },
+          "us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "hostname" : "s3-control.us-west-1.amazonaws.com",
+            "signatureVersions" : [ "s3v4" ],
+            "variants" : [ {
+              "hostname" : "s3-control-fips.dualstack.us-west-1.amazonaws.com",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "s3-control-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "s3-control.dualstack.us-west-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "s3-control-fips.us-west-1.amazonaws.com",
+            "signatureVersions" : [ "s3v4" ]
+          },
+          "us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "hostname" : "s3-control.us-west-2.amazonaws.com",
+            "signatureVersions" : [ "s3v4" ],
+            "variants" : [ {
+              "hostname" : "s3-control-fips.dualstack.us-west-2.amazonaws.com",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "s3-control-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "s3-control.dualstack.us-west-2.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "s3-control-fips.us-west-2.amazonaws.com",
+            "signatureVersions" : [ "s3v4" ]
+          }
+        }
+      },
+      "s3-outposts" : {
+        "endpoints" : {
+          "af-south-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-east-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-2" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-3" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-3" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-central-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            }, {
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-north-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-3" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "fips-ca-central-1" : {
+            "deprecated" : true
+          },
+          "fips-us-east-1" : {
+            "deprecated" : true
+          },
+          "fips-us-east-2" : {
+            "deprecated" : true
+          },
+          "fips-us-west-1" : {
+            "deprecated" : true
+          },
+          "fips-us-west-2" : {
+            "deprecated" : true
+          },
+          "il-central-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-south-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "sa-east-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            }, {
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            }, {
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            }, {
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            }, {
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "sagemaker-geospatial" : {
+        "endpoints" : {
+          "us-west-2" : { }
+        }
+      },
+      "savingsplans" : {
+        "endpoints" : {
+          "aws-global" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "savingsplans.amazonaws.com"
+          }
+        },
+        "isRegionalized" : false,
+        "partitionEndpoint" : "aws-global"
+      },
+      "scheduler" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "schemas" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "sdb" : {
+        "defaults" : {
+          "protocols" : [ "http", "https" ],
+          "signatureVersions" : [ "v2" ]
+        },
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "eu-west-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "hostname" : "sdb.amazonaws.com"
+          },
+          "us-west-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "secretsmanager" : {
+        "endpoints" : {
+          "af-south-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-east-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-2" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-3" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-2" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-3" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-4" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-5" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-7" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-central-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            }, {
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-central-1-fips" : {
+            "deprecated" : true
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            }, {
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-west-1-fips" : {
+            "deprecated" : true
+          },
+          "eu-central-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-2" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-north-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-2" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-3" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "il-central-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-central-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-south-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "mx-central-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "sa-east-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            }, {
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-1-fips" : {
+            "deprecated" : true
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            }, {
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2-fips" : {
+            "deprecated" : true
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            }, {
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1-fips" : {
+            "deprecated" : true
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            }, {
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2-fips" : {
+            "deprecated" : true
+          }
+        }
+      },
+      "securityhub" : {
+        "endpoints" : {
+          "af-south-1" : {
+            "variants" : [ {
+              "hostname" : "securityhub.af-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-east-1" : {
+            "variants" : [ {
+              "hostname" : "securityhub.ap-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-1" : {
+            "variants" : [ {
+              "hostname" : "securityhub.ap-northeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-2" : {
+            "variants" : [ {
+              "hostname" : "securityhub.ap-northeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-3" : {
+            "variants" : [ {
+              "hostname" : "securityhub.ap-northeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-1" : {
+            "variants" : [ {
+              "hostname" : "securityhub.ap-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-2" : {
+            "variants" : [ {
+              "hostname" : "securityhub.ap-south-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-1" : {
+            "variants" : [ {
+              "hostname" : "securityhub.ap-southeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "variants" : [ {
+              "hostname" : "securityhub.ap-southeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-3" : {
+            "variants" : [ {
+              "hostname" : "securityhub.ap-southeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-4" : {
+            "variants" : [ {
+              "hostname" : "securityhub.ap-southeast-4.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-5" : {
+            "variants" : [ {
+              "hostname" : "securityhub.ap-southeast-5.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-7" : {
+            "variants" : [ {
+              "hostname" : "securityhub.ap-southeast-7.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "securityhub.ca-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "securityhub.ca-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-1" : {
+            "variants" : [ {
+              "hostname" : "securityhub.eu-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-2" : {
+            "variants" : [ {
+              "hostname" : "securityhub.eu-central-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-north-1" : {
+            "variants" : [ {
+              "hostname" : "securityhub.eu-north-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-1" : {
+            "variants" : [ {
+              "hostname" : "securityhub.eu-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-2" : {
+            "variants" : [ {
+              "hostname" : "securityhub.eu-south-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-1" : {
+            "variants" : [ {
+              "hostname" : "securityhub.eu-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "variants" : [ {
+              "hostname" : "securityhub.eu-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-3" : {
+            "variants" : [ {
+              "hostname" : "securityhub.eu-west-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "securityhub-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "securityhub-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "securityhub-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "securityhub-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : {
+            "variants" : [ {
+              "hostname" : "securityhub.il-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-central-1" : {
+            "variants" : [ {
+              "hostname" : "securityhub.me-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-south-1" : {
+            "variants" : [ {
+              "hostname" : "securityhub.me-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "mx-central-1" : {
+            "variants" : [ {
+              "hostname" : "securityhub.mx-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "sa-east-1" : {
+            "variants" : [ {
+              "hostname" : "securityhub.sa-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "securityhub-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "securityhub.us-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "securityhub-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "securityhub.us-east-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "securityhub-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "securityhub.us-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "securityhub-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "securityhub.us-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "securitylake" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "securitylake-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "securitylake-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "securitylake-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "securitylake-fips.us-west-2.amazonaws.com"
+          },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "securitylake-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "securitylake-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "securitylake-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "securitylake-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "serverlessrepo" : {
+        "defaults" : {
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "ap-east-1" : {
+            "protocols" : [ "https" ]
+          },
+          "ap-northeast-1" : {
+            "protocols" : [ "https" ]
+          },
+          "ap-northeast-2" : {
+            "protocols" : [ "https" ]
+          },
+          "ap-south-1" : {
+            "protocols" : [ "https" ]
+          },
+          "ap-southeast-1" : {
+            "protocols" : [ "https" ]
+          },
+          "ap-southeast-2" : {
+            "protocols" : [ "https" ]
+          },
+          "ca-central-1" : {
+            "protocols" : [ "https" ],
+            "variants" : [ {
+              "hostname" : "serverlessrepo-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-central-1-fips" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "serverlessrepo-fips.ca-central-1.amazonaws.com"
+          },
+          "eu-central-1" : {
+            "protocols" : [ "https" ]
+          },
+          "eu-north-1" : {
+            "protocols" : [ "https" ]
+          },
+          "eu-west-1" : {
+            "protocols" : [ "https" ]
+          },
+          "eu-west-2" : {
+            "protocols" : [ "https" ]
+          },
+          "eu-west-3" : {
+            "protocols" : [ "https" ]
+          },
+          "me-south-1" : {
+            "protocols" : [ "https" ]
+          },
+          "sa-east-1" : {
+            "protocols" : [ "https" ]
+          },
+          "us-east-1" : {
+            "protocols" : [ "https" ],
+            "variants" : [ {
+              "hostname" : "serverlessrepo-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "serverlessrepo-fips.us-east-1.amazonaws.com"
+          },
+          "us-east-2" : {
+            "protocols" : [ "https" ],
+            "variants" : [ {
+              "hostname" : "serverlessrepo-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "serverlessrepo-fips.us-east-2.amazonaws.com"
+          },
+          "us-west-1" : {
+            "protocols" : [ "https" ],
+            "variants" : [ {
+              "hostname" : "serverlessrepo-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "serverlessrepo-fips.us-west-1.amazonaws.com"
+          },
+          "us-west-2" : {
+            "protocols" : [ "https" ],
+            "variants" : [ {
+              "hostname" : "serverlessrepo-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "serverlessrepo-fips.us-west-2.amazonaws.com"
+          }
+        }
+      },
+      "servicecatalog" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "servicecatalog-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "servicecatalog-fips.us-east-1.amazonaws.com"
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "servicecatalog-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "servicecatalog-fips.us-east-2.amazonaws.com"
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "servicecatalog-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "servicecatalog-fips.us-west-1.amazonaws.com"
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "servicecatalog-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "servicecatalog-fips.us-west-2.amazonaws.com"
+          }
+        }
+      },
+      "servicecatalog-appregistry" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "servicecatalog-appregistry-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-west-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "servicecatalog-appregistry-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "servicecatalog-appregistry-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "servicecatalog-appregistry-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "servicecatalog-appregistry-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "servicecatalog-appregistry-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "servicecatalog-appregistry-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "servicecatalog-appregistry-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "servicecatalog-appregistry-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "servicecatalog-appregistry-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "servicediscovery" : {
+        "endpoints" : {
+          "af-south-1" : {
+            "variants" : [ {
+              "hostname" : "servicediscovery.af-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-east-1" : {
+            "variants" : [ {
+              "hostname" : "servicediscovery.ap-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-1" : {
+            "variants" : [ {
+              "hostname" : "servicediscovery.ap-northeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-2" : {
+            "variants" : [ {
+              "hostname" : "servicediscovery.ap-northeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-3" : {
+            "variants" : [ {
+              "hostname" : "servicediscovery.ap-northeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-1" : {
+            "variants" : [ {
+              "hostname" : "servicediscovery.ap-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-2" : {
+            "variants" : [ {
+              "hostname" : "servicediscovery.ap-south-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-1" : {
+            "variants" : [ {
+              "hostname" : "servicediscovery.ap-southeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "variants" : [ {
+              "hostname" : "servicediscovery.ap-southeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-3" : {
+            "variants" : [ {
+              "hostname" : "servicediscovery.ap-southeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-4" : {
+            "variants" : [ {
+              "hostname" : "servicediscovery.ap-southeast-4.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-5" : {
+            "variants" : [ {
+              "hostname" : "servicediscovery.ap-southeast-5.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-7" : {
+            "variants" : [ {
+              "hostname" : "servicediscovery.ap-southeast-7.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "servicediscovery-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "servicediscovery-fips.ca-central-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "servicediscovery.ca-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-central-1-fips" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "servicediscovery-fips.ca-central-1.amazonaws.com"
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "servicediscovery-fips.ca-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "servicediscovery-fips.ca-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "servicediscovery.ca-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "servicediscovery-fips.ca-west-1.amazonaws.com"
+          },
+          "eu-central-1" : {
+            "variants" : [ {
+              "hostname" : "servicediscovery.eu-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-2" : {
+            "variants" : [ {
+              "hostname" : "servicediscovery.eu-central-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-north-1" : {
+            "variants" : [ {
+              "hostname" : "servicediscovery.eu-north-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-1" : {
+            "variants" : [ {
+              "hostname" : "servicediscovery.eu-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-2" : {
+            "variants" : [ {
+              "hostname" : "servicediscovery.eu-south-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-1" : {
+            "variants" : [ {
+              "hostname" : "servicediscovery.eu-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "variants" : [ {
+              "hostname" : "servicediscovery.eu-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-3" : {
+            "variants" : [ {
+              "hostname" : "servicediscovery.eu-west-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "il-central-1" : {
+            "variants" : [ {
+              "hostname" : "servicediscovery.il-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-central-1" : {
+            "variants" : [ {
+              "hostname" : "servicediscovery.me-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-south-1" : {
+            "variants" : [ {
+              "hostname" : "servicediscovery.me-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "mx-central-1" : {
+            "variants" : [ {
+              "hostname" : "servicediscovery.mx-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "sa-east-1" : {
+            "variants" : [ {
+              "hostname" : "servicediscovery.sa-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "servicediscovery-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "servicediscovery-fips.us-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "servicediscovery.us-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "servicediscovery-fips.us-east-1.amazonaws.com"
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "servicediscovery-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "servicediscovery-fips.us-east-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "servicediscovery.us-east-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "servicediscovery-fips.us-east-2.amazonaws.com"
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "servicediscovery-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "servicediscovery-fips.us-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "servicediscovery.us-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "servicediscovery-fips.us-west-1.amazonaws.com"
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "servicediscovery-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "servicediscovery-fips.us-west-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "servicediscovery.us-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "servicediscovery-fips.us-west-2.amazonaws.com"
+          }
+        }
+      },
+      "servicequotas" : {
+        "defaults" : {
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ap-southeast-7" : { },
+          "ca-central-1" : { },
+          "ca-west-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "mx-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "session.qldb" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "session.qldb-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "session.qldb-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "session.qldb-fips.us-west-2.amazonaws.com"
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "session.qldb-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "session.qldb-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "session.qldb-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "shield" : {
+        "defaults" : {
+          "protocols" : [ "https" ],
+          "sslCommonName" : "shield.us-east-1.amazonaws.com"
+        },
+        "endpoints" : {
+          "aws-global" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "shield.us-east-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "shield-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "fips-aws-global" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "shield-fips.us-east-1.amazonaws.com"
+          }
+        },
+        "isRegionalized" : false,
+        "partitionEndpoint" : "aws-global"
+      },
+      "signer" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "signer-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "signer-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "signer-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "signer-fips.us-west-2.amazonaws.com"
+          },
+          "fips-verification-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "verification.signer-fips.us-east-1.amazonaws.com"
+          },
+          "fips-verification-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "hostname" : "verification.signer-fips.us-east-2.amazonaws.com"
+          },
+          "fips-verification-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "hostname" : "verification.signer-fips.us-west-1.amazonaws.com"
+          },
+          "fips-verification-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "hostname" : "verification.signer-fips.us-west-2.amazonaws.com"
+          },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "signer-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "signer-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "signer-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "signer-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "verification-af-south-1" : {
+            "credentialScope" : {
+              "region" : "af-south-1"
+            },
+            "hostname" : "verification.signer.af-south-1.amazonaws.com"
+          },
+          "verification-ap-east-1" : {
+            "credentialScope" : {
+              "region" : "ap-east-1"
+            },
+            "hostname" : "verification.signer.ap-east-1.amazonaws.com"
+          },
+          "verification-ap-northeast-1" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-1"
+            },
+            "hostname" : "verification.signer.ap-northeast-1.amazonaws.com"
+          },
+          "verification-ap-northeast-2" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-2"
+            },
+            "hostname" : "verification.signer.ap-northeast-2.amazonaws.com"
+          },
+          "verification-ap-south-1" : {
+            "credentialScope" : {
+              "region" : "ap-south-1"
+            },
+            "hostname" : "verification.signer.ap-south-1.amazonaws.com"
+          },
+          "verification-ap-southeast-1" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-1"
+            },
+            "hostname" : "verification.signer.ap-southeast-1.amazonaws.com"
+          },
+          "verification-ap-southeast-2" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-2"
+            },
+            "hostname" : "verification.signer.ap-southeast-2.amazonaws.com"
+          },
+          "verification-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "hostname" : "verification.signer.ca-central-1.amazonaws.com"
+          },
+          "verification-eu-central-1" : {
+            "credentialScope" : {
+              "region" : "eu-central-1"
+            },
+            "hostname" : "verification.signer.eu-central-1.amazonaws.com"
+          },
+          "verification-eu-north-1" : {
+            "credentialScope" : {
+              "region" : "eu-north-1"
+            },
+            "hostname" : "verification.signer.eu-north-1.amazonaws.com"
+          },
+          "verification-eu-south-1" : {
+            "credentialScope" : {
+              "region" : "eu-south-1"
+            },
+            "hostname" : "verification.signer.eu-south-1.amazonaws.com"
+          },
+          "verification-eu-west-1" : {
+            "credentialScope" : {
+              "region" : "eu-west-1"
+            },
+            "hostname" : "verification.signer.eu-west-1.amazonaws.com"
+          },
+          "verification-eu-west-2" : {
+            "credentialScope" : {
+              "region" : "eu-west-2"
+            },
+            "hostname" : "verification.signer.eu-west-2.amazonaws.com"
+          },
+          "verification-eu-west-3" : {
+            "credentialScope" : {
+              "region" : "eu-west-3"
+            },
+            "hostname" : "verification.signer.eu-west-3.amazonaws.com"
+          },
+          "verification-me-south-1" : {
+            "credentialScope" : {
+              "region" : "me-south-1"
+            },
+            "hostname" : "verification.signer.me-south-1.amazonaws.com"
+          },
+          "verification-sa-east-1" : {
+            "credentialScope" : {
+              "region" : "sa-east-1"
+            },
+            "hostname" : "verification.signer.sa-east-1.amazonaws.com"
+          },
+          "verification-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "verification.signer.us-east-1.amazonaws.com"
+          },
+          "verification-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "hostname" : "verification.signer.us-east-2.amazonaws.com"
+          },
+          "verification-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "hostname" : "verification.signer.us-west-1.amazonaws.com"
+          },
+          "verification-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "hostname" : "verification.signer.us-west-2.amazonaws.com"
+          }
+        }
+      },
+      "simspaceweaver" : {
+        "endpoints" : {
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-west-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-2" : { }
+        }
+      },
+      "sms" : {
+        "endpoints" : {
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "sms-fips.us-west-2.amazonaws.com"
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "sms-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "sms-voice" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "sms-voice-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "sms-voice-fips.ca-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "sms-voice-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-ca-west-1" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "sms-voice-fips.ca-west-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "sms-voice-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "sms-voice-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "sms-voice-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "sms-voice-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "sms-voice-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "sms-voice-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "sms-voice-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "sms-voice-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "snowball" : {
+        "endpoints" : {
+          "af-south-1" : {
+            "variants" : [ {
+              "hostname" : "snowball-fips.af-south-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "snowball-fips.af-south-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "snowball.af-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-east-1" : {
+            "variants" : [ {
+              "hostname" : "snowball-fips.ap-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "snowball-fips.ap-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "snowball.ap-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-1" : {
+            "variants" : [ {
+              "hostname" : "snowball-fips.ap-northeast-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "snowball-fips.ap-northeast-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "snowball.ap-northeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-2" : {
+            "variants" : [ {
+              "hostname" : "snowball-fips.ap-northeast-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "snowball-fips.ap-northeast-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "snowball.ap-northeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-3" : {
+            "variants" : [ {
+              "hostname" : "snowball-fips.ap-northeast-3.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "snowball-fips.ap-northeast-3.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "snowball.ap-northeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-1" : {
+            "variants" : [ {
+              "hostname" : "snowball-fips.ap-south-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "snowball-fips.ap-south-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "snowball.ap-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-1" : {
+            "variants" : [ {
+              "hostname" : "snowball-fips.ap-southeast-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "snowball-fips.ap-southeast-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "snowball.ap-southeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "variants" : [ {
+              "hostname" : "snowball-fips.ap-southeast-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "snowball-fips.ap-southeast-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "snowball.ap-southeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-3" : {
+            "variants" : [ {
+              "hostname" : "snowball-fips.ap-southeast-3.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "snowball-fips.ap-southeast-3.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "snowball.ap-southeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "snowball-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "snowball-fips.ca-central-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "snowball.ca-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-1" : {
+            "variants" : [ {
+              "hostname" : "snowball-fips.eu-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "snowball-fips.eu-central-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "snowball.eu-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-north-1" : {
+            "variants" : [ {
+              "hostname" : "snowball-fips.eu-north-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "snowball-fips.eu-north-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "snowball.eu-north-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-1" : {
+            "variants" : [ {
+              "hostname" : "snowball-fips.eu-south-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "snowball-fips.eu-south-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "snowball.eu-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-1" : {
+            "variants" : [ {
+              "hostname" : "snowball-fips.eu-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "snowball-fips.eu-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "snowball.eu-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "variants" : [ {
+              "hostname" : "snowball-fips.eu-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "snowball-fips.eu-west-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "snowball.eu-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-3" : {
+            "variants" : [ {
+              "hostname" : "snowball-fips.eu-west-3.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "snowball-fips.eu-west-3.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "snowball.eu-west-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "fips-af-south-1" : {
+            "credentialScope" : {
+              "region" : "af-south-1"
+            },
+            "deprecated" : true,
+            "hostname" : "snowball-fips.af-south-1.amazonaws.com"
+          },
+          "fips-ap-east-1" : {
+            "credentialScope" : {
+              "region" : "ap-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "snowball-fips.ap-east-1.amazonaws.com"
+          },
+          "fips-ap-northeast-1" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-1"
+            },
+            "deprecated" : true,
+            "hostname" : "snowball-fips.ap-northeast-1.amazonaws.com"
+          },
+          "fips-ap-northeast-2" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-2"
+            },
+            "deprecated" : true,
+            "hostname" : "snowball-fips.ap-northeast-2.amazonaws.com"
+          },
+          "fips-ap-northeast-3" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-3"
+            },
+            "deprecated" : true,
+            "hostname" : "snowball-fips.ap-northeast-3.amazonaws.com"
+          },
+          "fips-ap-south-1" : {
+            "credentialScope" : {
+              "region" : "ap-south-1"
+            },
+            "deprecated" : true,
+            "hostname" : "snowball-fips.ap-south-1.amazonaws.com"
+          },
+          "fips-ap-southeast-1" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-1"
+            },
+            "deprecated" : true,
+            "hostname" : "snowball-fips.ap-southeast-1.amazonaws.com"
+          },
+          "fips-ap-southeast-2" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-2"
+            },
+            "deprecated" : true,
+            "hostname" : "snowball-fips.ap-southeast-2.amazonaws.com"
+          },
+          "fips-ap-southeast-3" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-3"
+            },
+            "deprecated" : true,
+            "hostname" : "snowball-fips.ap-southeast-3.amazonaws.com"
+          },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "snowball-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-eu-central-1" : {
+            "credentialScope" : {
+              "region" : "eu-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "snowball-fips.eu-central-1.amazonaws.com"
+          },
+          "fips-eu-north-1" : {
+            "credentialScope" : {
+              "region" : "eu-north-1"
+            },
+            "deprecated" : true,
+            "hostname" : "snowball-fips.eu-north-1.amazonaws.com"
+          },
+          "fips-eu-south-1" : {
+            "credentialScope" : {
+              "region" : "eu-south-1"
+            },
+            "deprecated" : true,
+            "hostname" : "snowball-fips.eu-south-1.amazonaws.com"
+          },
+          "fips-eu-west-1" : {
+            "credentialScope" : {
+              "region" : "eu-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "snowball-fips.eu-west-1.amazonaws.com"
+          },
+          "fips-eu-west-2" : {
+            "credentialScope" : {
+              "region" : "eu-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "snowball-fips.eu-west-2.amazonaws.com"
+          },
+          "fips-eu-west-3" : {
+            "credentialScope" : {
+              "region" : "eu-west-3"
+            },
+            "deprecated" : true,
+            "hostname" : "snowball-fips.eu-west-3.amazonaws.com"
+          },
+          "fips-il-central-1" : {
+            "credentialScope" : {
+              "region" : "il-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "snowball-fips.il-central-1.amazonaws.com"
+          },
+          "fips-me-central-1" : {
+            "credentialScope" : {
+              "region" : "me-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "snowball-fips.me-central-1.amazonaws.com"
+          },
+          "fips-sa-east-1" : {
+            "credentialScope" : {
+              "region" : "sa-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "snowball-fips.sa-east-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "snowball-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "snowball-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "snowball-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "snowball-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : {
+            "variants" : [ {
+              "hostname" : "snowball-fips.il-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "snowball-fips.il-central-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "snowball.il-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-central-1" : {
+            "variants" : [ {
+              "hostname" : "snowball-fips.me-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "snowball-fips.me-central-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "snowball.me-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "sa-east-1" : {
+            "variants" : [ {
+              "hostname" : "snowball-fips.sa-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "snowball-fips.sa-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "snowball.sa-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "snowball-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "snowball-fips.us-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "snowball.us-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "snowball-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "snowball-fips.us-east-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "snowball.us-east-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "snowball-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "snowball-fips.us-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "snowball.us-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "snowball-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "snowball-fips.us-west-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "snowball.us-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "sns" : {
+        "defaults" : {
+          "protocols" : [ "http", "https" ]
+        },
+        "endpoints" : {
+          "af-south-1" : {
+            "variants" : [ {
+              "hostname" : "sns.af-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-east-1" : {
+            "variants" : [ {
+              "hostname" : "sns.ap-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-1" : {
+            "variants" : [ {
+              "hostname" : "sns.ap-northeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-2" : {
+            "variants" : [ {
+              "hostname" : "sns.ap-northeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-3" : {
+            "variants" : [ {
+              "hostname" : "sns.ap-northeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-1" : {
+            "variants" : [ {
+              "hostname" : "sns.ap-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-2" : {
+            "variants" : [ {
+              "hostname" : "sns.ap-south-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-1" : {
+            "variants" : [ {
+              "hostname" : "sns.ap-southeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "variants" : [ {
+              "hostname" : "sns.ap-southeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-3" : {
+            "variants" : [ {
+              "hostname" : "sns.ap-southeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-4" : {
+            "variants" : [ {
+              "hostname" : "sns.ap-southeast-4.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-5" : {
+            "variants" : [ {
+              "hostname" : "sns.ap-southeast-5.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-7" : {
+            "variants" : [ {
+              "hostname" : "sns.ap-southeast-7.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "sns.ca-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "sns-fips.ca-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "sns.ca-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-1" : {
+            "variants" : [ {
+              "hostname" : "sns.eu-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-2" : {
+            "variants" : [ {
+              "hostname" : "sns.eu-central-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-north-1" : {
+            "variants" : [ {
+              "hostname" : "sns.eu-north-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-1" : {
+            "variants" : [ {
+              "hostname" : "sns.eu-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-2" : {
+            "variants" : [ {
+              "hostname" : "sns.eu-south-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-1" : {
+            "variants" : [ {
+              "hostname" : "sns.eu-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "variants" : [ {
+              "hostname" : "sns.eu-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-3" : {
+            "variants" : [ {
+              "hostname" : "sns.eu-west-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "fips-ca-west-1" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "sns-fips.ca-west-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "sns-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "sns-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "sns-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "sns-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : {
+            "variants" : [ {
+              "hostname" : "sns.il-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-central-1" : {
+            "variants" : [ {
+              "hostname" : "sns.me-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-south-1" : {
+            "variants" : [ {
+              "hostname" : "sns.me-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "mx-central-1" : {
+            "variants" : [ {
+              "hostname" : "sns.mx-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "sa-east-1" : {
+            "variants" : [ {
+              "hostname" : "sns.sa-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "sns-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "sns.us-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "sns-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "sns.us-east-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "sns-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "sns.us-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "sns-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "sns.us-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "sqs" : {
+        "defaults" : {
+          "protocols" : [ "http", "https" ],
+          "sslCommonName" : "{region}.queue.{dnsSuffix}"
+        },
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ap-southeast-7" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "sqs-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "sqs-fips.ca-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "sqs-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-ca-west-1" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "sqs-fips.ca-west-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "sqs-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "sqs-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "sqs-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "sqs-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "mx-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "sslCommonName" : "queue.{dnsSuffix}",
+            "variants" : [ {
+              "hostname" : "sqs-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "sqs-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "sqs-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "sqs-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "ssm" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ap-southeast-7" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "ssm-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "ssm-fips.ca-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ssm-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-ca-west-1" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ssm-fips.ca-west-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ssm-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "ssm-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ssm-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "ssm-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "mx-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "ssm-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "ssm-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "ssm-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "ssm-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "ssm-contacts" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ssm-contacts-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "ssm-contacts-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ssm-contacts-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "ssm-contacts-fips.us-west-2.amazonaws.com"
+          },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "ssm-contacts-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "ssm-contacts-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "ssm-contacts-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "ssm-contacts-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "ssm-incidents" : {
+        "endpoints" : {
+          "ap-northeast-1" : {
+            "variants" : [ {
+              "hostname" : "ssm-incidents.ap-northeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-2" : {
+            "variants" : [ {
+              "hostname" : "ssm-incidents.ap-northeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-1" : {
+            "variants" : [ {
+              "hostname" : "ssm-incidents.ap-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-1" : {
+            "variants" : [ {
+              "hostname" : "ssm-incidents.ap-southeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "variants" : [ {
+              "hostname" : "ssm-incidents.ap-southeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "ssm-incidents-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "ssm-incidents-fips.ca-central-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "ssm-incidents.ca-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-1" : {
+            "variants" : [ {
+              "hostname" : "ssm-incidents.eu-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-north-1" : {
+            "variants" : [ {
+              "hostname" : "ssm-incidents.eu-north-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-1" : {
+            "variants" : [ {
+              "hostname" : "ssm-incidents.eu-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "variants" : [ {
+              "hostname" : "ssm-incidents.eu-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-3" : {
+            "variants" : [ {
+              "hostname" : "ssm-incidents.eu-west-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ssm-incidents-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ssm-incidents-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "ssm-incidents-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ssm-incidents-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "ssm-incidents-fips.us-west-2.amazonaws.com"
+          },
+          "sa-east-1" : {
+            "variants" : [ {
+              "hostname" : "ssm-incidents.sa-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "ssm-incidents-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "ssm-incidents-fips.us-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "ssm-incidents.us-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "ssm-incidents-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "ssm-incidents-fips.us-east-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "ssm-incidents.us-east-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "ssm-incidents-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "ssm-incidents-fips.us-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "ssm-incidents.us-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "ssm-incidents-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "ssm-incidents-fips.us-west-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "ssm-incidents.us-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "ssm-quicksetup" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "ssm-quicksetup-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ssm-quicksetup-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ssm-quicksetup-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "ssm-quicksetup-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ssm-quicksetup-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "ssm-quicksetup-fips.us-west-2.amazonaws.com"
+          },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "ssm-quicksetup-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "ssm-quicksetup-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "ssm-quicksetup-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "ssm-quicksetup-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "ssm-sap" : {
+        "endpoints" : {
+          "af-south-1" : {
+            "variants" : [ {
+              "hostname" : "ssm-sap.af-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-east-1" : {
+            "variants" : [ {
+              "hostname" : "ssm-sap.ap-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-1" : {
+            "variants" : [ {
+              "hostname" : "ssm-sap.ap-northeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-2" : {
+            "variants" : [ {
+              "hostname" : "ssm-sap.ap-northeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-3" : {
+            "variants" : [ {
+              "hostname" : "ssm-sap.ap-northeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-1" : {
+            "variants" : [ {
+              "hostname" : "ssm-sap.ap-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-2" : {
+            "variants" : [ {
+              "hostname" : "ssm-sap.ap-south-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-1" : {
+            "variants" : [ {
+              "hostname" : "ssm-sap.ap-southeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "variants" : [ {
+              "hostname" : "ssm-sap.ap-southeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-3" : {
+            "variants" : [ {
+              "hostname" : "ssm-sap.ap-southeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-4" : {
+            "variants" : [ {
+              "hostname" : "ssm-sap.ap-southeast-4.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "ssm-sap-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "ssm-sap-fips.ca-central-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "ssm-sap.ca-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-1" : {
+            "variants" : [ {
+              "hostname" : "ssm-sap.eu-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-2" : {
+            "variants" : [ {
+              "hostname" : "ssm-sap.eu-central-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-north-1" : {
+            "variants" : [ {
+              "hostname" : "ssm-sap.eu-north-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-1" : {
+            "variants" : [ {
+              "hostname" : "ssm-sap.eu-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-2" : {
+            "variants" : [ {
+              "hostname" : "ssm-sap.eu-south-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-1" : {
+            "variants" : [ {
+              "hostname" : "ssm-sap.eu-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "variants" : [ {
+              "hostname" : "ssm-sap.eu-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-3" : {
+            "variants" : [ {
+              "hostname" : "ssm-sap.eu-west-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ssm-sap-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ssm-sap-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "ssm-sap-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ssm-sap-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "ssm-sap-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : {
+            "variants" : [ {
+              "hostname" : "ssm-sap.il-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-central-1" : {
+            "variants" : [ {
+              "hostname" : "ssm-sap.me-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-south-1" : {
+            "variants" : [ {
+              "hostname" : "ssm-sap.me-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "sa-east-1" : {
+            "variants" : [ {
+              "hostname" : "ssm-sap.sa-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "ssm-sap-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "ssm-sap-fips.us-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "ssm-sap.us-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "ssm-sap-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "ssm-sap-fips.us-east-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "ssm-sap.us-east-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "ssm-sap-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "ssm-sap-fips.us-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "ssm-sap.us-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "ssm-sap-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "ssm-sap-fips.us-west-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "ssm-sap.us-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "sso" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ca-central-1" : { },
+          "ca-west-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "states" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ap-southeast-7" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "states-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "states-fips.ca-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "states-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-ca-west-1" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "states-fips.ca-west-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "states-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "states-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "states-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "states-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "mx-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "states-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "states-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "states-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "states-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "storagegateway" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ap-southeast-7" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "storagegateway-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-central-1-fips" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "storagegateway-fips.ca-central-1.amazonaws.com"
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "storagegateway-fips.ca-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "storagegateway-fips.ca-west-1.amazonaws.com"
+          },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "mx-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "storagegateway-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "storagegateway-fips.us-east-1.amazonaws.com"
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "storagegateway-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "storagegateway-fips.us-east-2.amazonaws.com"
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "storagegateway-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "storagegateway-fips.us-west-1.amazonaws.com"
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "storagegateway-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "storagegateway-fips.us-west-2.amazonaws.com"
+          }
+        }
+      },
+      "streams.dynamodb" : {
+        "defaults" : {
+          "credentialScope" : {
+            "service" : "dynamodb"
+          },
+          "protocols" : [ "http", "https" ]
+        },
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ap-southeast-7" : { },
+          "ca-central-1" : { },
+          "ca-west-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "il-central-1" : { },
+          "local" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "localhost:8000",
+            "protocols" : [ "http" ]
+          },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "mx-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "sts" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ap-southeast-7" : { },
+          "aws-global" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "sts.amazonaws.com"
+          },
+          "ca-central-1" : { },
+          "ca-west-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "mx-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "sts-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "sts-fips.us-east-1.amazonaws.com"
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "sts-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "sts-fips.us-east-2.amazonaws.com"
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "sts-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "sts-fips.us-west-1.amazonaws.com"
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "sts-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "sts-fips.us-west-2.amazonaws.com"
+          }
+        },
+        "partitionEndpoint" : "aws-global"
+      },
+      "support" : {
+        "endpoints" : {
+          "aws-global" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "support.us-east-1.amazonaws.com"
+          }
+        },
+        "partitionEndpoint" : "aws-global"
+      },
+      "supportapp" : {
+        "endpoints" : {
+          "eu-west-1" : { },
+          "us-east-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "swf" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ap-southeast-7" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "swf-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "swf-fips.ca-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "swf-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-ca-west-1" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "swf-fips.ca-west-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "swf-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "swf-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "swf-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "swf-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "mx-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "swf-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "swf-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "swf-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "swf-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "synthetics" : {
+        "endpoints" : {
+          "af-south-1" : {
+            "variants" : [ {
+              "hostname" : "synthetics.af-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-east-1" : {
+            "variants" : [ {
+              "hostname" : "synthetics.ap-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-1" : {
+            "variants" : [ {
+              "hostname" : "synthetics.ap-northeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-2" : {
+            "variants" : [ {
+              "hostname" : "synthetics.ap-northeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-3" : {
+            "variants" : [ {
+              "hostname" : "synthetics.ap-northeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-1" : {
+            "variants" : [ {
+              "hostname" : "synthetics.ap-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-2" : {
+            "variants" : [ {
+              "hostname" : "synthetics.ap-south-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-1" : {
+            "variants" : [ {
+              "hostname" : "synthetics.ap-southeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "variants" : [ {
+              "hostname" : "synthetics.ap-southeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-3" : {
+            "variants" : [ {
+              "hostname" : "synthetics.ap-southeast-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-4" : {
+            "variants" : [ {
+              "hostname" : "synthetics.ap-southeast-4.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-5" : {
+            "variants" : [ {
+              "hostname" : "synthetics.ap-southeast-5.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-7" : {
+            "variants" : [ {
+              "hostname" : "synthetics.ap-southeast-7.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "synthetics-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "synthetics-fips.ca-central-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "synthetics.ca-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "synthetics-fips.ca-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "synthetics-fips.ca-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "synthetics.ca-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-1" : {
+            "variants" : [ {
+              "hostname" : "synthetics.eu-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-2" : {
+            "variants" : [ {
+              "hostname" : "synthetics.eu-central-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-north-1" : {
+            "variants" : [ {
+              "hostname" : "synthetics.eu-north-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-1" : {
+            "variants" : [ {
+              "hostname" : "synthetics.eu-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-2" : {
+            "variants" : [ {
+              "hostname" : "synthetics.eu-south-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-1" : {
+            "variants" : [ {
+              "hostname" : "synthetics.eu-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "variants" : [ {
+              "hostname" : "synthetics.eu-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-3" : {
+            "variants" : [ {
+              "hostname" : "synthetics.eu-west-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "synthetics-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-ca-west-1" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "synthetics-fips.ca-west-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "synthetics-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "synthetics-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "synthetics-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "synthetics-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : {
+            "variants" : [ {
+              "hostname" : "synthetics.il-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-central-1" : {
+            "variants" : [ {
+              "hostname" : "synthetics.me-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "me-south-1" : {
+            "variants" : [ {
+              "hostname" : "synthetics.me-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "mx-central-1" : {
+            "variants" : [ {
+              "hostname" : "synthetics.mx-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "sa-east-1" : {
+            "variants" : [ {
+              "hostname" : "synthetics.sa-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "synthetics-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "synthetics-fips.us-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "synthetics.us-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "synthetics-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "synthetics-fips.us-east-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "synthetics.us-east-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "synthetics-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "synthetics-fips.us-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "synthetics.us-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "synthetics-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "synthetics-fips.us-west-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "synthetics.us-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "tagging" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ap-southeast-7" : { },
+          "ca-central-1" : { },
+          "ca-west-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "mx-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "tax" : {
+        "endpoints" : {
+          "aws-global" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "tax.us-east-1.amazonaws.com"
+          }
+        },
+        "isRegionalized" : false,
+        "partitionEndpoint" : "aws-global"
+      },
+      "textract" : {
+        "endpoints" : {
+          "ap-northeast-2" : {
+            "variants" : [ {
+              "hostname" : "textract.ap-northeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-1" : {
+            "variants" : [ {
+              "hostname" : "textract.ap-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-1" : {
+            "variants" : [ {
+              "hostname" : "textract.ap-southeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "variants" : [ {
+              "hostname" : "textract.ap-southeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "textract-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "textract-fips.ca-central-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "textract.ca-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-1" : {
+            "variants" : [ {
+              "hostname" : "textract.eu-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-south-2" : {
+            "variants" : [ {
+              "hostname" : "textract.eu-south-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-1" : {
+            "variants" : [ {
+              "hostname" : "textract.eu-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "variants" : [ {
+              "hostname" : "textract.eu-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-3" : {
+            "variants" : [ {
+              "hostname" : "textract.eu-west-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "textract-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "textract-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "textract-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "textract-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "textract-fips.us-west-2.amazonaws.com"
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "textract-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "textract-fips.us-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "textract.us-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "textract-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "textract-fips.us-east-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "textract.us-east-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "textract-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "textract-fips.us-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "textract.us-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "textract-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "textract-fips.us-west-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "textract.us-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "thinclient" : {
+        "endpoints" : {
+          "ap-south-1" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "us-east-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "tnb" : {
+        "endpoints" : {
+          "ap-northeast-2" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-south-2" : { },
+          "eu-west-3" : { },
+          "sa-east-1" : { },
+          "us-east-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "transcribe" : {
+        "defaults" : {
+          "protocols" : [ "https" ],
+          "variants" : [ {
+            "hostname" : "fips.transcribe.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "af-south-1" : {
+            "variants" : [ {
+              "hostname" : "transcribe.af-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-east-1" : {
+            "variants" : [ {
+              "hostname" : "transcribe.ap-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-1" : {
+            "variants" : [ {
+              "hostname" : "transcribe.ap-northeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-2" : {
+            "variants" : [ {
+              "hostname" : "transcribe.ap-northeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-1" : {
+            "variants" : [ {
+              "hostname" : "transcribe.ap-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-1" : {
+            "variants" : [ {
+              "hostname" : "transcribe.ap-southeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "variants" : [ {
+              "hostname" : "transcribe.ap-southeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "fips.transcribe.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "transcribe-fips.ca-central-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "transcribe.ca-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-1" : {
+            "variants" : [ {
+              "hostname" : "transcribe.eu-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-north-1" : {
+            "variants" : [ {
+              "hostname" : "transcribe.eu-north-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-1" : {
+            "variants" : [ {
+              "hostname" : "transcribe.eu-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "variants" : [ {
+              "hostname" : "transcribe.eu-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-3" : {
+            "variants" : [ {
+              "hostname" : "transcribe.eu-west-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "fips.transcribe.ca-central-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "fips.transcribe.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "fips.transcribe.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "fips.transcribe.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "fips.transcribe.us-west-2.amazonaws.com"
+          },
+          "me-south-1" : {
+            "variants" : [ {
+              "hostname" : "transcribe.me-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "sa-east-1" : {
+            "variants" : [ {
+              "hostname" : "transcribe.sa-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "fips.transcribe.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "transcribe-fips.us-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "transcribe.us-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "fips.transcribe.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "transcribe-fips.us-east-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "transcribe.us-east-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "fips.transcribe.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "transcribe-fips.us-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "transcribe.us-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "fips.transcribe.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "transcribe-fips.us-west-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "transcribe.us-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "transcribestreaming" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "transcribestreaming-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "transcribestreaming-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "transcribestreaming-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "transcribestreaming-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "transcribestreaming-fips.us-west-2.amazonaws.com"
+          },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "transcribestreaming-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "transcribestreaming-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "transcribestreaming-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "transfer" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "transfer-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "transfer-fips.ca-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "transfer-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-ca-west-1" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "transfer-fips.ca-west-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "transfer-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "transfer-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "transfer-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "transfer-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "transfer-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "transfer-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "transfer-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "transfer-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "translate" : {
+        "defaults" : {
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "ap-east-1" : {
+            "variants" : [ {
+              "hostname" : "translate.ap-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-1" : {
+            "variants" : [ {
+              "hostname" : "translate.ap-northeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-northeast-2" : {
+            "variants" : [ {
+              "hostname" : "translate.ap-northeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-south-1" : {
+            "variants" : [ {
+              "hostname" : "translate.ap-south-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-1" : {
+            "variants" : [ {
+              "hostname" : "translate.ap-southeast-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "variants" : [ {
+              "hostname" : "translate.ap-southeast-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "translate.ca-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-central-1" : {
+            "variants" : [ {
+              "hostname" : "translate.eu-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-north-1" : {
+            "variants" : [ {
+              "hostname" : "translate.eu-north-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-1" : {
+            "variants" : [ {
+              "hostname" : "translate.eu-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "variants" : [ {
+              "hostname" : "translate.eu-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "eu-west-3" : {
+            "variants" : [ {
+              "hostname" : "translate.eu-west-3.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "translate-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "translate-fips.us-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "translate.us-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "translate-fips.us-east-1.amazonaws.com"
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "translate-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "translate-fips.us-east-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "translate.us-east-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-east-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "translate-fips.us-east-2.amazonaws.com"
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "translate-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "translate-fips.us-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "translate.us-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "translate-fips.us-west-1.amazonaws.com"
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "translate-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "translate-fips.us-west-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "translate.us-west-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-west-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "translate-fips.us-west-2.amazonaws.com"
+          }
+        }
+      },
+      "trustedadvisor" : {
+        "endpoints" : {
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "trustedadvisor-fips.us-east-1.api.aws"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "hostname" : "trustedadvisor-fips.us-east-2.api.aws"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "hostname" : "trustedadvisor-fips.us-west-2.api.aws"
+          }
+        }
+      },
+      "verifiedpermissions" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "verifiedpermissions-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-west-1" : {
+            "variants" : [ {
+              "hostname" : "verifiedpermissions-fips.ca-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "verifiedpermissions-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-ca-west-1" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "verifiedpermissions-fips.ca-west-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "verifiedpermissions-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "verifiedpermissions-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "verifiedpermissions-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "verifiedpermissions-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "verifiedpermissions-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "verifiedpermissions-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "verifiedpermissions-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "verifiedpermissions-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "voice-chime" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "voice-chime-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-central-1-fips" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "voice-chime-fips.ca-central-1.amazonaws.com"
+          },
+          "eu-central-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "voice-chime-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "voice-chime-fips.us-east-1.amazonaws.com"
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "voice-chime-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2-fips" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "voice-chime-fips.us-west-2.amazonaws.com"
+          }
+        }
+      },
+      "voiceid" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "voiceid-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : { },
+          "eu-west-2" : { },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "voiceid-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "voiceid-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "voiceid-fips.us-west-2.amazonaws.com"
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "voiceid-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "voiceid-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "vpc-lattice" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ca-central-1" : { },
+          "ca-west-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "waf" : {
+        "endpoints" : {
+          "aws" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "variants" : [ {
+              "hostname" : "waf-fips.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "aws-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "waf-fips.amazonaws.com"
+          },
+          "aws-global" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "waf.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "waf-fips.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "aws-global-fips" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "waf-fips.amazonaws.com"
+          }
+        },
+        "isRegionalized" : false,
+        "partitionEndpoint" : "aws-global"
+      },
+      "waf-regional" : {
+        "endpoints" : {
+          "af-south-1" : {
+            "credentialScope" : {
+              "region" : "af-south-1"
+            },
+            "hostname" : "waf-regional.af-south-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "waf-regional-fips.af-south-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-east-1" : {
+            "credentialScope" : {
+              "region" : "ap-east-1"
+            },
+            "hostname" : "waf-regional.ap-east-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "waf-regional-fips.ap-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-northeast-1" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-1"
+            },
+            "hostname" : "waf-regional.ap-northeast-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "waf-regional-fips.ap-northeast-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-northeast-2" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-2"
+            },
+            "hostname" : "waf-regional.ap-northeast-2.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "waf-regional-fips.ap-northeast-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-northeast-3" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-3"
+            },
+            "hostname" : "waf-regional.ap-northeast-3.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "waf-regional-fips.ap-northeast-3.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-south-1" : {
+            "credentialScope" : {
+              "region" : "ap-south-1"
+            },
+            "hostname" : "waf-regional.ap-south-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "waf-regional-fips.ap-south-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-south-2" : {
+            "credentialScope" : {
+              "region" : "ap-south-2"
+            },
+            "hostname" : "waf-regional.ap-south-2.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "waf-regional-fips.ap-south-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-southeast-1" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-1"
+            },
+            "hostname" : "waf-regional.ap-southeast-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "waf-regional-fips.ap-southeast-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-2"
+            },
+            "hostname" : "waf-regional.ap-southeast-2.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "waf-regional-fips.ap-southeast-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-southeast-3" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-3"
+            },
+            "hostname" : "waf-regional.ap-southeast-3.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "waf-regional-fips.ap-southeast-3.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-southeast-4" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-4"
+            },
+            "hostname" : "waf-regional.ap-southeast-4.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "waf-regional-fips.ap-southeast-4.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "hostname" : "waf-regional.ca-central-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "waf-regional-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : {
+            "credentialScope" : {
+              "region" : "eu-central-1"
+            },
+            "hostname" : "waf-regional.eu-central-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "waf-regional-fips.eu-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-2" : {
+            "credentialScope" : {
+              "region" : "eu-central-2"
+            },
+            "hostname" : "waf-regional.eu-central-2.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "waf-regional-fips.eu-central-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-north-1" : {
+            "credentialScope" : {
+              "region" : "eu-north-1"
+            },
+            "hostname" : "waf-regional.eu-north-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "waf-regional-fips.eu-north-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-south-1" : {
+            "credentialScope" : {
+              "region" : "eu-south-1"
+            },
+            "hostname" : "waf-regional.eu-south-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "waf-regional-fips.eu-south-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-south-2" : {
+            "credentialScope" : {
+              "region" : "eu-south-2"
+            },
+            "hostname" : "waf-regional.eu-south-2.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "waf-regional-fips.eu-south-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-west-1" : {
+            "credentialScope" : {
+              "region" : "eu-west-1"
+            },
+            "hostname" : "waf-regional.eu-west-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "waf-regional-fips.eu-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "credentialScope" : {
+              "region" : "eu-west-2"
+            },
+            "hostname" : "waf-regional.eu-west-2.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "waf-regional-fips.eu-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-west-3" : {
+            "credentialScope" : {
+              "region" : "eu-west-3"
+            },
+            "hostname" : "waf-regional.eu-west-3.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "waf-regional-fips.eu-west-3.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "fips-af-south-1" : {
+            "credentialScope" : {
+              "region" : "af-south-1"
+            },
+            "deprecated" : true,
+            "hostname" : "waf-regional-fips.af-south-1.amazonaws.com"
+          },
+          "fips-ap-east-1" : {
+            "credentialScope" : {
+              "region" : "ap-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "waf-regional-fips.ap-east-1.amazonaws.com"
+          },
+          "fips-ap-northeast-1" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-1"
+            },
+            "deprecated" : true,
+            "hostname" : "waf-regional-fips.ap-northeast-1.amazonaws.com"
+          },
+          "fips-ap-northeast-2" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-2"
+            },
+            "deprecated" : true,
+            "hostname" : "waf-regional-fips.ap-northeast-2.amazonaws.com"
+          },
+          "fips-ap-northeast-3" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-3"
+            },
+            "deprecated" : true,
+            "hostname" : "waf-regional-fips.ap-northeast-3.amazonaws.com"
+          },
+          "fips-ap-south-1" : {
+            "credentialScope" : {
+              "region" : "ap-south-1"
+            },
+            "deprecated" : true,
+            "hostname" : "waf-regional-fips.ap-south-1.amazonaws.com"
+          },
+          "fips-ap-south-2" : {
+            "credentialScope" : {
+              "region" : "ap-south-2"
+            },
+            "deprecated" : true,
+            "hostname" : "waf-regional-fips.ap-south-2.amazonaws.com"
+          },
+          "fips-ap-southeast-1" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-1"
+            },
+            "deprecated" : true,
+            "hostname" : "waf-regional-fips.ap-southeast-1.amazonaws.com"
+          },
+          "fips-ap-southeast-2" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-2"
+            },
+            "deprecated" : true,
+            "hostname" : "waf-regional-fips.ap-southeast-2.amazonaws.com"
+          },
+          "fips-ap-southeast-3" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-3"
+            },
+            "deprecated" : true,
+            "hostname" : "waf-regional-fips.ap-southeast-3.amazonaws.com"
+          },
+          "fips-ap-southeast-4" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-4"
+            },
+            "deprecated" : true,
+            "hostname" : "waf-regional-fips.ap-southeast-4.amazonaws.com"
+          },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "waf-regional-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-eu-central-1" : {
+            "credentialScope" : {
+              "region" : "eu-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "waf-regional-fips.eu-central-1.amazonaws.com"
+          },
+          "fips-eu-central-2" : {
+            "credentialScope" : {
+              "region" : "eu-central-2"
+            },
+            "deprecated" : true,
+            "hostname" : "waf-regional-fips.eu-central-2.amazonaws.com"
+          },
+          "fips-eu-north-1" : {
+            "credentialScope" : {
+              "region" : "eu-north-1"
+            },
+            "deprecated" : true,
+            "hostname" : "waf-regional-fips.eu-north-1.amazonaws.com"
+          },
+          "fips-eu-south-1" : {
+            "credentialScope" : {
+              "region" : "eu-south-1"
+            },
+            "deprecated" : true,
+            "hostname" : "waf-regional-fips.eu-south-1.amazonaws.com"
+          },
+          "fips-eu-south-2" : {
+            "credentialScope" : {
+              "region" : "eu-south-2"
+            },
+            "deprecated" : true,
+            "hostname" : "waf-regional-fips.eu-south-2.amazonaws.com"
+          },
+          "fips-eu-west-1" : {
+            "credentialScope" : {
+              "region" : "eu-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "waf-regional-fips.eu-west-1.amazonaws.com"
+          },
+          "fips-eu-west-2" : {
+            "credentialScope" : {
+              "region" : "eu-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "waf-regional-fips.eu-west-2.amazonaws.com"
+          },
+          "fips-eu-west-3" : {
+            "credentialScope" : {
+              "region" : "eu-west-3"
+            },
+            "deprecated" : true,
+            "hostname" : "waf-regional-fips.eu-west-3.amazonaws.com"
+          },
+          "fips-il-central-1" : {
+            "credentialScope" : {
+              "region" : "il-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "waf-regional-fips.il-central-1.amazonaws.com"
+          },
+          "fips-me-central-1" : {
+            "credentialScope" : {
+              "region" : "me-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "waf-regional-fips.me-central-1.amazonaws.com"
+          },
+          "fips-me-south-1" : {
+            "credentialScope" : {
+              "region" : "me-south-1"
+            },
+            "deprecated" : true,
+            "hostname" : "waf-regional-fips.me-south-1.amazonaws.com"
+          },
+          "fips-sa-east-1" : {
+            "credentialScope" : {
+              "region" : "sa-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "waf-regional-fips.sa-east-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "waf-regional-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "waf-regional-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "waf-regional-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "waf-regional-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : {
+            "credentialScope" : {
+              "region" : "il-central-1"
+            },
+            "hostname" : "waf-regional.il-central-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "waf-regional-fips.il-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "me-central-1" : {
+            "credentialScope" : {
+              "region" : "me-central-1"
+            },
+            "hostname" : "waf-regional.me-central-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "waf-regional-fips.me-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "me-south-1" : {
+            "credentialScope" : {
+              "region" : "me-south-1"
+            },
+            "hostname" : "waf-regional.me-south-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "waf-regional-fips.me-south-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "sa-east-1" : {
+            "credentialScope" : {
+              "region" : "sa-east-1"
+            },
+            "hostname" : "waf-regional.sa-east-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "waf-regional-fips.sa-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "waf-regional.us-east-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "waf-regional-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "hostname" : "waf-regional.us-east-2.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "waf-regional-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "hostname" : "waf-regional.us-west-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "waf-regional-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "hostname" : "waf-regional.us-west-2.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "waf-regional-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "wafv2" : {
+        "endpoints" : {
+          "af-south-1" : {
+            "credentialScope" : {
+              "region" : "af-south-1"
+            },
+            "hostname" : "wafv2.af-south-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "wafv2-fips.af-south-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-east-1" : {
+            "credentialScope" : {
+              "region" : "ap-east-1"
+            },
+            "hostname" : "wafv2.ap-east-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "wafv2-fips.ap-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-northeast-1" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-1"
+            },
+            "hostname" : "wafv2.ap-northeast-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "wafv2-fips.ap-northeast-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-northeast-2" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-2"
+            },
+            "hostname" : "wafv2.ap-northeast-2.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "wafv2-fips.ap-northeast-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-northeast-3" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-3"
+            },
+            "hostname" : "wafv2.ap-northeast-3.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "wafv2-fips.ap-northeast-3.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-south-1" : {
+            "credentialScope" : {
+              "region" : "ap-south-1"
+            },
+            "hostname" : "wafv2.ap-south-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "wafv2-fips.ap-south-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-south-2" : {
+            "credentialScope" : {
+              "region" : "ap-south-2"
+            },
+            "hostname" : "wafv2.ap-south-2.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "wafv2-fips.ap-south-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-southeast-1" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-1"
+            },
+            "hostname" : "wafv2.ap-southeast-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "wafv2-fips.ap-southeast-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-southeast-2" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-2"
+            },
+            "hostname" : "wafv2.ap-southeast-2.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "wafv2-fips.ap-southeast-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-southeast-3" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-3"
+            },
+            "hostname" : "wafv2.ap-southeast-3.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "wafv2-fips.ap-southeast-3.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-southeast-4" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-4"
+            },
+            "hostname" : "wafv2.ap-southeast-4.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "wafv2-fips.ap-southeast-4.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-southeast-5" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-5"
+            },
+            "hostname" : "wafv2.ap-southeast-5.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "wafv2-fips.ap-southeast-5.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ap-southeast-7" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-7"
+            },
+            "hostname" : "wafv2.ap-southeast-7.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "wafv2-fips.ap-southeast-7.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "hostname" : "wafv2.ca-central-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "wafv2-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "ca-west-1" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "hostname" : "wafv2.ca-west-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "wafv2-fips.ca-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : {
+            "credentialScope" : {
+              "region" : "eu-central-1"
+            },
+            "hostname" : "wafv2.eu-central-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "wafv2-fips.eu-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-2" : {
+            "credentialScope" : {
+              "region" : "eu-central-2"
+            },
+            "hostname" : "wafv2.eu-central-2.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "wafv2-fips.eu-central-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-north-1" : {
+            "credentialScope" : {
+              "region" : "eu-north-1"
+            },
+            "hostname" : "wafv2.eu-north-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "wafv2-fips.eu-north-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-south-1" : {
+            "credentialScope" : {
+              "region" : "eu-south-1"
+            },
+            "hostname" : "wafv2.eu-south-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "wafv2-fips.eu-south-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-south-2" : {
+            "credentialScope" : {
+              "region" : "eu-south-2"
+            },
+            "hostname" : "wafv2.eu-south-2.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "wafv2-fips.eu-south-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-west-1" : {
+            "credentialScope" : {
+              "region" : "eu-west-1"
+            },
+            "hostname" : "wafv2.eu-west-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "wafv2-fips.eu-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-west-2" : {
+            "credentialScope" : {
+              "region" : "eu-west-2"
+            },
+            "hostname" : "wafv2.eu-west-2.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "wafv2-fips.eu-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-west-3" : {
+            "credentialScope" : {
+              "region" : "eu-west-3"
+            },
+            "hostname" : "wafv2.eu-west-3.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "wafv2-fips.eu-west-3.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "fips-af-south-1" : {
+            "credentialScope" : {
+              "region" : "af-south-1"
+            },
+            "deprecated" : true,
+            "hostname" : "wafv2-fips.af-south-1.amazonaws.com"
+          },
+          "fips-ap-east-1" : {
+            "credentialScope" : {
+              "region" : "ap-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "wafv2-fips.ap-east-1.amazonaws.com"
+          },
+          "fips-ap-northeast-1" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-1"
+            },
+            "deprecated" : true,
+            "hostname" : "wafv2-fips.ap-northeast-1.amazonaws.com"
+          },
+          "fips-ap-northeast-2" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-2"
+            },
+            "deprecated" : true,
+            "hostname" : "wafv2-fips.ap-northeast-2.amazonaws.com"
+          },
+          "fips-ap-northeast-3" : {
+            "credentialScope" : {
+              "region" : "ap-northeast-3"
+            },
+            "deprecated" : true,
+            "hostname" : "wafv2-fips.ap-northeast-3.amazonaws.com"
+          },
+          "fips-ap-south-1" : {
+            "credentialScope" : {
+              "region" : "ap-south-1"
+            },
+            "deprecated" : true,
+            "hostname" : "wafv2-fips.ap-south-1.amazonaws.com"
+          },
+          "fips-ap-south-2" : {
+            "credentialScope" : {
+              "region" : "ap-south-2"
+            },
+            "deprecated" : true,
+            "hostname" : "wafv2-fips.ap-south-2.amazonaws.com"
+          },
+          "fips-ap-southeast-1" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-1"
+            },
+            "deprecated" : true,
+            "hostname" : "wafv2-fips.ap-southeast-1.amazonaws.com"
+          },
+          "fips-ap-southeast-2" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-2"
+            },
+            "deprecated" : true,
+            "hostname" : "wafv2-fips.ap-southeast-2.amazonaws.com"
+          },
+          "fips-ap-southeast-3" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-3"
+            },
+            "deprecated" : true,
+            "hostname" : "wafv2-fips.ap-southeast-3.amazonaws.com"
+          },
+          "fips-ap-southeast-4" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-4"
+            },
+            "deprecated" : true,
+            "hostname" : "wafv2-fips.ap-southeast-4.amazonaws.com"
+          },
+          "fips-ap-southeast-5" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-5"
+            },
+            "deprecated" : true,
+            "hostname" : "wafv2-fips.ap-southeast-5.amazonaws.com"
+          },
+          "fips-ap-southeast-7" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-7"
+            },
+            "deprecated" : true,
+            "hostname" : "wafv2-fips.ap-southeast-7.amazonaws.com"
+          },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "wafv2-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-ca-west-1" : {
+            "credentialScope" : {
+              "region" : "ca-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "wafv2-fips.ca-west-1.amazonaws.com"
+          },
+          "fips-eu-central-1" : {
+            "credentialScope" : {
+              "region" : "eu-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "wafv2-fips.eu-central-1.amazonaws.com"
+          },
+          "fips-eu-central-2" : {
+            "credentialScope" : {
+              "region" : "eu-central-2"
+            },
+            "deprecated" : true,
+            "hostname" : "wafv2-fips.eu-central-2.amazonaws.com"
+          },
+          "fips-eu-north-1" : {
+            "credentialScope" : {
+              "region" : "eu-north-1"
+            },
+            "deprecated" : true,
+            "hostname" : "wafv2-fips.eu-north-1.amazonaws.com"
+          },
+          "fips-eu-south-1" : {
+            "credentialScope" : {
+              "region" : "eu-south-1"
+            },
+            "deprecated" : true,
+            "hostname" : "wafv2-fips.eu-south-1.amazonaws.com"
+          },
+          "fips-eu-south-2" : {
+            "credentialScope" : {
+              "region" : "eu-south-2"
+            },
+            "deprecated" : true,
+            "hostname" : "wafv2-fips.eu-south-2.amazonaws.com"
+          },
+          "fips-eu-west-1" : {
+            "credentialScope" : {
+              "region" : "eu-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "wafv2-fips.eu-west-1.amazonaws.com"
+          },
+          "fips-eu-west-2" : {
+            "credentialScope" : {
+              "region" : "eu-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "wafv2-fips.eu-west-2.amazonaws.com"
+          },
+          "fips-eu-west-3" : {
+            "credentialScope" : {
+              "region" : "eu-west-3"
+            },
+            "deprecated" : true,
+            "hostname" : "wafv2-fips.eu-west-3.amazonaws.com"
+          },
+          "fips-il-central-1" : {
+            "credentialScope" : {
+              "region" : "il-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "wafv2-fips.il-central-1.amazonaws.com"
+          },
+          "fips-me-central-1" : {
+            "credentialScope" : {
+              "region" : "me-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "wafv2-fips.me-central-1.amazonaws.com"
+          },
+          "fips-me-south-1" : {
+            "credentialScope" : {
+              "region" : "me-south-1"
+            },
+            "deprecated" : true,
+            "hostname" : "wafv2-fips.me-south-1.amazonaws.com"
+          },
+          "fips-mx-central-1" : {
+            "credentialScope" : {
+              "region" : "mx-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "wafv2-fips.mx-central-1.amazonaws.com"
+          },
+          "fips-sa-east-1" : {
+            "credentialScope" : {
+              "region" : "sa-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "wafv2-fips.sa-east-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "wafv2-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "wafv2-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "wafv2-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "wafv2-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : {
+            "credentialScope" : {
+              "region" : "il-central-1"
+            },
+            "hostname" : "wafv2.il-central-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "wafv2-fips.il-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "me-central-1" : {
+            "credentialScope" : {
+              "region" : "me-central-1"
+            },
+            "hostname" : "wafv2.me-central-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "wafv2-fips.me-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "me-south-1" : {
+            "credentialScope" : {
+              "region" : "me-south-1"
+            },
+            "hostname" : "wafv2.me-south-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "wafv2-fips.me-south-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "mx-central-1" : {
+            "credentialScope" : {
+              "region" : "mx-central-1"
+            },
+            "hostname" : "wafv2.mx-central-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "wafv2-fips.mx-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "sa-east-1" : {
+            "credentialScope" : {
+              "region" : "sa-east-1"
+            },
+            "hostname" : "wafv2.sa-east-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "wafv2-fips.sa-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "wafv2.us-east-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "wafv2-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "hostname" : "wafv2.us-east-2.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "wafv2-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "hostname" : "wafv2.us-west-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "wafv2-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "hostname" : "wafv2.us-west-2.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "wafv2-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "wellarchitected" : {
+        "endpoints" : {
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "me-south-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : { },
+          "us-east-2" : { },
+          "us-west-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "wisdom" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : { },
+          "eu-west-2" : { },
+          "fips-ca-central-1" : {
+            "deprecated" : true
+          },
+          "fips-us-east-1" : {
+            "deprecated" : true
+          },
+          "fips-us-west-2" : {
+            "deprecated" : true
+          },
+          "ui-ap-northeast-1" : { },
+          "ui-ap-northeast-2" : { },
+          "ui-ap-southeast-1" : { },
+          "ui-ap-southeast-2" : { },
+          "ui-ca-central-1" : { },
+          "ui-eu-central-1" : { },
+          "ui-eu-west-2" : { },
+          "ui-us-east-1" : { },
+          "ui-us-west-2" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "workdocs" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "eu-west-1" : { },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "workdocs-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "workdocs-fips.us-west-2.amazonaws.com"
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "workdocs-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "workdocs-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "workmail" : {
+        "defaults" : {
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "eu-west-1" : { },
+          "us-east-1" : { },
+          "us-west-2" : { }
+        }
+      },
+      "workspaces" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "workspaces-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "workspaces-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "workspaces-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "workspaces-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "workspaces-web" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "workspaces-web-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "workspaces-web-fips.us-west-2.amazonaws.com"
+          },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "workspaces-web-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "workspaces-web-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "xray" : {
+        "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ap-southeast-5" : { },
+          "ap-southeast-7" : { },
+          "ca-central-1" : { },
+          "ca-west-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "xray-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "xray-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "xray-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "xray-fips.us-west-2.amazonaws.com"
+          },
+          "il-central-1" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "mx-central-1" : { },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "xray-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "xray-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "xray-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "xray-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      }
+    }
+  }, {
+    "defaults" : {
+      "hostname" : "{service}.{region}.{dnsSuffix}",
+      "protocols" : [ "https" ],
+      "signatureVersions" : [ "v4" ],
+      "variants" : [ {
+        "dnsSuffix" : "amazonaws.com.cn",
+        "hostname" : "{service}-fips.{region}.{dnsSuffix}",
+        "tags" : [ "fips" ]
+      }, {
+        "dnsSuffix" : "api.amazonwebservices.com.cn",
+        "hostname" : "{service}-fips.{region}.{dnsSuffix}",
+        "tags" : [ "dualstack", "fips" ]
+      }, {
+        "dnsSuffix" : "api.amazonwebservices.com.cn",
+        "hostname" : "{service}.{region}.{dnsSuffix}",
+        "tags" : [ "dualstack" ]
+      } ]
+    },
+    "dnsSuffix" : "amazonaws.com.cn",
+    "partition" : "aws-cn",
+    "partitionName" : "AWS China",
+    "regionRegex" : "^cn\\-\\w+\\-\\d+$",
+    "regions" : {
+      "cn-north-1" : {
+        "description" : "China (Beijing)"
+      },
+      "cn-northwest-1" : {
+        "description" : "China (Ningxia)"
+      }
+    },
+    "services" : {
+      "access-analyzer" : {
+        "endpoints" : {
+          "cn-north-1" : {
+            "variants" : [ {
+              "hostname" : "access-analyzer.cn-north-1.api.amazonwebservices.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "cn-northwest-1" : {
+            "variants" : [ {
+              "hostname" : "access-analyzer.cn-northwest-1.api.amazonwebservices.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "account" : {
+        "endpoints" : {
+          "aws-cn-global" : {
+            "credentialScope" : {
+              "region" : "cn-northwest-1"
+            },
+            "hostname" : "account.cn-northwest-1.amazonaws.com.cn"
+          }
+        },
+        "isRegionalized" : false,
+        "partitionEndpoint" : "aws-cn-global"
+      },
+      "acm" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "acm-pca" : {
+        "defaults" : {
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "airflow" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "api.ecr" : {
+        "endpoints" : {
+          "cn-north-1" : {
+            "credentialScope" : {
+              "region" : "cn-north-1"
+            },
+            "hostname" : "api.ecr.cn-north-1.amazonaws.com.cn",
+            "variants" : [ {
+              "hostname" : "ecr.cn-north-1.api.amazonwebservices.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "cn-northwest-1" : {
+            "credentialScope" : {
+              "region" : "cn-northwest-1"
+            },
+            "hostname" : "api.ecr.cn-northwest-1.amazonaws.com.cn",
+            "variants" : [ {
+              "hostname" : "ecr.cn-northwest-1.api.amazonwebservices.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "api.pricing" : {
+        "defaults" : {
+          "credentialScope" : {
+            "service" : "pricing"
+          }
+        },
+        "endpoints" : {
+          "cn-northwest-1" : { }
+        }
+      },
+      "api.sagemaker" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "api.tunneling.iot" : {
+        "defaults" : {
+          "variants" : [ {
+            "dnsSuffix" : "amazonaws.com.cn",
+            "hostname" : "api.tunneling.iot-fips.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          }, {
+            "dnsSuffix" : "api.amazonwebservices.com.cn",
+            "hostname" : "api.iot-tunneling-fips.{region}.{dnsSuffix}",
+            "tags" : [ "dualstack", "fips" ]
+          }, {
+            "dnsSuffix" : "api.amazonwebservices.com.cn",
+            "hostname" : "api.iot-tunneling.{region}.{dnsSuffix}",
+            "tags" : [ "dualstack" ]
+          } ]
+        },
+        "endpoints" : {
+          "cn-north-1" : {
+            "variants" : [ {
+              "hostname" : "api.iot-tunneling.cn-north-1.api.amazonwebservices.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "cn-northwest-1" : {
+            "variants" : [ {
+              "hostname" : "api.iot-tunneling.cn-northwest-1.api.amazonwebservices.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "apigateway" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "appconfig" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "appconfigdata" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "application-autoscaling" : {
+        "defaults" : {
+          "protocols" : [ "http", "https" ]
+        },
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "applicationinsights" : {
+        "endpoints" : {
+          "cn-north-1" : {
+            "credentialScope" : {
+              "region" : "cn-north-1"
+            },
+            "hostname" : "applicationinsights.cn-north-1.amazonaws.com.cn"
+          },
+          "cn-northwest-1" : {
+            "credentialScope" : {
+              "region" : "cn-northwest-1"
+            },
+            "hostname" : "applicationinsights.cn-northwest-1.amazonaws.com.cn"
+          }
+        }
+      },
+      "appmesh" : {
+        "endpoints" : {
+          "cn-north-1" : {
+            "variants" : [ {
+              "hostname" : "appmesh.cn-north-1.api.amazonwebservices.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "cn-northwest-1" : {
+            "variants" : [ {
+              "hostname" : "appmesh.cn-northwest-1.api.amazonwebservices.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "appsync" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "arc-zonal-shift" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "athena" : {
+        "endpoints" : {
+          "cn-north-1" : {
+            "variants" : [ {
+              "hostname" : "athena.cn-north-1.api.amazonwebservices.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "cn-northwest-1" : {
+            "variants" : [ {
+              "hostname" : "athena.cn-northwest-1.api.amazonwebservices.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "autoscaling" : {
+        "defaults" : {
+          "protocols" : [ "http", "https" ]
+        },
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "autoscaling-plans" : {
+        "defaults" : {
+          "protocols" : [ "http", "https" ]
+        },
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "backup" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "batch" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "budgets" : {
+        "endpoints" : {
+          "aws-cn-global" : {
+            "credentialScope" : {
+              "region" : "cn-northwest-1"
+            },
+            "hostname" : "budgets.amazonaws.com.cn"
+          }
+        },
+        "isRegionalized" : false,
+        "partitionEndpoint" : "aws-cn-global"
+      },
+      "cassandra" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "ce" : {
+        "endpoints" : {
+          "aws-cn-global" : {
+            "credentialScope" : {
+              "region" : "cn-northwest-1"
+            },
+            "hostname" : "ce.cn-northwest-1.amazonaws.com.cn"
+          }
+        },
+        "isRegionalized" : false,
+        "partitionEndpoint" : "aws-cn-global"
+      },
+      "cloudcontrolapi" : {
+        "endpoints" : {
+          "cn-north-1" : {
+            "variants" : [ {
+              "hostname" : "cloudcontrolapi.cn-north-1.api.amazonwebservices.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "cn-northwest-1" : {
+            "variants" : [ {
+              "hostname" : "cloudcontrolapi.cn-northwest-1.api.amazonwebservices.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "cloudformation" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "cloudfront" : {
+        "endpoints" : {
+          "aws-cn-global" : {
+            "credentialScope" : {
+              "region" : "cn-northwest-1"
+            },
+            "hostname" : "cloudfront.cn-northwest-1.amazonaws.com.cn",
+            "protocols" : [ "http", "https" ]
+          }
+        },
+        "isRegionalized" : false,
+        "partitionEndpoint" : "aws-cn-global"
+      },
+      "cloudtrail" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "codebuild" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "codecommit" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "codedeploy" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "codepipeline" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "cognito-identity" : {
+        "endpoints" : {
+          "cn-north-1" : {
+            "variants" : [ {
+              "hostname" : "cognito-identity.cn-north-1.amazonaws.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "compute-optimizer" : {
+        "endpoints" : {
+          "cn-north-1" : {
+            "credentialScope" : {
+              "region" : "cn-north-1"
+            },
+            "hostname" : "compute-optimizer.cn-north-1.amazonaws.com.cn"
+          },
+          "cn-northwest-1" : {
+            "credentialScope" : {
+              "region" : "cn-northwest-1"
+            },
+            "hostname" : "compute-optimizer.cn-northwest-1.amazonaws.com.cn"
+          }
+        }
+      },
+      "config" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "cur" : {
+        "endpoints" : {
+          "cn-northwest-1" : { }
+        }
+      },
+      "data-ats.iot" : {
+        "defaults" : {
+          "credentialScope" : {
+            "service" : "iotdata"
+          },
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "cn-north-1" : {
+            "hostname" : "data.ats.iot.cn-north-1.amazonaws.com.cn",
+            "protocols" : [ "https" ]
+          },
+          "cn-northwest-1" : { }
+        }
+      },
+      "data.iot" : {
+        "defaults" : {
+          "credentialScope" : {
+            "service" : "iotdata"
+          },
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "data.jobs.iot" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "databrew" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "datasync" : {
+        "endpoints" : {
+          "cn-north-1" : {
+            "variants" : [ {
+              "hostname" : "datasync.cn-north-1.api.amazonwebservices.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "cn-northwest-1" : {
+            "variants" : [ {
+              "hostname" : "datasync.cn-northwest-1.api.amazonwebservices.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "datazone" : {
+        "defaults" : {
+          "dnsSuffix" : "api.amazonwebservices.com.cn",
+          "variants" : [ {
+            "dnsSuffix" : "api.amazonwebservices.com.cn",
+            "hostname" : "{service}-fips.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "cn-north-1" : {
+            "hostname" : "datazone.cn-north-1.api.amazonwebservices.com.cn"
+          },
+          "cn-northwest-1" : {
+            "hostname" : "datazone.cn-northwest-1.api.amazonwebservices.com.cn"
+          }
+        }
+      },
+      "dax" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "directconnect" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "dlm" : {
+        "endpoints" : {
+          "cn-north-1" : {
+            "variants" : [ {
+              "hostname" : "dlm.cn-north-1.api.amazonwebservices.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "cn-northwest-1" : {
+            "variants" : [ {
+              "hostname" : "dlm.cn-northwest-1.api.amazonwebservices.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "dms" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "docdb" : {
+        "endpoints" : {
+          "cn-northwest-1" : {
+            "credentialScope" : {
+              "region" : "cn-northwest-1"
+            },
+            "hostname" : "rds.cn-northwest-1.amazonaws.com.cn"
+          }
+        }
+      },
+      "ds" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "dynamodb" : {
+        "defaults" : {
+          "protocols" : [ "http", "https" ]
+        },
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "ebs" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "ec2" : {
+        "defaults" : {
+          "protocols" : [ "http", "https" ]
+        },
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "ecs" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "eks" : {
+        "defaults" : {
+          "protocols" : [ "http", "https" ]
+        },
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "eks-auth" : {
+        "defaults" : {
+          "dnsSuffix" : "api.amazonwebservices.com.cn",
+          "variants" : [ {
+            "dnsSuffix" : "api.amazonwebservices.com.cn",
+            "hostname" : "{service}-fips.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "cn-north-1" : {
+            "hostname" : "eks-auth.cn-north-1.api.amazonwebservices.com.cn"
+          },
+          "cn-northwest-1" : {
+            "hostname" : "eks-auth.cn-northwest-1.api.amazonwebservices.com.cn"
+          }
+        }
+      },
+      "elasticache" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "elasticbeanstalk" : {
+        "endpoints" : {
+          "cn-north-1" : {
+            "variants" : [ {
+              "hostname" : "elasticbeanstalk.cn-north-1.api.amazonwebservices.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "cn-northwest-1" : {
+            "variants" : [ {
+              "hostname" : "elasticbeanstalk.cn-northwest-1.api.amazonwebservices.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "elasticfilesystem" : {
+        "endpoints" : {
+          "cn-north-1" : {
+            "variants" : [ {
+              "hostname" : "elasticfilesystem-fips.cn-north-1.amazonaws.com.cn",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "cn-northwest-1" : {
+            "variants" : [ {
+              "hostname" : "elasticfilesystem-fips.cn-northwest-1.amazonaws.com.cn",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "fips-cn-north-1" : {
+            "credentialScope" : {
+              "region" : "cn-north-1"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticfilesystem-fips.cn-north-1.amazonaws.com.cn"
+          },
+          "fips-cn-northwest-1" : {
+            "credentialScope" : {
+              "region" : "cn-northwest-1"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticfilesystem-fips.cn-northwest-1.amazonaws.com.cn"
+          }
+        }
+      },
+      "elasticloadbalancing" : {
+        "defaults" : {
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "elasticmapreduce" : {
+        "defaults" : {
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "cn-north-1" : {
+            "variants" : [ {
+              "hostname" : "elasticmapreduce.cn-north-1.api.amazonwebservices.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "cn-northwest-1" : {
+            "variants" : [ {
+              "hostname" : "elasticmapreduce.cn-northwest-1.api.amazonwebservices.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "emr-containers" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "emr-serverless" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "entitlement.marketplace" : {
+        "endpoints" : {
+          "cn-northwest-1" : {
+            "credentialScope" : {
+              "region" : "cn-northwest-1"
+            },
+            "hostname" : "entitlement-marketplace.cn-northwest-1.amazonaws.com.cn",
+            "protocols" : [ "https" ]
+          }
+        }
+      },
+      "es" : {
+        "endpoints" : {
+          "cn-north-1" : {
+            "variants" : [ {
+              "hostname" : "aos.cn-north-1.api.amazonwebservices.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "cn-northwest-1" : {
+            "variants" : [ {
+              "hostname" : "aos.cn-northwest-1.api.amazonwebservices.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "events" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "firehose" : {
+        "endpoints" : {
+          "cn-north-1" : {
+            "variants" : [ {
+              "hostname" : "firehose.cn-north-1.api.amazonwebservices.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "cn-northwest-1" : {
+            "variants" : [ {
+              "hostname" : "firehose.cn-northwest-1.api.amazonwebservices.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "fms" : {
+        "defaults" : {
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "fsx" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "gamelift" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "gameliftstreams" : {
+        "defaults" : {
+          "dnsSuffix" : "api.amazonwebservices.com.cn",
+          "variants" : [ {
+            "dnsSuffix" : "api.amazonwebservices.com.cn",
+            "hostname" : "{service}-fips.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "cn-north-1" : {
+            "hostname" : "gameliftstreams.cn-north-1.api.amazonwebservices.com.cn"
+          },
+          "cn-northwest-1" : {
+            "hostname" : "gameliftstreams.cn-northwest-1.api.amazonwebservices.com.cn"
+          }
+        }
+      },
+      "glacier" : {
+        "defaults" : {
+          "protocols" : [ "http", "https" ]
+        },
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "glue" : {
+        "endpoints" : {
+          "cn-north-1" : {
+            "variants" : [ {
+              "hostname" : "glue.cn-north-1.api.amazonwebservices.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "cn-northwest-1" : {
+            "variants" : [ {
+              "hostname" : "glue.cn-northwest-1.api.amazonwebservices.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "greengrass" : {
+        "defaults" : {
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "cn-north-1" : { }
+        },
+        "isRegionalized" : true
+      },
+      "guardduty" : {
+        "defaults" : {
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        },
+        "isRegionalized" : true
+      },
+      "health" : {
+        "defaults" : {
+          "protocols" : [ "https" ],
+          "sslCommonName" : "health.cn-northwest-1.amazonaws.com.cn"
+        },
+        "endpoints" : {
+          "aws-cn-global" : {
+            "credentialScope" : {
+              "region" : "cn-northwest-1"
+            },
+            "hostname" : "global.health.amazonaws.com.cn"
+          }
+        },
+        "isRegionalized" : false,
+        "partitionEndpoint" : "aws-cn-global"
+      },
+      "iam" : {
+        "endpoints" : {
+          "aws-cn-global" : {
+            "credentialScope" : {
+              "region" : "cn-north-1"
+            },
+            "hostname" : "iam.cn-north-1.amazonaws.com.cn"
+          }
+        },
+        "isRegionalized" : false,
+        "partitionEndpoint" : "aws-cn-global"
+      },
+      "identitystore" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "inspector2" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "internetmonitor" : {
+        "defaults" : {
+          "dnsSuffix" : "api.amazonwebservices.com.cn",
+          "variants" : [ {
+            "dnsSuffix" : "api.amazonwebservices.com.cn",
+            "hostname" : "{service}-fips.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "cn-north-1" : {
+            "hostname" : "internetmonitor.cn-north-1.api.amazonwebservices.com.cn"
+          },
+          "cn-northwest-1" : {
+            "hostname" : "internetmonitor.cn-northwest-1.api.amazonwebservices.com.cn"
+          }
+        }
+      },
+      "iot" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "iotanalytics" : {
+        "endpoints" : {
+          "cn-north-1" : { }
+        }
+      },
+      "iotevents" : {
+        "endpoints" : {
+          "cn-north-1" : { }
+        }
+      },
+      "ioteventsdata" : {
+        "endpoints" : {
+          "cn-north-1" : {
+            "credentialScope" : {
+              "region" : "cn-north-1"
+            },
+            "hostname" : "data.iotevents.cn-north-1.amazonaws.com.cn"
+          }
+        }
+      },
+      "iotsecuredtunneling" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "iotsitewise" : {
+        "endpoints" : {
+          "cn-north-1" : { }
+        }
+      },
+      "iottwinmaker" : {
+        "endpoints" : {
+          "api-cn-north-1" : {
+            "credentialScope" : {
+              "region" : "cn-north-1"
+            },
+            "hostname" : "api.iottwinmaker.cn-north-1.amazonaws.com.cn"
+          },
+          "cn-north-1" : { },
+          "data-cn-north-1" : {
+            "credentialScope" : {
+              "region" : "cn-north-1"
+            },
+            "hostname" : "data.iottwinmaker.cn-north-1.amazonaws.com.cn"
+          }
+        }
+      },
+      "kafka" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "kendra-ranking" : {
+        "defaults" : {
+          "dnsSuffix" : "api.amazonwebservices.com.cn",
+          "variants" : [ {
+            "dnsSuffix" : "api.amazonwebservices.com.cn",
+            "hostname" : "{service}-fips.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "cn-north-1" : {
+            "hostname" : "kendra-ranking.cn-north-1.api.amazonwebservices.com.cn"
+          },
+          "cn-northwest-1" : {
+            "hostname" : "kendra-ranking.cn-northwest-1.api.amazonwebservices.com.cn"
+          }
+        }
+      },
+      "kinesis" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "kinesisanalytics" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "kinesisvideo" : {
+        "endpoints" : {
+          "cn-north-1" : { }
+        }
+      },
+      "kms" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "lakeformation" : {
+        "endpoints" : {
+          "cn-north-1" : {
+            "variants" : [ {
+              "hostname" : "lakeformation.cn-north-1.api.amazonwebservices.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "cn-northwest-1" : {
+            "variants" : [ {
+              "hostname" : "lakeformation.cn-northwest-1.api.amazonwebservices.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "lambda" : {
+        "endpoints" : {
+          "cn-north-1" : {
+            "variants" : [ {
+              "hostname" : "lambda.cn-north-1.api.amazonwebservices.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "cn-northwest-1" : {
+            "variants" : [ {
+              "hostname" : "lambda.cn-northwest-1.api.amazonwebservices.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "license-manager" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "license-manager-linux-subscriptions" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "logs" : {
+        "endpoints" : {
+          "cn-north-1" : {
+            "variants" : [ {
+              "hostname" : "logs.cn-north-1.api.amazonwebservices.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "cn-northwest-1" : {
+            "variants" : [ {
+              "hostname" : "logs.cn-northwest-1.api.amazonwebservices.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "mediaconvert" : {
+        "endpoints" : {
+          "cn-northwest-1" : {
+            "variants" : [ {
+              "hostname" : "mediaconvert.cn-northwest-1.api.amazonwebservices.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "memory-db" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "metering.marketplace" : {
+        "defaults" : {
+          "credentialScope" : {
+            "service" : "aws-marketplace"
+          }
+        },
+        "endpoints" : {
+          "cn-northwest-1" : { }
+        }
+      },
+      "metrics.sagemaker" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "monitoring" : {
+        "defaults" : {
+          "protocols" : [ "http", "https" ]
+        },
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "mq" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "neptune" : {
+        "endpoints" : {
+          "cn-north-1" : {
+            "credentialScope" : {
+              "region" : "cn-north-1"
+            },
+            "hostname" : "rds.cn-north-1.amazonaws.com.cn"
+          },
+          "cn-northwest-1" : {
+            "credentialScope" : {
+              "region" : "cn-northwest-1"
+            },
+            "hostname" : "rds.cn-northwest-1.amazonaws.com.cn"
+          }
+        }
+      },
+      "network-firewall" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "notifications" : {
+        "defaults" : {
+          "dnsSuffix" : "api.amazonwebservices.com.cn",
+          "variants" : [ {
+            "dnsSuffix" : "api.amazonwebservices.com.cn",
+            "hostname" : "{service}-fips.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "cn-north-1" : {
+            "hostname" : "notifications.cn-north-1.api.amazonwebservices.com.cn"
+          },
+          "cn-northwest-1" : {
+            "hostname" : "notifications.cn-northwest-1.api.amazonwebservices.com.cn"
+          }
+        }
+      },
+      "oam" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "oidc" : {
+        "endpoints" : {
+          "cn-north-1" : {
+            "credentialScope" : {
+              "region" : "cn-north-1"
+            },
+            "hostname" : "oidc.cn-north-1.amazonaws.com.cn"
+          },
+          "cn-northwest-1" : {
+            "credentialScope" : {
+              "region" : "cn-northwest-1"
+            },
+            "hostname" : "oidc.cn-northwest-1.amazonaws.com.cn"
+          }
+        }
+      },
+      "organizations" : {
+        "endpoints" : {
+          "aws-cn-global" : {
+            "credentialScope" : {
+              "region" : "cn-northwest-1"
+            },
+            "hostname" : "organizations.cn-northwest-1.amazonaws.com.cn"
+          }
+        },
+        "isRegionalized" : false,
+        "partitionEndpoint" : "aws-cn-global"
+      },
+      "personalize" : {
+        "endpoints" : {
+          "cn-north-1" : { }
+        }
+      },
+      "pi" : {
+        "endpoints" : {
+          "cn-north-1" : {
+            "protocols" : [ "https" ],
+            "variants" : [ {
+              "hostname" : "pi.cn-north-1.api.amazonwebservices.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "cn-northwest-1" : {
+            "protocols" : [ "https" ],
+            "variants" : [ {
+              "hostname" : "pi.cn-northwest-1.api.amazonwebservices.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "pipes" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "polly" : {
+        "endpoints" : {
+          "cn-northwest-1" : {
+            "variants" : [ {
+              "hostname" : "polly.cn-northwest-1.api.amazonwebservices.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "portal.sso" : {
+        "endpoints" : {
+          "cn-north-1" : {
+            "credentialScope" : {
+              "region" : "cn-north-1"
+            },
+            "hostname" : "portal.sso.cn-north-1.amazonaws.com.cn"
+          },
+          "cn-northwest-1" : {
+            "credentialScope" : {
+              "region" : "cn-northwest-1"
+            },
+            "hostname" : "portal.sso.cn-northwest-1.amazonaws.com.cn"
+          }
+        }
+      },
+      "qbusiness" : {
+        "defaults" : {
+          "dnsSuffix" : "api.amazonwebservices.com.cn",
+          "variants" : [ {
+            "dnsSuffix" : "api.amazonwebservices.com.cn",
+            "hostname" : "{service}-fips.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "cn-north-1" : {
+            "hostname" : "qbusiness.cn-north-1.api.amazonwebservices.com.cn"
+          },
+          "cn-northwest-1" : {
+            "hostname" : "qbusiness.cn-northwest-1.api.amazonwebservices.com.cn"
+          }
+        }
+      },
+      "quicksight" : {
+        "endpoints" : {
+          "cn-north-1" : { }
+        }
+      },
+      "ram" : {
+        "endpoints" : {
+          "cn-north-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "cn-northwest-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "rbin" : {
+        "endpoints" : {
+          "cn-north-1" : {
+            "variants" : [ {
+              "hostname" : "rbin.cn-north-1.api.amazonwebservices.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "cn-northwest-1" : {
+            "variants" : [ {
+              "hostname" : "rbin.cn-northwest-1.api.amazonwebservices.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "rds" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "redshift" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "redshift-serverless" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "resource-groups" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "rolesanywhere" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "route53" : {
+        "endpoints" : {
+          "aws-cn-global" : {
+            "credentialScope" : {
+              "region" : "cn-northwest-1"
+            },
+            "hostname" : "route53.amazonaws.com.cn"
+          }
+        },
+        "isRegionalized" : false,
+        "partitionEndpoint" : "aws-cn-global"
+      },
+      "route53resolver" : {
+        "defaults" : {
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "runtime.sagemaker" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "s3" : {
+        "defaults" : {
+          "protocols" : [ "http", "https" ],
+          "signatureVersions" : [ "s3v4" ],
+          "variants" : [ {
+            "dnsSuffix" : "amazonaws.com.cn",
+            "hostname" : "{service}.dualstack.{region}.{dnsSuffix}",
+            "tags" : [ "dualstack" ]
+          } ]
+        },
+        "endpoints" : {
+          "cn-north-1" : {
+            "variants" : [ {
+              "hostname" : "s3.dualstack.cn-north-1.amazonaws.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "cn-northwest-1" : {
+            "variants" : [ {
+              "hostname" : "s3.dualstack.cn-northwest-1.amazonaws.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "s3-control" : {
+        "defaults" : {
+          "protocols" : [ "https" ],
+          "signatureVersions" : [ "s3v4" ],
+          "variants" : [ {
+            "dnsSuffix" : "amazonaws.com.cn",
+            "hostname" : "{service}.dualstack.{region}.{dnsSuffix}",
+            "tags" : [ "dualstack" ]
+          } ]
+        },
+        "endpoints" : {
+          "cn-north-1" : {
+            "credentialScope" : {
+              "region" : "cn-north-1"
+            },
+            "hostname" : "s3-control.cn-north-1.amazonaws.com.cn",
+            "signatureVersions" : [ "s3v4" ],
+            "variants" : [ {
+              "hostname" : "s3-control.dualstack.cn-north-1.amazonaws.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "cn-northwest-1" : {
+            "credentialScope" : {
+              "region" : "cn-northwest-1"
+            },
+            "hostname" : "s3-control.cn-northwest-1.amazonaws.com.cn",
+            "signatureVersions" : [ "s3v4" ],
+            "variants" : [ {
+              "hostname" : "s3-control.dualstack.cn-northwest-1.amazonaws.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "savingsplans" : {
+        "endpoints" : {
+          "cn-north-1" : {
+            "credentialScope" : {
+              "region" : "cn-north-1"
+            },
+            "hostname" : "savingsplans.cn-north-1.amazonaws.com.cn"
+          },
+          "cn-northwest-1" : {
+            "credentialScope" : {
+              "region" : "cn-northwest-1"
+            },
+            "hostname" : "savingsplans.cn-northwest-1.amazonaws.com.cn"
+          }
+        },
+        "isRegionalized" : true
+      },
+      "schemas" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "secretsmanager" : {
+        "endpoints" : {
+          "cn-north-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "cn-northwest-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "securityhub" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "serverlessrepo" : {
+        "defaults" : {
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "cn-north-1" : {
+            "protocols" : [ "https" ]
+          },
+          "cn-northwest-1" : {
+            "protocols" : [ "https" ]
+          }
+        }
+      },
+      "servicecatalog" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "servicediscovery" : {
+        "endpoints" : {
+          "cn-north-1" : {
+            "variants" : [ {
+              "hostname" : "servicediscovery.cn-north-1.api.amazonwebservices.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "cn-northwest-1" : {
+            "variants" : [ {
+              "hostname" : "servicediscovery.cn-northwest-1.api.amazonwebservices.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "servicequotas" : {
+        "defaults" : {
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "signer" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { },
+          "verification-cn-north-1" : {
+            "credentialScope" : {
+              "region" : "cn-north-1"
+            },
+            "hostname" : "verification.signer.cn-north-1.amazonaws.com.cn"
+          },
+          "verification-cn-northwest-1" : {
+            "credentialScope" : {
+              "region" : "cn-northwest-1"
+            },
+            "hostname" : "verification.signer.cn-northwest-1.amazonaws.com.cn"
+          }
+        }
+      },
+      "sms" : {
+        "endpoints" : {
+          "cn-north-1" : { }
+        }
+      },
+      "snowball" : {
+        "endpoints" : {
+          "cn-north-1" : {
+            "variants" : [ {
+              "hostname" : "snowball-fips.cn-north-1.amazonaws.com.cn",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "cn-northwest-1" : {
+            "variants" : [ {
+              "hostname" : "snowball-fips.cn-northwest-1.amazonaws.com.cn",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "fips-cn-north-1" : {
+            "credentialScope" : {
+              "region" : "cn-north-1"
+            },
+            "deprecated" : true,
+            "hostname" : "snowball-fips.cn-north-1.amazonaws.com.cn"
+          },
+          "fips-cn-northwest-1" : {
+            "credentialScope" : {
+              "region" : "cn-northwest-1"
+            },
+            "deprecated" : true,
+            "hostname" : "snowball-fips.cn-northwest-1.amazonaws.com.cn"
+          }
+        }
+      },
+      "sns" : {
+        "defaults" : {
+          "protocols" : [ "http", "https" ]
+        },
+        "endpoints" : {
+          "cn-north-1" : {
+            "variants" : [ {
+              "hostname" : "sns.cn-north-1.api.amazonwebservices.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "cn-northwest-1" : {
+            "variants" : [ {
+              "hostname" : "sns.cn-northwest-1.api.amazonwebservices.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "sqs" : {
+        "defaults" : {
+          "protocols" : [ "http", "https" ],
+          "sslCommonName" : "{region}.queue.{dnsSuffix}"
+        },
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "ssm" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "sso" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "states" : {
+        "endpoints" : {
+          "cn-north-1" : {
+            "variants" : [ {
+              "hostname" : "states.cn-north-1.api.amazonwebservices.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "cn-northwest-1" : {
+            "variants" : [ {
+              "hostname" : "states.cn-northwest-1.api.amazonwebservices.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "storagegateway" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "streams.dynamodb" : {
+        "defaults" : {
+          "credentialScope" : {
+            "service" : "dynamodb"
+          },
+          "protocols" : [ "http", "https" ]
+        },
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "sts" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "support" : {
+        "endpoints" : {
+          "aws-cn-global" : {
+            "credentialScope" : {
+              "region" : "cn-north-1"
+            },
+            "hostname" : "support.cn-north-1.amazonaws.com.cn"
+          }
+        },
+        "partitionEndpoint" : "aws-cn-global"
+      },
+      "swf" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "synthetics" : {
+        "endpoints" : {
+          "cn-north-1" : {
+            "variants" : [ {
+              "hostname" : "synthetics.cn-north-1.api.amazonwebservices.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "cn-northwest-1" : {
+            "variants" : [ {
+              "hostname" : "synthetics.cn-northwest-1.api.amazonwebservices.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "tagging" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "transcribe" : {
+        "defaults" : {
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "cn-north-1" : {
+            "credentialScope" : {
+              "region" : "cn-north-1"
+            },
+            "hostname" : "cn.transcribe.cn-north-1.amazonaws.com.cn",
+            "variants" : [ {
+              "hostname" : "transcribe.cn-north-1.api.amazonwebservices.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "cn-northwest-1" : {
+            "credentialScope" : {
+              "region" : "cn-northwest-1"
+            },
+            "hostname" : "cn.transcribe.cn-northwest-1.amazonaws.com.cn",
+            "variants" : [ {
+              "hostname" : "transcribe.cn-northwest-1.api.amazonwebservices.com.cn",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "transcribestreaming" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "transfer" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
+      "waf-regional" : {
+        "endpoints" : {
+          "cn-north-1" : {
+            "credentialScope" : {
+              "region" : "cn-north-1"
+            },
+            "hostname" : "waf-regional.cn-north-1.amazonaws.com.cn",
+            "variants" : [ {
+              "hostname" : "waf-regional-fips.cn-north-1.amazonaws.com.cn",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "cn-northwest-1" : {
+            "credentialScope" : {
+              "region" : "cn-northwest-1"
+            },
+            "hostname" : "waf-regional.cn-northwest-1.amazonaws.com.cn",
+            "variants" : [ {
+              "hostname" : "waf-regional-fips.cn-northwest-1.amazonaws.com.cn",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "fips-cn-north-1" : {
+            "credentialScope" : {
+              "region" : "cn-north-1"
+            },
+            "deprecated" : true,
+            "hostname" : "waf-regional-fips.cn-north-1.amazonaws.com.cn"
+          },
+          "fips-cn-northwest-1" : {
+            "credentialScope" : {
+              "region" : "cn-northwest-1"
+            },
+            "deprecated" : true,
+            "hostname" : "waf-regional-fips.cn-northwest-1.amazonaws.com.cn"
+          }
+        }
+      },
+      "wafv2" : {
+        "endpoints" : {
+          "cn-north-1" : {
+            "credentialScope" : {
+              "region" : "cn-north-1"
+            },
+            "hostname" : "wafv2.cn-north-1.amazonaws.com.cn",
+            "variants" : [ {
+              "hostname" : "wafv2-fips.cn-north-1.amazonaws.com.cn",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "cn-northwest-1" : {
+            "credentialScope" : {
+              "region" : "cn-northwest-1"
+            },
+            "hostname" : "wafv2.cn-northwest-1.amazonaws.com.cn",
+            "variants" : [ {
+              "hostname" : "wafv2-fips.cn-northwest-1.amazonaws.com.cn",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "fips-cn-north-1" : {
+            "credentialScope" : {
+              "region" : "cn-north-1"
+            },
+            "deprecated" : true,
+            "hostname" : "wafv2-fips.cn-north-1.amazonaws.com.cn"
+          },
+          "fips-cn-northwest-1" : {
+            "credentialScope" : {
+              "region" : "cn-northwest-1"
+            },
+            "deprecated" : true,
+            "hostname" : "wafv2-fips.cn-northwest-1.amazonaws.com.cn"
+          }
+        }
+      },
+      "workspaces" : {
+        "endpoints" : {
+          "cn-northwest-1" : { }
+        }
+      },
+      "xray" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      }
+    }
+  }, {
+    "defaults" : {
+      "hostname" : "{service}.{region}.{dnsSuffix}",
+      "protocols" : [ "https" ],
+      "signatureVersions" : [ "v4" ],
+      "variants" : [ {
+        "dnsSuffix" : "amazonaws.com",
+        "hostname" : "{service}-fips.{region}.{dnsSuffix}",
+        "tags" : [ "fips" ]
+      }, {
+        "dnsSuffix" : "api.aws",
+        "hostname" : "{service}-fips.{region}.{dnsSuffix}",
+        "tags" : [ "dualstack", "fips" ]
+      }, {
+        "dnsSuffix" : "api.aws",
+        "hostname" : "{service}.{region}.{dnsSuffix}",
+        "tags" : [ "dualstack" ]
+      } ]
+    },
+    "dnsSuffix" : "amazonaws.com",
+    "partition" : "aws-us-gov",
+    "partitionName" : "AWS GovCloud (US)",
+    "regionRegex" : "^us\\-gov\\-\\w+\\-\\d+$",
+    "regions" : {
+      "us-gov-east-1" : {
+        "description" : "AWS GovCloud (US-East)"
+      },
+      "us-gov-west-1" : {
+        "description" : "AWS GovCloud (US-West)"
+      }
+    },
+    "services" : {
+      "access-analyzer" : {
+        "endpoints" : {
+          "us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "hostname" : "access-analyzer.us-gov-east-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "access-analyzer.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "access-analyzer.us-gov-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            }, {
+              "hostname" : "access-analyzer.us-gov-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            } ]
+          },
+          "us-gov-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "access-analyzer.us-gov-east-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "hostname" : "access-analyzer.us-gov-west-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "access-analyzer.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "access-analyzer.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            }, {
+              "hostname" : "access-analyzer.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            } ]
+          },
+          "us-gov-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "access-analyzer.us-gov-west-1.amazonaws.com"
+          }
+        }
+      },
+      "acm" : {
+        "defaults" : {
+          "variants" : [ {
+            "hostname" : "acm.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "hostname" : "acm.us-gov-east-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "hostname" : "acm.us-gov-west-1.amazonaws.com"
+          }
+        }
+      },
+      "acm-pca" : {
+        "defaults" : {
+          "protocols" : [ "https" ],
+          "variants" : [ {
+            "hostname" : "acm-pca.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "acm-pca.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "acm-pca.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "acm-pca.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "acm-pca.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "aoss" : {
+        "endpoints" : {
+          "us-gov-east-1" : { },
+          "us-gov-west-1" : { }
+        }
+      },
+      "api.detective" : {
+        "defaults" : {
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "api.detective-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "detective-fips.us-gov-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "detective.us-gov-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-gov-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "api.detective-fips.us-gov-east-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "api.detective-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "detective-fips.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "detective.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-gov-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "api.detective-fips.us-gov-west-1.amazonaws.com"
+          }
+        }
+      },
+      "api.ecr" : {
+        "defaults" : {
+          "variants" : [ {
+            "hostname" : "ecr-fips.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "dkr-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "variants" : [ {
+              "hostname" : "ecr-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "dkr-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "variants" : [ {
+              "hostname" : "ecr-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "fips-dkr-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ecr-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-dkr-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ecr-fips.us-gov-west-1.amazonaws.com"
+          },
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ecr-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ecr-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "hostname" : "api.ecr.us-gov-east-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "ecr-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "ecr-fips.us-gov-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "ecr.us-gov-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "hostname" : "api.ecr.us-gov-west-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "ecr-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "ecr-fips.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "ecr.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "api.sagemaker" : {
+        "defaults" : {
+          "variants" : [ {
+            "hostname" : "api-fips.sagemaker.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "api-fips.sagemaker.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "api-fips.sagemaker.us-gov-east-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "api-fips.sagemaker.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "api-fips.sagemaker.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-west-1-fips-secondary" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "api.sagemaker.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-west-1-secondary" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "variants" : [ {
+              "hostname" : "api.sagemaker.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "api.tunneling.iot" : {
+        "defaults" : {
+          "variants" : [ {
+            "dnsSuffix" : "amazonaws.com",
+            "hostname" : "api.tunneling.iot-fips.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          }, {
+            "dnsSuffix" : "api.aws",
+            "hostname" : "api.iot-tunneling-fips.{region}.{dnsSuffix}",
+            "tags" : [ "dualstack", "fips" ]
+          }, {
+            "dnsSuffix" : "api.aws",
+            "hostname" : "api.iot-tunneling.{region}.{dnsSuffix}",
+            "tags" : [ "dualstack" ]
+          } ]
+        },
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "api.tunneling.iot-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "api.tunneling.iot-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "api.iot-tunneling-fips.us-gov-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "api.iot-tunneling.us-gov-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            }, {
+              "hostname" : "api.tunneling.iot-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "api.iot-tunneling-fips.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "api.iot-tunneling.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            }, {
+              "hostname" : "api.tunneling.iot-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "apigateway" : {
+        "endpoints" : {
+          "us-gov-east-1" : { },
+          "us-gov-west-1" : { }
+        }
+      },
+      "appconfig" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "appconfig.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "appconfig.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "appconfig.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "appconfig.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "appconfigdata" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "appconfigdata.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "appconfigdata.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "appconfigdata.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "appconfigdata.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "application-autoscaling" : {
+        "defaults" : {
+          "protocols" : [ "http", "https" ]
+        },
+        "endpoints" : {
+          "us-gov-east-1" : {
+            "hostname" : "application-autoscaling.us-gov-east-1.amazonaws.com",
+            "protocols" : [ "http", "https" ],
+            "variants" : [ {
+              "hostname" : "application-autoscaling.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-east-1-fips" : {
+            "deprecated" : true,
+            "hostname" : "application-autoscaling.us-gov-east-1.amazonaws.com",
+            "protocols" : [ "http", "https" ]
+          },
+          "us-gov-west-1" : {
+            "hostname" : "application-autoscaling.us-gov-west-1.amazonaws.com",
+            "protocols" : [ "http", "https" ],
+            "variants" : [ {
+              "hostname" : "application-autoscaling.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1-fips" : {
+            "deprecated" : true,
+            "hostname" : "application-autoscaling.us-gov-west-1.amazonaws.com",
+            "protocols" : [ "http", "https" ]
+          }
+        }
+      },
+      "applicationinsights" : {
+        "endpoints" : {
+          "us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "hostname" : "applicationinsights.us-gov-east-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "hostname" : "applicationinsights.us-gov-west-1.amazonaws.com"
+          }
+        }
+      },
+      "appstream2" : {
+        "defaults" : {
+          "credentialScope" : {
+            "service" : "appstream"
+          },
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "appstream2-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "appstream2-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "appstream2-fips.us-gov-east-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "appstream2-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "appstream2-fips.us-gov-west-1.amazonaws.com"
+          }
+        }
+      },
+      "arc-zonal-shift" : {
+        "endpoints" : {
+          "us-gov-east-1" : { },
+          "us-gov-west-1" : { }
+        }
+      },
+      "athena" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "athena-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "athena-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "athena-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "athena-fips.us-gov-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "athena.us-gov-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "athena-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "athena-fips.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "athena.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "autoscaling" : {
+        "defaults" : {
+          "variants" : [ {
+            "hostname" : "autoscaling.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "us-gov-east-1" : {
+            "protocols" : [ "http", "https" ]
+          },
+          "us-gov-west-1" : {
+            "protocols" : [ "http", "https" ]
+          }
+        }
+      },
+      "autoscaling-plans" : {
+        "defaults" : {
+          "protocols" : [ "http", "https" ]
+        },
+        "endpoints" : {
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "autoscaling-plans.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-east-1-fips" : {
+            "deprecated" : true,
+            "hostname" : "autoscaling-plans.us-gov-east-1.amazonaws.com",
+            "protocols" : [ "http", "https" ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "autoscaling-plans.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1-fips" : {
+            "deprecated" : true,
+            "hostname" : "autoscaling-plans.us-gov-west-1.amazonaws.com",
+            "protocols" : [ "http", "https" ]
+          }
+        }
+      },
+      "backup" : {
+        "endpoints" : {
+          "us-gov-east-1" : { },
+          "us-gov-west-1" : { }
+        }
+      },
+      "backup-gateway" : {
+        "endpoints" : {
+          "us-gov-east-1" : { },
+          "us-gov-west-1" : { }
+        }
+      },
+      "batch" : {
+        "defaults" : {
+          "variants" : [ {
+            "hostname" : "batch.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "batch.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "batch.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "batch.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "batch.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "bedrock" : {
+        "endpoints" : {
+          "bedrock-fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "hostname" : "bedrock-fips.us-gov-east-1.amazonaws.com"
+          },
+          "bedrock-fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "hostname" : "bedrock-fips.us-gov-west-1.amazonaws.com"
+          },
+          "bedrock-runtime-fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "hostname" : "bedrock-runtime-fips.us-gov-east-1.amazonaws.com"
+          },
+          "bedrock-runtime-fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "hostname" : "bedrock-runtime-fips.us-gov-west-1.amazonaws.com"
+          },
+          "bedrock-runtime-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "hostname" : "bedrock-runtime.us-gov-east-1.amazonaws.com"
+          },
+          "bedrock-runtime-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "hostname" : "bedrock-runtime.us-gov-west-1.amazonaws.com"
+          },
+          "bedrock-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "hostname" : "bedrock.us-gov-east-1.amazonaws.com"
+          },
+          "bedrock-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "hostname" : "bedrock.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : { },
+          "us-gov-west-1" : { }
+        }
+      },
+      "cassandra" : {
+        "endpoints" : {
+          "us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "hostname" : "cassandra.us-gov-east-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "cassandra.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "cassandra.us-gov-east-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "hostname" : "cassandra.us-gov-west-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "cassandra.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "cassandra.us-gov-west-1.amazonaws.com"
+          }
+        }
+      },
+      "cloudcontrolapi" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "cloudcontrolapi-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "cloudcontrolapi-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "cloudcontrolapi-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "cloudcontrolapi-fips.us-gov-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "cloudcontrolapi.us-gov-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "cloudcontrolapi-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "cloudcontrolapi-fips.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "cloudcontrolapi.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "clouddirectory" : {
+        "endpoints" : {
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "clouddirectory.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "clouddirectory.us-gov-west-1.amazonaws.com"
+          }
+        }
+      },
+      "cloudformation" : {
+        "endpoints" : {
+          "us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "hostname" : "cloudformation.us-gov-east-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "cloudformation.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "cloudformation.us-gov-east-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "hostname" : "cloudformation.us-gov-west-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "cloudformation.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "cloudformation.us-gov-west-1.amazonaws.com"
+          }
+        }
+      },
+      "cloudhsm" : {
+        "endpoints" : {
+          "us-gov-west-1" : { }
+        }
+      },
+      "cloudhsmv2" : {
+        "defaults" : {
+          "credentialScope" : {
+            "service" : "cloudhsm"
+          }
+        },
+        "endpoints" : {
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "cloudhsmv2.us-gov-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "cloudhsmv2.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "cloudtrail" : {
+        "defaults" : {
+          "variants" : [ {
+            "hostname" : "cloudtrail.us-gov-west-1.amazonaws.com",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "cloudtrail.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "cloudtrail.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "cloudtrail.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "cloudtrail.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "codebuild" : {
+        "endpoints" : {
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "codebuild-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "codebuild-fips.us-gov-east-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "codebuild-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "codebuild-fips.us-gov-west-1.amazonaws.com"
+          }
+        }
+      },
+      "codecommit" : {
+        "endpoints" : {
+          "fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "codecommit-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "codecommit-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "codecommit-fips.us-gov-east-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "codecommit-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "codecommit-fips.us-gov-west-1.amazonaws.com"
+          }
+        }
+      },
+      "codedeploy" : {
+        "endpoints" : {
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "codedeploy-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "codedeploy-fips.us-gov-east-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "codedeploy-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "codedeploy-fips.us-gov-west-1.amazonaws.com"
+          }
+        }
+      },
+      "codepipeline" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "codepipeline-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "codepipeline-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "codepipeline-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "codepipeline-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "codestar-connections" : {
+        "endpoints" : {
+          "us-gov-east-1" : { }
+        }
+      },
+      "cognito-identity" : {
+        "endpoints" : {
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "cognito-identity-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "cognito-identity.us-gov-east-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "cognito-identity-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "cognito-identity-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "cognito-identity.us-gov-west-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "cognito-idp" : {
+        "endpoints" : {
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "cognito-idp-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "cognito-idp.us-gov-east-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "cognito-idp-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "cognito-idp-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "cognito-idp.us-gov-west-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "comprehend" : {
+        "defaults" : {
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "comprehend-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "comprehend-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "comprehendmedical" : {
+        "endpoints" : {
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "comprehendmedical-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "comprehendmedical-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "compute-optimizer" : {
+        "endpoints" : {
+          "us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "hostname" : "compute-optimizer-fips.us-gov-east-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "hostname" : "compute-optimizer-fips.us-gov-west-1.amazonaws.com"
+          }
+        }
+      },
+      "config" : {
+        "defaults" : {
+          "variants" : [ {
+            "hostname" : "config.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "config.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "config.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "config.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "config.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "connect" : {
+        "endpoints" : {
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "connect.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "connect.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "controltower" : {
+        "endpoints" : {
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "controltower-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "controltower-fips.us-gov-east-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "controltower-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "controltower-fips.us-gov-west-1.amazonaws.com"
+          }
+        }
+      },
+      "data-ats.iot" : {
+        "defaults" : {
+          "credentialScope" : {
+            "service" : "iotdata"
+          },
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "service" : "iotdata"
+            },
+            "deprecated" : true,
+            "hostname" : "data.iot-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "service" : "iotdata"
+            },
+            "deprecated" : true,
+            "hostname" : "data.iot-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "data.iot-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "data.iot-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "data.iot" : {
+        "defaults" : {
+          "credentialScope" : {
+            "service" : "iotdata"
+          },
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "service" : "iotdata"
+            },
+            "deprecated" : true,
+            "hostname" : "data.iot-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "service" : "iotdata"
+            },
+            "deprecated" : true,
+            "hostname" : "data.iot-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "data.iot-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "data.iot-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "data.jobs.iot" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "data.jobs.iot-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "data.jobs.iot-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "data.jobs.iot-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "data.jobs.iot-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "databrew" : {
+        "endpoints" : {
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "databrew.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "databrew.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "datasync" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "datasync-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "datasync-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "datasync-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "datasync-fips.us-gov-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "datasync.us-gov-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "datasync-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "datasync-fips.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "datasync.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "datazone" : {
+        "defaults" : {
+          "dnsSuffix" : "api.aws",
+          "variants" : [ {
+            "dnsSuffix" : "api.aws",
+            "hostname" : "{service}-fips.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "us-gov-east-1" : {
+            "hostname" : "datazone.us-gov-east-1.api.aws"
+          },
+          "us-gov-west-1" : {
+            "hostname" : "datazone.us-gov-west-1.api.aws"
+          }
+        }
+      },
+      "directconnect" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "directconnect-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "directconnect-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "directconnect-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "directconnect-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "dlm" : {
+        "endpoints" : {
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "dlm-fips.us-gov-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "dlm.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "dlm.us-gov-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-gov-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "dlm.us-gov-east-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "dlm-fips.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "dlm.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "dlm.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-gov-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "dlm.us-gov-west-1.amazonaws.com"
+          }
+        }
+      },
+      "dms" : {
+        "defaults" : {
+          "variants" : [ {
+            "hostname" : "dms.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "dms" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "variants" : [ {
+              "hostname" : "dms.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "dms-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "dms.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "dms.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "dms.us-gov-east-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "dms.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "dms.us-gov-west-1.amazonaws.com"
+          }
+        }
+      },
+      "docdb" : {
+        "endpoints" : {
+          "us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "hostname" : "rds.us-gov-west-1.amazonaws.com"
+          }
+        }
+      },
+      "drs" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "drs-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "drs-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "drs-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "drs-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "ds" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ds-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ds-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "ds-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "ds-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "dynamodb" : {
+        "defaults" : {
+          "variants" : [ {
+            "hostname" : "dynamodb.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "dynamodb-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "dynamodb-fips.us-gov-east-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "dynamodb-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "dynamodb-fips.us-gov-west-1.amazonaws.com"
+          }
+        }
+      },
+      "ebs" : {
+        "endpoints" : {
+          "us-gov-east-1" : { },
+          "us-gov-west-1" : { }
+        }
+      },
+      "ec2" : {
+        "defaults" : {
+          "variants" : [ {
+            "hostname" : "ec2.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "hostname" : "ec2.us-gov-east-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "ec2.us-gov-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "hostname" : "ec2.us-gov-west-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "ec2.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "ecs" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ecs-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ecs-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "ecs-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "ecs-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "eks" : {
+        "defaults" : {
+          "protocols" : [ "http", "https" ],
+          "variants" : [ {
+            "hostname" : "eks.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "eks.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "eks.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "eks.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "eks.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "eks-auth" : {
+        "defaults" : {
+          "dnsSuffix" : "api.aws",
+          "variants" : [ {
+            "dnsSuffix" : "api.aws",
+            "hostname" : "{service}-fips.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "us-gov-east-1" : {
+            "hostname" : "eks-auth.us-gov-east-1.api.aws"
+          },
+          "us-gov-west-1" : {
+            "hostname" : "eks-auth.us-gov-west-1.api.aws"
+          }
+        }
+      },
+      "elasticache" : {
+        "defaults" : {
+          "variants" : [ {
+            "hostname" : "elasticache.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticache.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : { },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "elasticache.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticache.us-gov-west-1.amazonaws.com"
+          }
+        }
+      },
+      "elasticbeanstalk" : {
+        "endpoints" : {
+          "us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "hostname" : "elasticbeanstalk.us-gov-east-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "elasticbeanstalk.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "elasticbeanstalk.us-gov-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-gov-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticbeanstalk.us-gov-east-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "hostname" : "elasticbeanstalk.us-gov-west-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "elasticbeanstalk.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "elasticbeanstalk.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-gov-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticbeanstalk.us-gov-west-1.amazonaws.com"
+          }
+        }
+      },
+      "elasticfilesystem" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticfilesystem-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticfilesystem-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "elasticfilesystem-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "elasticfilesystem-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "elasticloadbalancing" : {
+        "defaults" : {
+          "variants" : [ {
+            "hostname" : "elasticloadbalancing.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticloadbalancing.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticloadbalancing.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "elasticloadbalancing.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "protocols" : [ "http", "https" ],
+            "variants" : [ {
+              "hostname" : "elasticloadbalancing.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "elasticmapreduce" : {
+        "defaults" : {
+          "variants" : [ {
+            "hostname" : "elasticmapreduce.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticmapreduce.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticmapreduce.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "elasticmapreduce.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "elasticmapreduce.us-gov-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "protocols" : [ "https" ],
+            "variants" : [ {
+              "hostname" : "elasticmapreduce.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "elasticmapreduce.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "email" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "email-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "email-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "email-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "email-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "emr-containers" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "emr-containers.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "emr-containers.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "emr-containers.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "emr-containers.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "emr-serverless" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "emr-serverless.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "emr-serverless.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "emr-serverless.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "emr-serverless.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "es" : {
+        "endpoints" : {
+          "fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "es-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "aos.us-gov-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            }, {
+              "hostname" : "es-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "es-fips.us-gov-east-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "aos.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            }, {
+              "hostname" : "es-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "es-fips.us-gov-west-1.amazonaws.com"
+          }
+        }
+      },
+      "events" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "events.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "events.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "events.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "events.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "firehose" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "firehose-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "firehose-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "firehose-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "firehose-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "fms" : {
+        "defaults" : {
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "fms-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "fms-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "fms-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "fms-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "fsx" : {
+        "endpoints" : {
+          "fips-prod-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "fsx-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-prod-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "fsx-fips.us-gov-west-1.amazonaws.com"
+          },
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "fsx-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "fsx-fips.us-gov-west-1.amazonaws.com"
+          },
+          "prod-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "variants" : [ {
+              "hostname" : "fsx-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "prod-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "variants" : [ {
+              "hostname" : "fsx-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "fsx-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "fsx-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "gameliftstreams" : {
+        "defaults" : {
+          "dnsSuffix" : "api.aws",
+          "variants" : [ {
+            "dnsSuffix" : "api.aws",
+            "hostname" : "{service}-fips.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "us-gov-east-1" : {
+            "hostname" : "gameliftstreams.us-gov-east-1.api.aws"
+          },
+          "us-gov-west-1" : {
+            "hostname" : "gameliftstreams.us-gov-west-1.api.aws"
+          }
+        }
+      },
+      "geo" : {
+        "endpoints" : {
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "geo-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "geo-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "glacier" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "glacier.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "glacier.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "glacier.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "protocols" : [ "http", "https" ],
+            "variants" : [ {
+              "hostname" : "glacier.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "glue" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "glue-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "glue-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "glue-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "glue-fips.us-gov-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "glue.us-gov-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "glue-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "glue-fips.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "glue.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "greengrass" : {
+        "defaults" : {
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "dataplane-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "hostname" : "greengrass-ats.iot.us-gov-east-1.amazonaws.com"
+          },
+          "dataplane-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "hostname" : "greengrass-ats.iot.us-gov-west-1.amazonaws.com"
+          },
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "greengrass.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "greengrass.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "greengrass.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "greengrass.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        },
+        "isRegionalized" : true
+      },
+      "guardduty" : {
+        "defaults" : {
+          "protocols" : [ "https" ],
+          "variants" : [ {
+            "hostname" : "guardduty.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "guardduty.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "guardduty.us-gov-east-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "guardduty.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "guardduty.us-gov-west-1.amazonaws.com"
+          }
+        },
+        "isRegionalized" : true
+      },
+      "health" : {
+        "defaults" : {
+          "protocols" : [ "https" ],
+          "sslCommonName" : "health.us-gov-west-1.amazonaws.com"
+        },
+        "endpoints" : {
+          "aws-us-gov-global" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "hostname" : "global.health.us-gov.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "health-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "variants" : [ {
+              "hostname" : "health-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "iam" : {
+        "endpoints" : {
+          "aws-us-gov-global" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "hostname" : "iam.us-gov.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "iam.us-gov.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "aws-us-gov-global-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "iam.us-gov.amazonaws.com"
+          },
+          "iam-govcloud" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "variants" : [ {
+              "hostname" : "iam.us-gov.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "iam-govcloud-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "iam.us-gov.amazonaws.com"
+          }
+        },
+        "isRegionalized" : false,
+        "partitionEndpoint" : "aws-us-gov-global"
+      },
+      "identitystore" : {
+        "defaults" : {
+          "variants" : [ {
+            "hostname" : "identitystore.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "identitystore.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "identitystore.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "identitystore.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "identitystore.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "ingest.timestream" : {
+        "endpoints" : {
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "ingest.timestream.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ingest.timestream.us-gov-west-1.amazonaws.com"
+          }
+        }
+      },
+      "inspector" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "inspector-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "inspector-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "inspector-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "inspector-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "inspector2" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "inspector2-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "inspector2-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "inspector2-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "inspector2-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "internetmonitor" : {
+        "defaults" : {
+          "dnsSuffix" : "api.aws",
+          "variants" : [ {
+            "dnsSuffix" : "api.aws",
+            "hostname" : "{service}-fips.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "us-gov-east-1" : {
+            "hostname" : "internetmonitor.us-gov-east-1.api.aws"
+          },
+          "us-gov-west-1" : {
+            "hostname" : "internetmonitor.us-gov-west-1.api.aws"
+          }
+        }
+      },
+      "iot" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "deprecated" : true,
+            "hostname" : "iot-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "deprecated" : true,
+            "hostname" : "iot-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "iot-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "iot-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "iotevents" : {
+        "endpoints" : {
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "iotevents-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "iotevents-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "ioteventsdata" : {
+        "endpoints" : {
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "data.iotevents-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "hostname" : "data.iotevents.us-gov-west-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "data.iotevents-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "iotsecuredtunneling" : {
+        "defaults" : {
+          "variants" : [ {
+            "hostname" : "api.tunneling.iot-fips.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "api.tunneling.iot-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "api.tunneling.iot-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "api.tunneling.iot-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "api.tunneling.iot-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "iotsitewise" : {
+        "endpoints" : {
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "iotsitewise-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "iotsitewise-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "iottwinmaker" : {
+        "endpoints" : {
+          "api-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "hostname" : "api.iottwinmaker.us-gov-west-1.amazonaws.com"
+          },
+          "data-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "hostname" : "data.iottwinmaker.us-gov-west-1.amazonaws.com"
+          },
+          "fips-api-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "hostname" : "api.iottwinmaker-fips.us-gov-west-1.amazonaws.com"
+          },
+          "fips-data-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "hostname" : "data.iottwinmaker-fips.us-gov-west-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "iottwinmaker-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "iottwinmaker-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "kafka" : {
+        "endpoints" : {
+          "us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "hostname" : "kafka.us-gov-east-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "kafka.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "kafka.us-gov-east-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "hostname" : "kafka.us-gov-west-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "kafka.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "kafka.us-gov-west-1.amazonaws.com"
+          }
+        }
+      },
+      "kendra" : {
+        "endpoints" : {
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "kendra-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "kendra-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "kendra-ranking" : {
+        "defaults" : {
+          "dnsSuffix" : "api.aws",
+          "variants" : [ {
+            "dnsSuffix" : "api.aws",
+            "hostname" : "{service}-fips.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "us-gov-east-1" : {
+            "hostname" : "kendra-ranking.us-gov-east-1.api.aws"
+          },
+          "us-gov-west-1" : {
+            "hostname" : "kendra-ranking.us-gov-west-1.api.aws"
+          }
+        }
+      },
+      "kinesis" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "kinesis.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "kinesis.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "hostname" : "kinesis.us-gov-east-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "kinesis.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "hostname" : "kinesis.us-gov-west-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "kinesis.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "kinesisanalytics" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "kinesisanalytics-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "kinesisanalytics-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "kinesisanalytics-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "kinesisanalytics-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "kinesisvideo" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "kinesisvideo-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "kinesisvideo-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "hostname" : "kinesisvideo-fips.us-gov-east-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "kinesisvideo-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "hostname" : "kinesisvideo-fips.us-gov-west-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "kinesisvideo-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "kms" : {
+        "endpoints" : {
+          "ProdFips" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "kms-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "kms-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "kms-fips.us-gov-east-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "kms-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "kms-fips.us-gov-west-1.amazonaws.com"
+          }
+        }
+      },
+      "lakeformation" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "lakeformation-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "lakeformation-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "lakeformation-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "lakeformation-fips.us-gov-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "lakeformation.us-gov-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "lakeformation-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "lakeformation-fips.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "lakeformation.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "lambda" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "lambda-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "lambda-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "lambda-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "lambda.us-gov-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "lambda-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "lambda.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "license-manager" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "license-manager-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "license-manager-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "license-manager-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "license-manager-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "license-manager-linux-subscriptions" : {
+        "endpoints" : {
+          "us-gov-east-1" : { },
+          "us-gov-west-1" : { }
+        }
+      },
+      "license-manager-user-subscriptions" : {
+        "endpoints" : {
+          "us-gov-east-1" : { },
+          "us-gov-west-1" : { }
+        }
+      },
+      "logs" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "logs.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "logs.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "logs.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "logs.us-gov-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "logs.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "logs.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "m2" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "deprecated" : true
+          },
+          "fips-us-gov-west-1" : {
+            "deprecated" : true
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "managedblockchain" : {
+        "endpoints" : {
+          "us-gov-west-1" : { }
+        }
+      },
+      "mediaconvert" : {
+        "endpoints" : {
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "mediaconvert.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "mediaconvert.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "mediaconvert.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            }, {
+              "hostname" : "mediaconvert.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            } ]
+          }
+        }
+      },
+      "meetings-chime" : {
+        "endpoints" : {
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "meetings-chime-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "meetings-chime-fips.us-gov-east-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "meetings-chime-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "meetings-chime-fips.us-gov-west-1.amazonaws.com"
+          }
+        }
+      },
+      "memory-db" : {
+        "endpoints" : {
+          "us-gov-east-1" : { },
+          "us-gov-west-1" : { }
+        }
+      },
+      "metering.marketplace" : {
+        "defaults" : {
+          "credentialScope" : {
+            "service" : "aws-marketplace"
+          }
+        },
+        "endpoints" : {
+          "us-gov-east-1" : { },
+          "us-gov-west-1" : { }
+        }
+      },
+      "metrics.sagemaker" : {
+        "endpoints" : {
+          "us-gov-east-1" : { },
+          "us-gov-west-1" : { }
+        }
+      },
+      "mgn" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "mgn-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "mgn-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "mgn-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "mgn-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "models-v2-lex" : {
+        "endpoints" : {
+          "us-gov-west-1" : { }
+        }
+      },
+      "models.lex" : {
+        "defaults" : {
+          "credentialScope" : {
+            "service" : "lex"
+          },
+          "variants" : [ {
+            "hostname" : "models-fips.lex.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "models-fips.lex.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "models-fips.lex.us-gov-west-1.amazonaws.com"
+          }
+        }
+      },
+      "monitoring" : {
+        "defaults" : {
+          "variants" : [ {
+            "hostname" : "monitoring.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "monitoring.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "monitoring.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "monitoring.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "monitoring.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "mq" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "mq-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "mq-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "mq-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "mq-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "neptune" : {
+        "endpoints" : {
+          "us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "hostname" : "rds.us-gov-east-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "hostname" : "rds.us-gov-west-1.amazonaws.com"
+          }
+        }
+      },
+      "network-firewall" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "network-firewall-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "network-firewall-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "network-firewall-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "network-firewall-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "networkmanager" : {
+        "endpoints" : {
+          "aws-us-gov-global" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "hostname" : "networkmanager.us-gov-west-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "networkmanager.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "fips-aws-us-gov-global" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "networkmanager.us-gov-west-1.amazonaws.com"
+          }
+        },
+        "isRegionalized" : false,
+        "partitionEndpoint" : "aws-us-gov-global"
+      },
+      "notifications" : {
+        "defaults" : {
+          "dnsSuffix" : "api.aws",
+          "variants" : [ {
+            "dnsSuffix" : "api.aws",
+            "hostname" : "{service}-fips.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "us-gov-east-1" : {
+            "hostname" : "notifications.us-gov-east-1.api.aws"
+          },
+          "us-gov-west-1" : {
+            "hostname" : "notifications.us-gov-west-1.api.aws"
+          }
+        }
+      },
+      "oam" : {
+        "endpoints" : {
+          "us-gov-east-1" : { },
+          "us-gov-west-1" : { }
+        }
+      },
+      "oidc" : {
+        "endpoints" : {
+          "us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "hostname" : "oidc.us-gov-east-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "hostname" : "oidc.us-gov-west-1.amazonaws.com"
+          }
+        }
+      },
+      "organizations" : {
+        "endpoints" : {
+          "aws-us-gov-global" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "hostname" : "organizations.us-gov-west-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "organizations.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "fips-aws-us-gov-global" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "organizations.us-gov-west-1.amazonaws.com"
+          }
+        },
+        "isRegionalized" : false,
+        "partitionEndpoint" : "aws-us-gov-global"
+      },
+      "outposts" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "outposts.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "outposts.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "outposts.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "outposts.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "participant.connect" : {
+        "endpoints" : {
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "participant.connect.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "participant.connect.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "pi" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "pi-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "pi-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "protocols" : [ "https" ],
+            "variants" : [ {
+              "hostname" : "pi-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "pi-fips.us-gov-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "pi.us-gov-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "protocols" : [ "https" ],
+            "variants" : [ {
+              "hostname" : "pi-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "pi-fips.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "pi.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "pinpoint" : {
+        "defaults" : {
+          "credentialScope" : {
+            "service" : "mobiletargeting"
+          }
+        },
+        "endpoints" : {
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "pinpoint-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "hostname" : "pinpoint.us-gov-west-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "pinpoint-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "polly" : {
+        "endpoints" : {
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "polly-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "polly-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "polly-fips.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "polly.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "portal.sso" : {
+        "endpoints" : {
+          "us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "hostname" : "portal.sso.us-gov-east-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "hostname" : "portal.sso.us-gov-west-1.amazonaws.com"
+          }
+        }
+      },
+      "qbusiness" : {
+        "defaults" : {
+          "dnsSuffix" : "api.aws",
+          "variants" : [ {
+            "dnsSuffix" : "api.aws",
+            "hostname" : "{service}-fips.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "us-gov-east-1" : {
+            "hostname" : "qbusiness.us-gov-east-1.api.aws"
+          },
+          "us-gov-west-1" : {
+            "hostname" : "qbusiness.us-gov-west-1.api.aws"
+          }
+        }
+      },
+      "quicksight" : {
+        "endpoints" : {
+          "us-gov-east-1" : { },
+          "us-gov-west-1" : { }
+        }
+      },
+      "ram" : {
+        "endpoints" : {
+          "us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "hostname" : "ram.us-gov-east-1.amazonaws.com",
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            }, {
+              "hostname" : "ram.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "ramus-gov-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            } ]
+          },
+          "us-gov-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ram.us-gov-east-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "hostname" : "ram.us-gov-west-1.amazonaws.com",
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            }, {
+              "hostname" : "ram.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "ramus-gov-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            } ]
+          },
+          "us-gov-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ram.us-gov-west-1.amazonaws.com"
+          }
+        }
+      },
+      "rbin" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "rbin-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "rbin-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "rbin-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "rbin-fips.us-gov-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "rbin.us-gov-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "rbin-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "rbin-fips.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "rbin.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "rds" : {
+        "defaults" : {
+          "variants" : [ {
+            "hostname" : "rds.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "rds.us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "rds.us-gov-east-1.amazonaws.com"
+          },
+          "rds.us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "rds.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "rds.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "rds.us-gov-east-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "rds.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "rds.us-gov-west-1.amazonaws.com"
+          }
+        }
+      },
+      "redshift" : {
+        "endpoints" : {
+          "us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "hostname" : "redshift.us-gov-east-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "hostname" : "redshift.us-gov-west-1.amazonaws.com"
+          }
+        }
+      },
+      "redshift-serverless" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "redshift-serverless-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "redshift-serverless-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "redshift-serverless-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "redshift-serverless-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "rekognition" : {
+        "endpoints" : {
+          "rekognition-fips.us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "rekognition-fips.us-gov-west-1.amazonaws.com"
+          },
+          "rekognition.us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "variants" : [ {
+              "hostname" : "rekognition-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "rekognition-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "rekognition-fips.us-gov-west-1.amazonaws.com"
+          }
+        }
+      },
+      "resiliencehub" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "resiliencehub-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "resiliencehub-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "resiliencehub-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "resiliencehub-fips.us-gov-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "resiliencehub.us-gov-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "resiliencehub-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "resiliencehub-fips.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "resiliencehub.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "resource-groups" : {
+        "defaults" : {
+          "variants" : [ {
+            "hostname" : "resource-groups.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "resource-groups.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "resource-groups.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "resource-groups.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "resource-groups.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "robomaker" : {
+        "endpoints" : {
+          "us-gov-west-1" : { }
+        }
+      },
+      "rolesanywhere" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "rolesanywhere-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "rolesanywhere-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "rolesanywhere-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "rolesanywhere-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "route53" : {
+        "endpoints" : {
+          "aws-us-gov-global" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "hostname" : "route53.us-gov.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "route53.us-gov.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "fips-aws-us-gov-global" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "route53.us-gov.amazonaws.com"
+          }
+        },
+        "isRegionalized" : false,
+        "partitionEndpoint" : "aws-us-gov-global"
+      },
+      "route53profiles" : {
+        "endpoints" : {
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "route53profiles-fips.us-gov-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "route53profiles.us-gov-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "route53profiles-fips.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "route53profiles.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "route53resolver" : {
+        "endpoints" : {
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "route53resolver.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-east-1-fips" : {
+            "deprecated" : true,
+            "hostname" : "route53resolver.us-gov-east-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "route53resolver.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1-fips" : {
+            "deprecated" : true,
+            "hostname" : "route53resolver.us-gov-west-1.amazonaws.com"
+          }
+        }
+      },
+      "runtime-v2-lex" : {
+        "endpoints" : {
+          "us-gov-west-1" : { }
+        }
+      },
+      "runtime.lex" : {
+        "defaults" : {
+          "credentialScope" : {
+            "service" : "lex"
+          },
+          "variants" : [ {
+            "hostname" : "runtime-fips.lex.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "runtime-fips.lex.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "runtime-fips.lex.us-gov-west-1.amazonaws.com"
+          }
+        }
+      },
+      "runtime.sagemaker" : {
+        "defaults" : {
+          "variants" : [ {
+            "hostname" : "runtime.sagemaker.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "us-gov-east-1" : { },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "runtime.sagemaker.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "runtime.sagemaker.us-gov-west-1.amazonaws.com"
+          }
+        }
+      },
+      "s3" : {
+        "defaults" : {
+          "signatureVersions" : [ "s3", "s3v4" ],
+          "variants" : [ {
+            "dnsSuffix" : "amazonaws.com",
+            "hostname" : "{service}-fips.dualstack.{region}.{dnsSuffix}",
+            "tags" : [ "dualstack", "fips" ]
+          }, {
+            "dnsSuffix" : "amazonaws.com",
+            "hostname" : "{service}.dualstack.{region}.{dnsSuffix}",
+            "tags" : [ "dualstack" ]
+          } ]
+        },
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "s3-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "s3-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "hostname" : "s3.us-gov-east-1.amazonaws.com",
+            "protocols" : [ "http", "https" ],
+            "variants" : [ {
+              "hostname" : "s3-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "s3.dualstack.us-gov-east-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "hostname" : "s3.us-gov-west-1.amazonaws.com",
+            "protocols" : [ "http", "https" ],
+            "variants" : [ {
+              "hostname" : "s3-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "s3.dualstack.us-gov-west-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "s3-control" : {
+        "defaults" : {
+          "protocols" : [ "https" ],
+          "signatureVersions" : [ "s3v4" ],
+          "variants" : [ {
+            "dnsSuffix" : "amazonaws.com",
+            "hostname" : "{service}-fips.dualstack.{region}.{dnsSuffix}",
+            "tags" : [ "dualstack", "fips" ]
+          }, {
+            "dnsSuffix" : "amazonaws.com",
+            "hostname" : "{service}.dualstack.{region}.{dnsSuffix}",
+            "tags" : [ "dualstack" ]
+          } ]
+        },
+        "endpoints" : {
+          "us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "hostname" : "s3-control.us-gov-east-1.amazonaws.com",
+            "signatureVersions" : [ "s3v4" ],
+            "variants" : [ {
+              "hostname" : "s3-control-fips.dualstack.us-gov-east-1.amazonaws.com",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "s3-control-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "s3-control.dualstack.us-gov-east-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-gov-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "s3-control-fips.us-gov-east-1.amazonaws.com",
+            "signatureVersions" : [ "s3v4" ]
+          },
+          "us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "hostname" : "s3-control.us-gov-west-1.amazonaws.com",
+            "signatureVersions" : [ "s3v4" ],
+            "variants" : [ {
+              "hostname" : "s3-control-fips.dualstack.us-gov-west-1.amazonaws.com",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "s3-control-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "s3-control.dualstack.us-gov-west-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-gov-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "s3-control-fips.us-gov-west-1.amazonaws.com",
+            "signatureVersions" : [ "s3v4" ]
+          }
+        }
+      },
+      "s3-outposts" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "deprecated" : true
+          },
+          "fips-us-gov-west-1" : {
+            "deprecated" : true
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            }, {
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            }, {
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "schemas" : {
+        "endpoints" : {
+          "us-gov-east-1" : { },
+          "us-gov-west-1" : { }
+        }
+      },
+      "secretsmanager" : {
+        "endpoints" : {
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            }, {
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-east-1-fips" : {
+            "deprecated" : true
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            }, {
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1-fips" : {
+            "deprecated" : true
+          }
+        }
+      },
+      "securityhub" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "securityhub-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "securityhub-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "securityhub-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "securityhub.us-gov-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "securityhub-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "securityhub.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "securitylake" : {
+        "endpoints" : {
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "securitylake.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "securitylake.us-gov-east-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "securitylake.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "securitylake.us-gov-west-1.amazonaws.com"
+          }
+        }
+      },
+      "serverlessrepo" : {
+        "defaults" : {
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "us-gov-east-1" : {
+            "protocols" : [ "https" ],
+            "variants" : [ {
+              "hostname" : "serverlessrepo.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "serverlessrepo.us-gov-east-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "protocols" : [ "https" ],
+            "variants" : [ {
+              "hostname" : "serverlessrepo.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "serverlessrepo.us-gov-west-1.amazonaws.com"
+          }
+        }
+      },
+      "servicecatalog" : {
+        "endpoints" : {
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "servicecatalog-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "servicecatalog-fips.us-gov-east-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "servicecatalog-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "servicecatalog-fips.us-gov-west-1.amazonaws.com"
+          }
+        }
+      },
+      "servicecatalog-appregistry" : {
+        "defaults" : {
+          "variants" : [ {
+            "hostname" : "servicecatalog-appregistry.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "us-gov-east-1" : { },
+          "us-gov-west-1" : { }
+        }
+      },
+      "servicediscovery" : {
+        "endpoints" : {
+          "servicediscovery" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "variants" : [ {
+              "hostname" : "servicediscovery-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "servicediscovery-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "servicediscovery-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "servicediscovery-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "servicediscovery-fips.us-gov-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "servicediscovery.us-gov-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-gov-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "servicediscovery-fips.us-gov-east-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "servicediscovery-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "servicediscovery-fips.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "servicediscovery.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-gov-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "servicediscovery-fips.us-gov-west-1.amazonaws.com"
+          }
+        }
+      },
+      "servicequotas" : {
+        "defaults" : {
+          "protocols" : [ "https" ],
+          "variants" : [ {
+            "hostname" : "servicequotas.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "servicequotas.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "servicequotas.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "servicequotas.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "servicequotas.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "signer" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "signer-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "signer-fips.us-gov-west-1.amazonaws.com"
+          },
+          "fips-verification-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "hostname" : "verification.signer-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-verification-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "hostname" : "verification.signer-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "signer-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "signer-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "verification-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "hostname" : "verification.signer.us-gov-east-1.amazonaws.com"
+          },
+          "verification-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "hostname" : "verification.signer.us-gov-west-1.amazonaws.com"
+          }
+        }
+      },
+      "simspaceweaver" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "simspaceweaver.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "simspaceweaver.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "simspaceweaver.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "simspaceweaver.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "sms" : {
+        "endpoints" : {
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "sms-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "sms-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "sms-voice" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "sms-voice-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "sms-voice-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "sms-voice-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "sms-voice-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "snowball" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "snowball-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "snowball-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "snowball-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "snowball-fips.us-gov-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "snowball.us-gov-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "snowball-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "snowball-fips.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "snowball.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "sns" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "sns.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "sns.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "sns.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "protocols" : [ "https" ],
+            "variants" : [ {
+              "hostname" : "sns.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "sqs" : {
+        "defaults" : {
+          "variants" : [ {
+            "hostname" : "sqs.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "hostname" : "sqs.us-gov-east-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "hostname" : "sqs.us-gov-west-1.amazonaws.com",
+            "protocols" : [ "http", "https" ],
+            "sslCommonName" : "{region}.queue.{dnsSuffix}"
+          }
+        }
+      },
+      "ssm" : {
+        "defaults" : {
+          "variants" : [ {
+            "hostname" : "ssm.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ssm.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ssm.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "ssm.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "ssm.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "sso" : {
+        "endpoints" : {
+          "us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "hostname" : "sso.us-gov-east-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "sso.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "sso.us-gov-east-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "hostname" : "sso.us-gov-west-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "sso.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "sso.us-gov-west-1.amazonaws.com"
+          }
+        }
+      },
+      "states" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "states-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "states.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "states-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "states.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "storagegateway" : {
+        "endpoints" : {
+          "fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "storagegateway-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "storagegateway-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "storagegateway-fips.us-gov-east-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "storagegateway-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "storagegateway-fips.us-gov-west-1.amazonaws.com"
+          }
+        }
+      },
+      "streams.dynamodb" : {
+        "defaults" : {
+          "credentialScope" : {
+            "service" : "dynamodb"
+          },
+          "variants" : [ {
+            "hostname" : "streams.dynamodb.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "us-gov-east-1" : { },
+          "us-gov-west-1" : { }
+        }
+      },
+      "sts" : {
+        "defaults" : {
+          "variants" : [ {
+            "hostname" : "sts.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "sts.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "sts.us-gov-east-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "sts.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "sts.us-gov-west-1.amazonaws.com"
+          }
+        }
+      },
+      "support" : {
+        "endpoints" : {
+          "aws-us-gov-global" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "hostname" : "support.us-gov-west-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "support.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "variants" : [ {
+              "hostname" : "support.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        },
+        "partitionEndpoint" : "aws-us-gov-global"
+      },
+      "swf" : {
+        "endpoints" : {
+          "us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "hostname" : "swf.us-gov-east-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "swf.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "swf.us-gov-east-1.amazonaws.com"
+          },
+          "us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "hostname" : "swf.us-gov-west-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "swf.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "swf.us-gov-west-1.amazonaws.com"
+          }
+        }
+      },
+      "synthetics" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "synthetics-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "synthetics-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "synthetics-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "synthetics-fips.us-gov-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "synthetics.us-gov-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "synthetics-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "synthetics-fips.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "synthetics.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "tagging" : {
+        "endpoints" : {
+          "us-gov-east-1" : { },
+          "us-gov-west-1" : { }
+        }
+      },
+      "textract" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "textract-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "textract-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "textract-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "textract-fips.us-gov-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "textract.us-gov-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "textract-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "textract-fips.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "textract.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "transcribe" : {
+        "defaults" : {
+          "protocols" : [ "https" ],
+          "variants" : [ {
+            "hostname" : "fips.transcribe.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "fips.transcribe.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "fips.transcribe.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "fips.transcribe.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "transcribe-fips.us-gov-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "transcribe.us-gov-east-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "fips.transcribe.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "transcribe-fips.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "transcribe.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "transcribestreaming" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "transcribestreaming-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "transcribestreaming-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "transcribestreaming-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "transcribestreaming-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "transfer" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "transfer-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "transfer-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "transfer-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "transfer-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "translate" : {
+        "defaults" : {
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "translate-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "translate-fips.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "translate.us-gov-west-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-gov-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "translate-fips.us-gov-west-1.amazonaws.com"
+          }
+        }
+      },
+      "verifiedpermissions" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "verifiedpermissions-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "verifiedpermissions-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "verifiedpermissions-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "verifiedpermissions-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "waf-regional" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "waf-regional-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "waf-regional-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "hostname" : "waf-regional.us-gov-east-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "waf-regional-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "hostname" : "waf-regional.us-gov-west-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "waf-regional-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "wafv2" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "wafv2-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "wafv2-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "hostname" : "wafv2.us-gov-east-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "wafv2-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "hostname" : "wafv2.us-gov-west-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "wafv2-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "wellarchitected" : {
+        "endpoints" : {
+          "us-gov-east-1" : { },
+          "us-gov-west-1" : { }
+        }
+      },
+      "workspaces" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "workspaces-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "workspaces-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "workspaces-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "workspaces-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "xray" : {
+        "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "xray-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "xray-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "xray-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "xray-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      }
+    }
+  }, {
+    "defaults" : {
+      "hostname" : "{service}.{region}.{dnsSuffix}",
+      "protocols" : [ "https" ],
+      "signatureVersions" : [ "v4" ],
+      "variants" : [ {
+        "dnsSuffix" : "c2s.ic.gov",
+        "hostname" : "{service}-fips.{region}.{dnsSuffix}",
+        "tags" : [ "fips" ]
+      } ]
+    },
+    "dnsSuffix" : "c2s.ic.gov",
+    "partition" : "aws-iso",
+    "partitionName" : "AWS ISO (US)",
+    "regionRegex" : "^us\\-iso\\-\\w+\\-\\d+$",
+    "regions" : {
+      "us-iso-east-1" : {
+        "description" : "US ISO East"
+      },
+      "us-iso-west-1" : {
+        "description" : "US ISO WEST"
+      }
+    },
+    "services" : {
+      "agreement-marketplace" : {
+        "endpoints" : {
+          "fips-us-iso-east-1" : {
+            "credentialScope" : {
+              "region" : "us-iso-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "agreement-marketplace-fips.us-iso-east-1.c2s.ic.gov"
+          },
+          "us-iso-east-1" : {
+            "variants" : [ {
+              "hostname" : "agreement-marketplace-fips.us-iso-east-1.c2s.ic.gov",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "api.ecr" : {
+        "endpoints" : {
+          "us-iso-east-1" : {
+            "credentialScope" : {
+              "region" : "us-iso-east-1"
+            },
+            "hostname" : "api.ecr.us-iso-east-1.c2s.ic.gov"
+          },
+          "us-iso-west-1" : {
+            "credentialScope" : {
+              "region" : "us-iso-west-1"
+            },
+            "hostname" : "api.ecr.us-iso-west-1.c2s.ic.gov"
+          }
+        }
+      },
+      "api.pricing" : {
+        "defaults" : {
+          "credentialScope" : {
+            "service" : "pricing"
+          }
+        },
+        "endpoints" : {
+          "us-iso-east-1" : { }
+        }
+      },
+      "api.sagemaker" : {
+        "endpoints" : {
+          "us-iso-east-1" : { }
+        }
+      },
+      "apigateway" : {
+        "endpoints" : {
+          "us-iso-east-1" : { },
+          "us-iso-west-1" : { }
+        }
+      },
+      "appconfig" : {
+        "endpoints" : {
+          "us-iso-east-1" : { },
+          "us-iso-west-1" : { }
+        }
+      },
+      "appconfigdata" : {
+        "endpoints" : {
+          "us-iso-east-1" : { },
+          "us-iso-west-1" : { }
+        }
+      },
+      "application-autoscaling" : {
+        "defaults" : {
+          "protocols" : [ "http", "https" ]
+        },
+        "endpoints" : {
+          "us-iso-east-1" : { },
+          "us-iso-west-1" : { }
+        }
+      },
+      "arc-zonal-shift" : {
+        "endpoints" : {
+          "us-iso-east-1" : { },
+          "us-iso-west-1" : { }
+        }
+      },
+      "athena" : {
+        "endpoints" : {
+          "us-iso-east-1" : { }
+        }
+      },
+      "autoscaling" : {
+        "endpoints" : {
+          "us-iso-east-1" : {
+            "protocols" : [ "http", "https" ]
+          },
+          "us-iso-west-1" : { }
+        }
+      },
+      "bedrock" : {
+        "endpoints" : {
+          "bedrock-runtime-us-iso-east-1" : {
+            "credentialScope" : {
+              "region" : "us-iso-east-1"
+            },
+            "hostname" : "bedrock-runtime.us-iso-east-1.c2s.ic.gov"
+          },
+          "bedrock-us-iso-east-1" : {
+            "credentialScope" : {
+              "region" : "us-iso-east-1"
+            },
+            "hostname" : "bedrock.us-iso-east-1.c2s.ic.gov"
+          },
+          "us-iso-east-1" : { }
+        }
+      },
+      "budgets" : {
+        "endpoints" : {
+          "aws-iso-global" : {
+            "credentialScope" : {
+              "region" : "us-iso-east-1"
+            },
+            "hostname" : "budgets.c2s.ic.gov"
+          },
+          "us-iso-east-1" : {
+            "credentialScope" : {
+              "region" : "us-iso-east-1"
+            },
+            "hostname" : "budgets.c2s.ic.gov"
+          }
+        },
+        "isRegionalized" : false,
+        "partitionEndpoint" : "aws-iso-global"
+      },
+      "ce" : {
+        "endpoints" : {
+          "aws-iso-global" : {
+            "credentialScope" : {
+              "region" : "us-iso-east-1"
+            },
+            "hostname" : "ce.us-iso-east-1.c2s.ic.gov"
+          }
+        },
+        "isRegionalized" : false,
+        "partitionEndpoint" : "aws-iso-global"
+      },
+      "cloudcontrolapi" : {
+        "endpoints" : {
+          "us-iso-east-1" : { },
+          "us-iso-west-1" : { }
+        }
+      },
+      "cloudformation" : {
+        "endpoints" : {
+          "us-iso-east-1" : { },
+          "us-iso-west-1" : { }
+        }
+      },
+      "cloudtrail" : {
+        "endpoints" : {
+          "fips-us-iso-east-1" : {
+            "credentialScope" : {
+              "region" : "us-iso-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "cloudtrail-fips.us-iso-east-1.c2s.ic.gov"
+          },
+          "fips-us-iso-west-1" : {
+            "credentialScope" : {
+              "region" : "us-iso-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "cloudtrail-fips.us-iso-west-1.c2s.ic.gov"
+          },
+          "us-iso-east-1" : {
+            "variants" : [ {
+              "hostname" : "cloudtrail-fips.us-iso-east-1.c2s.ic.gov",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-iso-west-1" : {
+            "variants" : [ {
+              "hostname" : "cloudtrail-fips.us-iso-west-1.c2s.ic.gov",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "codebuild" : {
+        "endpoints" : {
+          "us-iso-east-1" : { },
+          "us-iso-west-1" : { }
+        }
+      },
+      "codedeploy" : {
+        "endpoints" : {
+          "us-iso-east-1" : { },
+          "us-iso-west-1" : { }
+        }
+      },
+      "comprehend" : {
+        "defaults" : {
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "fips-us-iso-east-1" : {
+            "credentialScope" : {
+              "region" : "us-iso-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "comprehend-fips.us-iso-east-1.c2s.ic.gov"
+          },
+          "us-iso-east-1" : {
+            "variants" : [ {
+              "hostname" : "comprehend-fips.us-iso-east-1.c2s.ic.gov",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "config" : {
+        "endpoints" : {
+          "fips-us-iso-east-1" : {
+            "credentialScope" : {
+              "region" : "us-iso-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "config-fips.us-iso-east-1.c2s.ic.gov"
+          },
+          "fips-us-iso-west-1" : {
+            "credentialScope" : {
+              "region" : "us-iso-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "config-fips.us-iso-west-1.c2s.ic.gov"
+          },
+          "us-iso-east-1" : {
+            "variants" : [ {
+              "hostname" : "config-fips.us-iso-east-1.c2s.ic.gov",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-iso-west-1" : {
+            "variants" : [ {
+              "hostname" : "config-fips.us-iso-west-1.c2s.ic.gov",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "datapipeline" : {
+        "endpoints" : {
+          "us-iso-east-1" : { }
+        }
+      },
+      "datasync" : {
+        "endpoints" : {
+          "fips-us-iso-east-1" : {
+            "credentialScope" : {
+              "region" : "us-iso-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "datasync-fips.us-iso-east-1.c2s.ic.gov"
+          },
+          "fips-us-iso-west-1" : {
+            "credentialScope" : {
+              "region" : "us-iso-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "datasync-fips.us-iso-west-1.c2s.ic.gov"
+          },
+          "us-iso-east-1" : {
+            "variants" : [ {
+              "hostname" : "datasync-fips.us-iso-east-1.c2s.ic.gov",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-iso-west-1" : {
+            "variants" : [ {
+              "hostname" : "datasync-fips.us-iso-west-1.c2s.ic.gov",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "directconnect" : {
+        "endpoints" : {
+          "us-iso-east-1" : { },
+          "us-iso-west-1" : { }
+        }
+      },
+      "dlm" : {
+        "endpoints" : {
+          "us-iso-east-1" : { },
+          "us-iso-west-1" : { }
+        }
+      },
+      "dms" : {
+        "defaults" : {
+          "variants" : [ {
+            "hostname" : "dms.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "dms" : {
+            "credentialScope" : {
+              "region" : "us-iso-east-1"
+            },
+            "deprecated" : true,
+            "variants" : [ {
+              "hostname" : "dms.us-iso-east-1.c2s.ic.gov",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "dms-fips" : {
+            "credentialScope" : {
+              "region" : "us-iso-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "dms.us-iso-east-1.c2s.ic.gov"
+          },
+          "us-iso-east-1" : {
+            "variants" : [ {
+              "hostname" : "dms.us-iso-east-1.c2s.ic.gov",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-iso-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-iso-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "dms.us-iso-east-1.c2s.ic.gov"
+          },
+          "us-iso-west-1" : {
+            "variants" : [ {
+              "hostname" : "dms.us-iso-west-1.c2s.ic.gov",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-iso-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-iso-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "dms.us-iso-west-1.c2s.ic.gov"
+          }
+        }
+      },
+      "ds" : {
+        "endpoints" : {
+          "fips-us-iso-east-1" : {
+            "credentialScope" : {
+              "region" : "us-iso-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ds-fips.us-iso-east-1.c2s.ic.gov"
+          },
+          "fips-us-iso-west-1" : {
+            "credentialScope" : {
+              "region" : "us-iso-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ds-fips.us-iso-west-1.c2s.ic.gov"
+          },
+          "us-iso-east-1" : {
+            "variants" : [ {
+              "hostname" : "ds-fips.us-iso-east-1.c2s.ic.gov",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-iso-west-1" : {
+            "variants" : [ {
+              "hostname" : "ds-fips.us-iso-west-1.c2s.ic.gov",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "dynamodb" : {
+        "endpoints" : {
+          "us-iso-east-1" : {
+            "protocols" : [ "http", "https" ]
+          },
+          "us-iso-west-1" : { }
+        }
+      },
+      "ebs" : {
+        "endpoints" : {
+          "us-iso-east-1" : { },
+          "us-iso-west-1" : { }
+        }
+      },
+      "ec2" : {
+        "endpoints" : {
+          "us-iso-east-1" : { },
+          "us-iso-west-1" : { }
+        }
+      },
+      "ecs" : {
+        "endpoints" : {
+          "us-iso-east-1" : { },
+          "us-iso-west-1" : { }
+        }
+      },
+      "eks" : {
+        "defaults" : {
+          "protocols" : [ "http", "https" ]
+        },
+        "endpoints" : {
+          "us-iso-east-1" : { },
+          "us-iso-west-1" : { }
+        }
+      },
+      "elasticache" : {
+        "endpoints" : {
+          "us-iso-east-1" : { },
+          "us-iso-west-1" : { }
+        }
+      },
+      "elasticfilesystem" : {
+        "endpoints" : {
+          "fips-us-iso-east-1" : {
+            "credentialScope" : {
+              "region" : "us-iso-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticfilesystem-fips.us-iso-east-1.c2s.ic.gov"
+          },
+          "fips-us-iso-west-1" : {
+            "credentialScope" : {
+              "region" : "us-iso-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticfilesystem-fips.us-iso-west-1.c2s.ic.gov"
+          },
+          "us-iso-east-1" : {
+            "variants" : [ {
+              "hostname" : "elasticfilesystem-fips.us-iso-east-1.c2s.ic.gov",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-iso-west-1" : {
+            "variants" : [ {
+              "hostname" : "elasticfilesystem-fips.us-iso-west-1.c2s.ic.gov",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "elasticloadbalancing" : {
+        "endpoints" : {
+          "us-iso-east-1" : {
+            "protocols" : [ "http", "https" ]
+          },
+          "us-iso-west-1" : { }
+        }
+      },
+      "elasticmapreduce" : {
+        "endpoints" : {
+          "fips-us-iso-east-1" : {
+            "credentialScope" : {
+              "region" : "us-iso-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticmapreduce.us-iso-east-1.c2s.ic.gov"
+          },
+          "fips-us-iso-west-1" : {
+            "credentialScope" : {
+              "region" : "us-iso-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticmapreduce.us-iso-west-1.c2s.ic.gov"
+          },
+          "us-iso-east-1" : {
+            "protocols" : [ "https" ],
+            "variants" : [ {
+              "hostname" : "elasticmapreduce.us-iso-east-1.c2s.ic.gov",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-iso-west-1" : {
+            "variants" : [ {
+              "hostname" : "elasticmapreduce.us-iso-west-1.c2s.ic.gov",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "es" : {
+        "endpoints" : {
+          "us-iso-east-1" : { },
+          "us-iso-west-1" : { }
+        }
+      },
+      "events" : {
+        "endpoints" : {
+          "us-iso-east-1" : { },
+          "us-iso-west-1" : { }
+        }
+      },
+      "firehose" : {
+        "endpoints" : {
+          "us-iso-east-1" : { },
+          "us-iso-west-1" : { }
+        }
+      },
+      "fsx" : {
+        "endpoints" : {
+          "fips-prod-us-iso-east-1" : {
+            "credentialScope" : {
+              "region" : "us-iso-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "fsx-fips.us-iso-east-1.c2s.ic.gov"
+          },
+          "fips-us-iso-east-1" : {
+            "credentialScope" : {
+              "region" : "us-iso-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "fsx-fips.us-iso-east-1.c2s.ic.gov"
+          },
+          "prod-us-iso-east-1" : {
+            "credentialScope" : {
+              "region" : "us-iso-east-1"
+            },
+            "deprecated" : true,
+            "variants" : [ {
+              "hostname" : "fsx-fips.us-iso-east-1.c2s.ic.gov",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-iso-east-1" : {
+            "variants" : [ {
+              "hostname" : "fsx-fips.us-iso-east-1.c2s.ic.gov",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "glacier" : {
+        "endpoints" : {
+          "us-iso-east-1" : {
+            "protocols" : [ "http", "https" ]
+          },
+          "us-iso-west-1" : { }
+        }
+      },
+      "glue" : {
+        "endpoints" : {
+          "us-iso-east-1" : { }
+        }
+      },
+      "guardduty" : {
+        "defaults" : {
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "us-iso-east-1" : { }
+        },
+        "isRegionalized" : true
+      },
+      "health" : {
+        "endpoints" : {
+          "us-iso-east-1" : { }
+        }
+      },
+      "iam" : {
+        "endpoints" : {
+          "aws-iso-global" : {
+            "credentialScope" : {
+              "region" : "us-iso-east-1"
+            },
+            "hostname" : "iam.us-iso-east-1.c2s.ic.gov"
+          }
+        },
+        "isRegionalized" : false,
+        "partitionEndpoint" : "aws-iso-global"
+      },
+      "kinesis" : {
+        "endpoints" : {
+          "us-iso-east-1" : { },
+          "us-iso-west-1" : { }
+        }
+      },
+      "kms" : {
+        "endpoints" : {
+          "ProdFips" : {
+            "credentialScope" : {
+              "region" : "us-iso-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "kms-fips.us-iso-east-1.c2s.ic.gov"
+          },
+          "us-iso-east-1" : {
+            "variants" : [ {
+              "hostname" : "kms-fips.us-iso-east-1.c2s.ic.gov",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-iso-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-iso-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "kms-fips.us-iso-east-1.c2s.ic.gov"
+          },
+          "us-iso-west-1" : {
+            "variants" : [ {
+              "hostname" : "kms-fips.us-iso-west-1.c2s.ic.gov",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-iso-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-iso-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "kms-fips.us-iso-west-1.c2s.ic.gov"
+          }
+        }
+      },
+      "lambda" : {
+        "endpoints" : {
+          "us-iso-east-1" : { },
+          "us-iso-west-1" : { }
+        }
+      },
+      "license-manager" : {
+        "endpoints" : {
+          "us-iso-east-1" : { },
+          "us-iso-west-1" : { }
+        }
+      },
+      "logs" : {
+        "endpoints" : {
+          "us-iso-east-1" : { },
+          "us-iso-west-1" : { }
+        }
+      },
+      "medialive" : {
+        "endpoints" : {
+          "fips-us-iso-east-1" : {
+            "credentialScope" : {
+              "region" : "us-iso-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "medialive-fips.us-iso-east-1.c2s.ic.gov"
+          },
+          "us-iso-east-1" : {
+            "variants" : [ {
+              "hostname" : "medialive-fips.us-iso-east-1.c2s.ic.gov",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "mediapackage" : {
+        "endpoints" : {
+          "us-iso-east-1" : { }
+        }
+      },
+      "metrics.sagemaker" : {
+        "endpoints" : {
+          "us-iso-east-1" : { }
+        }
+      },
+      "monitoring" : {
+        "endpoints" : {
+          "us-iso-east-1" : { },
+          "us-iso-west-1" : { }
+        }
+      },
+      "oam" : {
+        "endpoints" : {
+          "us-iso-east-1" : { },
+          "us-iso-west-1" : { }
+        }
+      },
+      "organizations" : {
+        "endpoints" : {
+          "aws-iso-global" : {
+            "credentialScope" : {
+              "region" : "us-iso-east-1"
+            },
+            "hostname" : "organizations.us-iso-east-1.c2s.ic.gov"
+          }
+        },
+        "isRegionalized" : false,
+        "partitionEndpoint" : "aws-iso-global"
+      },
+      "outposts" : {
+        "endpoints" : {
+          "us-iso-east-1" : { }
+        }
+      },
+      "pi" : {
+        "endpoints" : {
+          "us-iso-east-1" : {
+            "protocols" : [ "https" ]
+          },
+          "us-iso-west-1" : {
+            "protocols" : [ "https" ]
+          }
+        }
+      },
+      "ram" : {
+        "endpoints" : {
+          "us-iso-east-1" : { },
+          "us-iso-west-1" : { }
+        }
+      },
+      "rbin" : {
+        "endpoints" : {
+          "fips-us-iso-east-1" : {
+            "credentialScope" : {
+              "region" : "us-iso-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "rbin-fips.us-iso-east-1.c2s.ic.gov"
+          },
+          "fips-us-iso-west-1" : {
+            "credentialScope" : {
+              "region" : "us-iso-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "rbin-fips.us-iso-west-1.c2s.ic.gov"
+          },
+          "us-iso-east-1" : {
+            "variants" : [ {
+              "hostname" : "rbin-fips.us-iso-east-1.c2s.ic.gov",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-iso-west-1" : {
+            "variants" : [ {
+              "hostname" : "rbin-fips.us-iso-west-1.c2s.ic.gov",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "rds" : {
+        "endpoints" : {
+          "rds.us-iso-east-1" : {
+            "credentialScope" : {
+              "region" : "us-iso-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "rds.us-iso-east-1.c2s.ic.gov"
+          },
+          "rds.us-iso-west-1" : {
+            "credentialScope" : {
+              "region" : "us-iso-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "rds.us-iso-west-1.c2s.ic.gov"
+          },
+          "us-iso-east-1" : {
+            "variants" : [ {
+              "hostname" : "rds.us-iso-east-1.c2s.ic.gov",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-iso-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-iso-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "rds.us-iso-east-1.c2s.ic.gov"
+          },
+          "us-iso-west-1" : {
+            "variants" : [ {
+              "hostname" : "rds.us-iso-west-1.c2s.ic.gov",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-iso-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-iso-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "rds.us-iso-west-1.c2s.ic.gov"
+          }
+        }
+      },
+      "redshift" : {
+        "endpoints" : {
+          "us-iso-east-1" : {
+            "credentialScope" : {
+              "region" : "us-iso-east-1"
+            },
+            "hostname" : "redshift.us-iso-east-1.c2s.ic.gov"
+          },
+          "us-iso-west-1" : {
+            "credentialScope" : {
+              "region" : "us-iso-west-1"
+            },
+            "hostname" : "redshift.us-iso-west-1.c2s.ic.gov"
+          }
+        }
+      },
+      "resource-groups" : {
+        "endpoints" : {
+          "us-iso-east-1" : { },
+          "us-iso-west-1" : { }
+        }
+      },
+      "route53" : {
+        "endpoints" : {
+          "aws-iso-global" : {
+            "credentialScope" : {
+              "region" : "us-iso-east-1"
+            },
+            "hostname" : "route53.c2s.ic.gov"
+          }
+        },
+        "isRegionalized" : false,
+        "partitionEndpoint" : "aws-iso-global"
+      },
+      "route53resolver" : {
+        "endpoints" : {
+          "us-iso-east-1" : { },
+          "us-iso-west-1" : { }
+        }
+      },
+      "runtime.sagemaker" : {
+        "endpoints" : {
+          "us-iso-east-1" : { }
+        }
+      },
+      "s3" : {
+        "defaults" : {
+          "signatureVersions" : [ "s3v4" ]
+        },
+        "endpoints" : {
+          "fips-us-iso-east-1" : {
+            "credentialScope" : {
+              "region" : "us-iso-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "s3-fips.us-iso-east-1.c2s.ic.gov"
+          },
+          "fips-us-iso-west-1" : {
+            "credentialScope" : {
+              "region" : "us-iso-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "s3-fips.us-iso-west-1.c2s.ic.gov"
+          },
+          "us-iso-east-1" : {
+            "protocols" : [ "http", "https" ],
+            "signatureVersions" : [ "s3v4" ],
+            "variants" : [ {
+              "hostname" : "s3-fips.dualstack.us-iso-east-1.c2s.ic.gov",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "s3-fips.us-iso-east-1.c2s.ic.gov",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-iso-west-1" : {
+            "variants" : [ {
+              "hostname" : "s3-fips.dualstack.us-iso-west-1.c2s.ic.gov",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "s3-fips.us-iso-west-1.c2s.ic.gov",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "s3-control" : {
+        "defaults" : {
+          "protocols" : [ "https" ],
+          "signatureVersions" : [ "s3v4" ]
+        },
+        "endpoints" : {
+          "us-iso-east-1" : {
+            "credentialScope" : {
+              "region" : "us-iso-east-1"
+            },
+            "hostname" : "s3-control.us-iso-east-1.c2s.ic.gov",
+            "signatureVersions" : [ "s3v4" ],
+            "variants" : [ {
+              "hostname" : "s3-control-fips.dualstack.us-iso-east-1.c2s.ic.gov",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "s3-control-fips.us-iso-east-1.c2s.ic.gov",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "s3-control.dualstack.us-iso-east-1.c2s.ic.gov",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-iso-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-iso-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "s3-control-fips.us-iso-east-1.c2s.ic.gov",
+            "signatureVersions" : [ "s3v4" ]
+          },
+          "us-iso-west-1" : {
+            "credentialScope" : {
+              "region" : "us-iso-west-1"
+            },
+            "hostname" : "s3-control.us-iso-west-1.c2s.ic.gov",
+            "signatureVersions" : [ "s3v4" ],
+            "variants" : [ {
+              "hostname" : "s3-control-fips.dualstack.us-iso-west-1.c2s.ic.gov",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "s3-control-fips.us-iso-west-1.c2s.ic.gov",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "s3-control.dualstack.us-iso-west-1.c2s.ic.gov",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-iso-west-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-iso-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "s3-control-fips.us-iso-west-1.c2s.ic.gov",
+            "signatureVersions" : [ "s3v4" ]
+          }
+        }
+      },
+      "s3-outposts" : {
+        "endpoints" : {
+          "fips-us-iso-east-1" : {
+            "deprecated" : true
+          },
+          "us-iso-east-1" : {
+            "variants" : [ {
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "scheduler" : {
+        "endpoints" : {
+          "us-iso-east-1" : { },
+          "us-iso-west-1" : { }
+        }
+      },
+      "secretsmanager" : {
+        "endpoints" : {
+          "us-iso-east-1" : {
+            "variants" : [ {
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-iso-east-1-fips" : {
+            "deprecated" : true
+          },
+          "us-iso-west-1" : {
+            "variants" : [ {
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-iso-west-1-fips" : {
+            "deprecated" : true
+          }
+        }
+      },
+      "snowball" : {
+        "endpoints" : {
+          "us-iso-east-1" : { },
+          "us-iso-west-1" : { }
+        }
+      },
+      "sns" : {
+        "endpoints" : {
+          "us-iso-east-1" : {
+            "protocols" : [ "http", "https" ]
+          },
+          "us-iso-west-1" : { }
+        }
+      },
+      "sqs" : {
+        "endpoints" : {
+          "us-iso-east-1" : {
+            "protocols" : [ "http", "https" ]
+          },
+          "us-iso-west-1" : { }
+        }
+      },
+      "ssm" : {
+        "endpoints" : {
+          "us-iso-east-1" : { },
+          "us-iso-west-1" : { }
+        }
+      },
+      "states" : {
+        "endpoints" : {
+          "fips-us-iso-east-1" : {
+            "credentialScope" : {
+              "region" : "us-iso-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "states-fips.us-iso-east-1.c2s.ic.gov"
+          },
+          "fips-us-iso-west-1" : {
+            "credentialScope" : {
+              "region" : "us-iso-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "states-fips.us-iso-west-1.c2s.ic.gov"
+          },
+          "us-iso-east-1" : {
+            "variants" : [ {
+              "hostname" : "states-fips.us-iso-east-1.c2s.ic.gov",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-iso-west-1" : {
+            "variants" : [ {
+              "hostname" : "states-fips.us-iso-west-1.c2s.ic.gov",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "streams.dynamodb" : {
+        "defaults" : {
+          "credentialScope" : {
+            "service" : "dynamodb"
+          }
+        },
+        "endpoints" : {
+          "us-iso-east-1" : { },
+          "us-iso-west-1" : { }
+        }
+      },
+      "sts" : {
+        "endpoints" : {
+          "us-iso-east-1" : { },
+          "us-iso-west-1" : { }
+        }
+      },
+      "support" : {
+        "endpoints" : {
+          "aws-iso-global" : {
+            "credentialScope" : {
+              "region" : "us-iso-east-1"
+            },
+            "hostname" : "support.us-iso-east-1.c2s.ic.gov"
+          }
+        },
+        "partitionEndpoint" : "aws-iso-global"
+      },
+      "swf" : {
+        "endpoints" : {
+          "fips-us-iso-east-1" : {
+            "credentialScope" : {
+              "region" : "us-iso-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "swf-fips.us-iso-east-1.c2s.ic.gov"
+          },
+          "fips-us-iso-west-1" : {
+            "credentialScope" : {
+              "region" : "us-iso-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "swf-fips.us-iso-west-1.c2s.ic.gov"
+          },
+          "us-iso-east-1" : {
+            "variants" : [ {
+              "hostname" : "swf-fips.us-iso-east-1.c2s.ic.gov",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-iso-west-1" : {
+            "variants" : [ {
+              "hostname" : "swf-fips.us-iso-west-1.c2s.ic.gov",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "synthetics" : {
+        "endpoints" : {
+          "us-iso-east-1" : { },
+          "us-iso-west-1" : { }
+        }
+      },
+      "tagging" : {
+        "endpoints" : {
+          "us-iso-east-1" : { },
+          "us-iso-west-1" : { }
+        }
+      },
+      "textract" : {
+        "endpoints" : {
+          "us-iso-east-1" : { }
+        }
+      },
+      "transcribe" : {
+        "defaults" : {
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "fips-us-iso-east-1" : {
+            "credentialScope" : {
+              "region" : "us-iso-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "fips.transcribe.us-iso-east-1.c2s.ic.gov"
+          },
+          "us-iso-east-1" : {
+            "variants" : [ {
+              "hostname" : "fips.transcribe.us-iso-east-1.c2s.ic.gov",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "transcribestreaming" : {
+        "endpoints" : {
+          "us-iso-east-1" : { }
+        }
+      },
+      "translate" : {
+        "defaults" : {
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "us-iso-east-1" : {
+            "variants" : [ {
+              "hostname" : "translate-fips.us-iso-east-1.c2s.ic.gov",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-iso-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-iso-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "translate-fips.us-iso-east-1.c2s.ic.gov"
+          }
+        }
+      },
+      "workspaces" : {
+        "endpoints" : {
+          "fips-us-iso-east-1" : {
+            "credentialScope" : {
+              "region" : "us-iso-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "workspaces-fips.us-iso-east-1.c2s.ic.gov"
+          },
+          "fips-us-iso-west-1" : {
+            "credentialScope" : {
+              "region" : "us-iso-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "workspaces-fips.us-iso-west-1.c2s.ic.gov"
+          },
+          "us-iso-east-1" : {
+            "variants" : [ {
+              "hostname" : "workspaces-fips.us-iso-east-1.c2s.ic.gov",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-iso-west-1" : {
+            "variants" : [ {
+              "hostname" : "workspaces-fips.us-iso-west-1.c2s.ic.gov",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      }
+    }
+  }, {
+    "defaults" : {
+      "hostname" : "{service}.{region}.{dnsSuffix}",
+      "protocols" : [ "https" ],
+      "signatureVersions" : [ "v4" ],
+      "variants" : [ {
+        "dnsSuffix" : "sc2s.sgov.gov",
+        "hostname" : "{service}-fips.{region}.{dnsSuffix}",
+        "tags" : [ "fips" ]
+      } ]
+    },
+    "dnsSuffix" : "sc2s.sgov.gov",
+    "partition" : "aws-iso-b",
+    "partitionName" : "AWS ISOB (US)",
+    "regionRegex" : "^us\\-isob\\-\\w+\\-\\d+$",
+    "regions" : {
+      "us-isob-east-1" : {
+        "description" : "US ISOB East (Ohio)"
+      }
+    },
+    "services" : {
+      "api.ecr" : {
+        "endpoints" : {
+          "us-isob-east-1" : {
+            "credentialScope" : {
+              "region" : "us-isob-east-1"
+            },
+            "hostname" : "api.ecr.us-isob-east-1.sc2s.sgov.gov"
+          }
+        }
+      },
+      "api.pricing" : {
+        "defaults" : {
+          "credentialScope" : {
+            "service" : "pricing"
+          }
+        },
+        "endpoints" : {
+          "us-isob-east-1" : { }
+        }
+      },
+      "api.sagemaker" : {
+        "endpoints" : {
+          "us-isob-east-1" : { }
+        }
+      },
+      "apigateway" : {
+        "endpoints" : {
+          "us-isob-east-1" : { }
+        }
+      },
+      "appconfig" : {
+        "endpoints" : {
+          "us-isob-east-1" : { }
+        }
+      },
+      "appconfigdata" : {
+        "endpoints" : {
+          "us-isob-east-1" : { }
+        }
+      },
+      "application-autoscaling" : {
+        "defaults" : {
+          "protocols" : [ "http", "https" ]
+        },
+        "endpoints" : {
+          "us-isob-east-1" : { }
+        }
+      },
+      "arc-zonal-shift" : {
+        "endpoints" : {
+          "us-isob-east-1" : { }
+        }
+      },
+      "autoscaling" : {
+        "defaults" : {
+          "protocols" : [ "http", "https" ]
+        },
+        "endpoints" : {
+          "us-isob-east-1" : { }
+        }
+      },
+      "budgets" : {
+        "endpoints" : {
+          "aws-iso-b-global" : {
+            "credentialScope" : {
+              "region" : "us-isob-east-1"
+            },
+            "hostname" : "budgets.global.sc2s.sgov.gov"
+          },
+          "us-isob-east-1" : {
+            "credentialScope" : {
+              "region" : "us-isob-east-1"
+            },
+            "hostname" : "budgets.global.sc2s.sgov.gov"
+          }
+        },
+        "isRegionalized" : false,
+        "partitionEndpoint" : "aws-iso-b-global"
+      },
+      "ce" : {
+        "endpoints" : {
+          "aws-iso-b-global" : {
+            "credentialScope" : {
+              "region" : "us-isob-east-1"
+            },
+            "hostname" : "ce.us-isob-east-1.sc2s.sgov.gov"
+          }
+        },
+        "isRegionalized" : false,
+        "partitionEndpoint" : "aws-iso-b-global"
+      },
+      "cloudcontrolapi" : {
+        "endpoints" : {
+          "us-isob-east-1" : { }
+        }
+      },
+      "cloudformation" : {
+        "endpoints" : {
+          "us-isob-east-1" : { }
+        }
+      },
+      "cloudtrail" : {
+        "endpoints" : {
+          "fips-us-isob-east-1" : {
+            "credentialScope" : {
+              "region" : "us-isob-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "cloudtrail-fips.us-isob-east-1.sc2s.sgov.gov"
+          },
+          "us-isob-east-1" : {
+            "variants" : [ {
+              "hostname" : "cloudtrail-fips.us-isob-east-1.sc2s.sgov.gov",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "codedeploy" : {
+        "endpoints" : {
+          "us-isob-east-1" : { }
+        }
+      },
+      "config" : {
+        "endpoints" : {
+          "fips-us-isob-east-1" : {
+            "credentialScope" : {
+              "region" : "us-isob-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "config-fips.us-isob-east-1.sc2s.sgov.gov"
+          },
+          "us-isob-east-1" : {
+            "variants" : [ {
+              "hostname" : "config-fips.us-isob-east-1.sc2s.sgov.gov",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "directconnect" : {
+        "endpoints" : {
+          "us-isob-east-1" : { }
+        }
+      },
+      "dlm" : {
+        "endpoints" : {
+          "us-isob-east-1" : { }
+        }
+      },
+      "dms" : {
+        "defaults" : {
+          "variants" : [ {
+            "hostname" : "dms.{region}.{dnsSuffix}",
+            "tags" : [ "fips" ]
+          } ]
+        },
+        "endpoints" : {
+          "dms" : {
+            "credentialScope" : {
+              "region" : "us-isob-east-1"
+            },
+            "deprecated" : true,
+            "variants" : [ {
+              "hostname" : "dms.us-isob-east-1.sc2s.sgov.gov",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "dms-fips" : {
+            "credentialScope" : {
+              "region" : "us-isob-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "dms.us-isob-east-1.sc2s.sgov.gov"
+          },
+          "us-isob-east-1" : {
+            "variants" : [ {
+              "hostname" : "dms.us-isob-east-1.sc2s.sgov.gov",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-isob-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-isob-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "dms.us-isob-east-1.sc2s.sgov.gov"
+          }
+        }
+      },
+      "ds" : {
+        "endpoints" : {
+          "fips-us-isob-east-1" : {
+            "credentialScope" : {
+              "region" : "us-isob-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ds-fips.us-isob-east-1.sc2s.sgov.gov"
+          },
+          "us-isob-east-1" : {
+            "variants" : [ {
+              "hostname" : "ds-fips.us-isob-east-1.sc2s.sgov.gov",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "dynamodb" : {
+        "defaults" : {
+          "protocols" : [ "http", "https" ]
+        },
+        "endpoints" : {
+          "us-isob-east-1" : { }
+        }
+      },
+      "ebs" : {
+        "endpoints" : {
+          "us-isob-east-1" : { }
+        }
+      },
+      "ec2" : {
+        "defaults" : {
+          "protocols" : [ "http", "https" ]
+        },
+        "endpoints" : {
+          "us-isob-east-1" : { }
+        }
+      },
+      "ecs" : {
+        "endpoints" : {
+          "us-isob-east-1" : { }
+        }
+      },
+      "eks" : {
+        "defaults" : {
+          "protocols" : [ "http", "https" ]
+        },
+        "endpoints" : {
+          "us-isob-east-1" : { }
+        }
+      },
+      "elasticache" : {
+        "endpoints" : {
+          "us-isob-east-1" : { }
+        }
+      },
+      "elasticfilesystem" : {
+        "endpoints" : {
+          "fips-us-isob-east-1" : {
+            "credentialScope" : {
+              "region" : "us-isob-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticfilesystem-fips.us-isob-east-1.sc2s.sgov.gov"
+          },
+          "us-isob-east-1" : {
+            "variants" : [ {
+              "hostname" : "elasticfilesystem-fips.us-isob-east-1.sc2s.sgov.gov",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "elasticloadbalancing" : {
+        "endpoints" : {
+          "us-isob-east-1" : {
+            "protocols" : [ "https" ]
+          }
+        }
+      },
+      "elasticmapreduce" : {
+        "endpoints" : {
+          "fips-us-isob-east-1" : {
+            "credentialScope" : {
+              "region" : "us-isob-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticmapreduce.us-isob-east-1.sc2s.sgov.gov"
+          },
+          "us-isob-east-1" : {
+            "variants" : [ {
+              "hostname" : "elasticmapreduce.us-isob-east-1.sc2s.sgov.gov",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "es" : {
+        "endpoints" : {
+          "us-isob-east-1" : { }
+        }
+      },
+      "events" : {
+        "endpoints" : {
+          "us-isob-east-1" : { }
+        }
+      },
+      "firehose" : {
+        "endpoints" : {
+          "us-isob-east-1" : { }
+        }
+      },
+      "glacier" : {
+        "endpoints" : {
+          "us-isob-east-1" : { }
+        }
+      },
+      "health" : {
+        "endpoints" : {
+          "us-isob-east-1" : { }
+        }
+      },
+      "iam" : {
+        "endpoints" : {
+          "aws-iso-b-global" : {
+            "credentialScope" : {
+              "region" : "us-isob-east-1"
+            },
+            "hostname" : "iam.us-isob-east-1.sc2s.sgov.gov"
+          }
+        },
+        "isRegionalized" : false,
+        "partitionEndpoint" : "aws-iso-b-global"
+      },
+      "kinesis" : {
+        "endpoints" : {
+          "us-isob-east-1" : { }
+        }
+      },
+      "kms" : {
+        "endpoints" : {
+          "ProdFips" : {
+            "credentialScope" : {
+              "region" : "us-isob-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "kms-fips.us-isob-east-1.sc2s.sgov.gov"
+          },
+          "us-isob-east-1" : {
+            "variants" : [ {
+              "hostname" : "kms-fips.us-isob-east-1.sc2s.sgov.gov",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-isob-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-isob-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "kms-fips.us-isob-east-1.sc2s.sgov.gov"
+          }
+        }
+      },
+      "lambda" : {
+        "endpoints" : {
+          "us-isob-east-1" : { }
+        }
+      },
+      "license-manager" : {
+        "endpoints" : {
+          "us-isob-east-1" : { }
+        }
+      },
+      "logs" : {
+        "endpoints" : {
+          "us-isob-east-1" : { }
+        }
+      },
+      "medialive" : {
+        "endpoints" : {
+          "fips-us-isob-east-1" : {
+            "credentialScope" : {
+              "region" : "us-isob-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "medialive-fips.us-isob-east-1.sc2s.sgov.gov"
+          },
+          "us-isob-east-1" : {
+            "variants" : [ {
+              "hostname" : "medialive-fips.us-isob-east-1.sc2s.sgov.gov",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "mediapackage" : {
+        "endpoints" : {
+          "us-isob-east-1" : { }
+        }
+      },
+      "metering.marketplace" : {
+        "defaults" : {
+          "credentialScope" : {
+            "service" : "aws-marketplace"
+          }
+        },
+        "endpoints" : {
+          "us-isob-east-1" : { }
+        }
+      },
+      "metrics.sagemaker" : {
+        "endpoints" : {
+          "us-isob-east-1" : { }
+        }
+      },
+      "monitoring" : {
+        "endpoints" : {
+          "us-isob-east-1" : { }
+        }
+      },
+      "oam" : {
+        "endpoints" : {
+          "us-isob-east-1" : { }
+        }
+      },
+      "organizations" : {
+        "endpoints" : {
+          "aws-iso-b-global" : {
+            "credentialScope" : {
+              "region" : "us-isob-east-1"
+            },
+            "hostname" : "organizations.us-isob-east-1.sc2s.sgov.gov"
+          }
+        },
+        "isRegionalized" : false,
+        "partitionEndpoint" : "aws-iso-b-global"
+      },
+      "outposts" : {
+        "endpoints" : {
+          "us-isob-east-1" : { }
+        }
+      },
+      "ram" : {
+        "endpoints" : {
+          "us-isob-east-1" : { }
+        }
+      },
+      "rbin" : {
+        "endpoints" : {
+          "fips-us-isob-east-1" : {
+            "credentialScope" : {
+              "region" : "us-isob-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "rbin-fips.us-isob-east-1.sc2s.sgov.gov"
+          },
+          "us-isob-east-1" : {
+            "variants" : [ {
+              "hostname" : "rbin-fips.us-isob-east-1.sc2s.sgov.gov",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "rds" : {
+        "endpoints" : {
+          "rds.us-isob-east-1" : {
+            "credentialScope" : {
+              "region" : "us-isob-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "rds.us-isob-east-1.sc2s.sgov.gov"
+          },
+          "us-isob-east-1" : {
+            "variants" : [ {
+              "hostname" : "rds.us-isob-east-1.sc2s.sgov.gov",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-isob-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-isob-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "rds.us-isob-east-1.sc2s.sgov.gov"
+          }
+        }
+      },
+      "redshift" : {
+        "endpoints" : {
+          "us-isob-east-1" : {
+            "credentialScope" : {
+              "region" : "us-isob-east-1"
+            },
+            "hostname" : "redshift.us-isob-east-1.sc2s.sgov.gov"
+          }
+        }
+      },
+      "resource-groups" : {
+        "endpoints" : {
+          "us-isob-east-1" : { }
+        }
+      },
+      "route53" : {
+        "endpoints" : {
+          "aws-iso-b-global" : {
+            "credentialScope" : {
+              "region" : "us-isob-east-1"
+            },
+            "hostname" : "route53.sc2s.sgov.gov"
+          }
+        },
+        "isRegionalized" : false,
+        "partitionEndpoint" : "aws-iso-b-global"
+      },
+      "route53resolver" : {
+        "endpoints" : {
+          "us-isob-east-1" : { }
+        }
+      },
+      "runtime.sagemaker" : {
+        "endpoints" : {
+          "us-isob-east-1" : { }
+        }
+      },
+      "s3" : {
+        "defaults" : {
+          "protocols" : [ "http", "https" ],
+          "signatureVersions" : [ "s3v4" ]
+        },
+        "endpoints" : {
+          "fips-us-isob-east-1" : {
+            "credentialScope" : {
+              "region" : "us-isob-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "s3-fips.us-isob-east-1.sc2s.sgov.gov"
+          },
+          "us-isob-east-1" : {
+            "variants" : [ {
+              "hostname" : "s3-fips.dualstack.us-isob-east-1.sc2s.sgov.gov",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "s3-fips.us-isob-east-1.sc2s.sgov.gov",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "s3-control" : {
+        "defaults" : {
+          "protocols" : [ "https" ],
+          "signatureVersions" : [ "s3v4" ]
+        },
+        "endpoints" : {
+          "us-isob-east-1" : {
+            "credentialScope" : {
+              "region" : "us-isob-east-1"
+            },
+            "hostname" : "s3-control.us-isob-east-1.sc2s.sgov.gov",
+            "signatureVersions" : [ "s3v4" ],
+            "variants" : [ {
+              "hostname" : "s3-control-fips.dualstack.us-isob-east-1.sc2s.sgov.gov",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "s3-control-fips.us-isob-east-1.sc2s.sgov.gov",
+              "tags" : [ "fips" ]
+            }, {
+              "hostname" : "s3-control.dualstack.us-isob-east-1.sc2s.sgov.gov",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-isob-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-isob-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "s3-control-fips.us-isob-east-1.sc2s.sgov.gov",
+            "signatureVersions" : [ "s3v4" ]
+          }
+        }
+      },
+      "s3-outposts" : {
+        "endpoints" : {
+          "fips-us-isob-east-1" : {
+            "deprecated" : true
+          },
+          "us-isob-east-1" : {
+            "variants" : [ {
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "scheduler" : {
+        "endpoints" : {
+          "us-isob-east-1" : { }
+        }
+      },
+      "secretsmanager" : {
+        "endpoints" : {
+          "us-isob-east-1" : {
+            "variants" : [ {
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-isob-east-1-fips" : {
+            "deprecated" : true
+          }
+        }
+      },
+      "snowball" : {
+        "endpoints" : {
+          "us-isob-east-1" : { }
+        }
+      },
+      "sns" : {
+        "defaults" : {
+          "protocols" : [ "http", "https" ]
+        },
+        "endpoints" : {
+          "us-isob-east-1" : { }
+        }
+      },
+      "sqs" : {
+        "defaults" : {
+          "protocols" : [ "http", "https" ],
+          "sslCommonName" : "{region}.queue.{dnsSuffix}"
+        },
+        "endpoints" : {
+          "us-isob-east-1" : { }
+        }
+      },
+      "ssm" : {
+        "endpoints" : {
+          "us-isob-east-1" : { }
+        }
+      },
+      "states" : {
+        "endpoints" : {
+          "fips-us-isob-east-1" : {
+            "credentialScope" : {
+              "region" : "us-isob-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "states-fips.us-isob-east-1.sc2s.sgov.gov"
+          },
+          "us-isob-east-1" : {
+            "variants" : [ {
+              "hostname" : "states-fips.us-isob-east-1.sc2s.sgov.gov",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "storagegateway" : {
+        "endpoints" : {
+          "fips" : {
+            "credentialScope" : {
+              "region" : "us-isob-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "storagegateway-fips.us-isob-east-1.sc2s.sgov.gov"
+          },
+          "us-isob-east-1" : {
+            "variants" : [ {
+              "hostname" : "storagegateway-fips.us-isob-east-1.sc2s.sgov.gov",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-isob-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-isob-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "storagegateway-fips.us-isob-east-1.sc2s.sgov.gov"
+          }
+        }
+      },
+      "streams.dynamodb" : {
+        "defaults" : {
+          "credentialScope" : {
+            "service" : "dynamodb"
+          },
+          "protocols" : [ "http", "https" ]
+        },
+        "endpoints" : {
+          "us-isob-east-1" : { }
+        }
+      },
+      "sts" : {
+        "endpoints" : {
+          "us-isob-east-1" : { }
+        }
+      },
+      "support" : {
+        "endpoints" : {
+          "aws-iso-b-global" : {
+            "credentialScope" : {
+              "region" : "us-isob-east-1"
+            },
+            "hostname" : "support.us-isob-east-1.sc2s.sgov.gov"
+          }
+        },
+        "partitionEndpoint" : "aws-iso-b-global"
+      },
+      "swf" : {
+        "endpoints" : {
+          "fips-us-isob-east-1" : {
+            "credentialScope" : {
+              "region" : "us-isob-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "swf-fips.us-isob-east-1.sc2s.sgov.gov"
+          },
+          "us-isob-east-1" : {
+            "variants" : [ {
+              "hostname" : "swf-fips.us-isob-east-1.sc2s.sgov.gov",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "synthetics" : {
+        "endpoints" : {
+          "us-isob-east-1" : { }
+        }
+      },
+      "tagging" : {
+        "endpoints" : {
+          "us-isob-east-1" : { }
+        }
+      },
+      "workspaces" : {
+        "endpoints" : {
+          "fips-us-isob-east-1" : {
+            "credentialScope" : {
+              "region" : "us-isob-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "workspaces-fips.us-isob-east-1.sc2s.sgov.gov"
+          },
+          "us-isob-east-1" : {
+            "variants" : [ {
+              "hostname" : "workspaces-fips.us-isob-east-1.sc2s.sgov.gov",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "xray" : {
+        "endpoints" : {
+          "us-isob-east-1" : { }
+        }
+      }
+    }
+  }, {
+    "defaults" : {
+      "hostname" : "{service}.{region}.{dnsSuffix}",
+      "protocols" : [ "https" ],
+      "signatureVersions" : [ "v4" ],
+      "variants" : [ {
+        "dnsSuffix" : "cloud.adc-e.uk",
+        "hostname" : "{service}-fips.{region}.{dnsSuffix}",
+        "tags" : [ "fips" ]
+      } ]
+    },
+    "dnsSuffix" : "cloud.adc-e.uk",
+    "partition" : "aws-iso-e",
+    "partitionName" : "AWS ISOE (Europe)",
+    "regionRegex" : "^eu\\-isoe\\-\\w+\\-\\d+$",
+    "regions" : {
+      "eu-isoe-west-1" : {
+        "description" : "EU ISOE West"
+      }
+    },
+    "services" : { }
+  }, {
+    "defaults" : {
+      "hostname" : "{service}.{region}.{dnsSuffix}",
+      "protocols" : [ "https" ],
+      "signatureVersions" : [ "v4" ],
+      "variants" : [ {
+        "dnsSuffix" : "csp.hci.ic.gov",
+        "hostname" : "{service}-fips.{region}.{dnsSuffix}",
+        "tags" : [ "fips" ]
+      } ]
+    },
+    "dnsSuffix" : "csp.hci.ic.gov",
+    "partition" : "aws-iso-f",
+    "partitionName" : "AWS ISOF",
+    "regionRegex" : "^us\\-isof\\-\\w+\\-\\d+$",
+    "regions" : {
+      "us-isof-east-1" : {
+        "description" : "US ISOF EAST"
+      },
+      "us-isof-south-1" : {
+        "description" : "US ISOF SOUTH"
+      }
+    },
+    "services" : {
+      "access-analyzer" : {
+        "endpoints" : {
+          "us-isof-east-1" : {
+            "variants" : [ {
+              "hostname" : "access-analyzer.us-isof-east-1.api.aws.hci.ic.gov",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-isof-south-1" : {
+            "variants" : [ {
+              "hostname" : "access-analyzer.us-isof-south-1.api.aws.hci.ic.gov",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "acm" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "acm-pca" : {
+        "defaults" : {
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "api.ecr" : {
+        "endpoints" : {
+          "us-isof-east-1" : {
+            "credentialScope" : {
+              "region" : "us-isof-east-1"
+            },
+            "hostname" : "api.ecr.us-isof-east-1.csp.hci.ic.gov"
+          },
+          "us-isof-south-1" : {
+            "credentialScope" : {
+              "region" : "us-isof-south-1"
+            },
+            "hostname" : "api.ecr.us-isof-south-1.csp.hci.ic.gov"
+          }
+        }
+      },
+      "api.pricing" : {
+        "defaults" : {
+          "credentialScope" : {
+            "service" : "pricing"
+          }
+        },
+        "endpoints" : {
+          "us-isof-south-1" : { }
+        }
+      },
+      "api.sagemaker" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "appconfig" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "appconfigdata" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "application-autoscaling" : {
+        "defaults" : {
+          "protocols" : [ "http", "https" ]
+        },
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "arc-zonal-shift" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "athena" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "autoscaling" : {
+        "defaults" : {
+          "protocols" : [ "http", "https" ]
+        },
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "backup" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "batch" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "budgets" : {
+        "endpoints" : {
+          "aws-iso-f-global" : {
+            "credentialScope" : {
+              "region" : "us-isof-south-1"
+            },
+            "hostname" : "budgets.global.csp.hci.ic.gov"
+          },
+          "us-isof-south-1" : {
+            "credentialScope" : {
+              "region" : "us-isof-south-1"
+            },
+            "hostname" : "budgets.global.csp.hci.ic.gov"
+          }
+        },
+        "isRegionalized" : false,
+        "partitionEndpoint" : "aws-iso-f-global"
+      },
+      "ce" : {
+        "endpoints" : {
+          "aws-iso-f-global" : {
+            "credentialScope" : {
+              "region" : "us-isof-south-1"
+            },
+            "hostname" : "ce.us-isof-south-1.csp.hci.ic.gov"
+          }
+        },
+        "isRegionalized" : false,
+        "partitionEndpoint" : "aws-iso-f-global"
+      },
+      "cloudcontrolapi" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "cloudformation" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "cloudtrail" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "codebuild" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "codedeploy" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "codepipeline" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "comprehend" : {
+        "defaults" : {
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "compute-optimizer" : {
+        "endpoints" : {
+          "us-isof-south-1" : {
+            "credentialScope" : {
+              "region" : "us-isof-south-1"
+            },
+            "hostname" : "compute-optimizer.us-isof-south-1.csp.hci.ic.gov"
+          }
+        }
+      },
+      "config" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "cost-optimization-hub" : {
+        "endpoints" : {
+          "us-isof-south-1" : {
+            "credentialScope" : {
+              "region" : "us-isof-south-1"
+            },
+            "hostname" : "cost-optimization-hub.us-isof-south-1.csp.hci.ic.gov"
+          }
+        }
+      },
+      "directconnect" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "dlm" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "dms" : {
+        "endpoints" : {
+          "dms" : {
+            "credentialScope" : {
+              "region" : "us-isof-east-1"
+            },
+            "deprecated" : true,
+            "variants" : [ {
+              "hostname" : "dms.us-isof-east-1.csp.hci.ic.gov",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "dms-fips" : {
+            "credentialScope" : {
+              "region" : "us-isof-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "dms.us-isof-east-1.csp.hci.ic.gov"
+          },
+          "us-isof-east-1" : {
+            "variants" : [ {
+              "hostname" : "dms.us-isof-east-1.csp.hci.ic.gov",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-isof-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-isof-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "dms.us-isof-east-1.csp.hci.ic.gov"
+          },
+          "us-isof-south-1" : {
+            "variants" : [ {
+              "hostname" : "dms.us-isof-south-1.csp.hci.ic.gov",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-isof-south-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-isof-south-1"
+            },
+            "deprecated" : true,
+            "hostname" : "dms.us-isof-south-1.csp.hci.ic.gov"
+          }
+        }
+      },
+      "ds" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "dynamodb" : {
+        "defaults" : {
+          "protocols" : [ "http", "https" ]
+        },
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "ebs" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "ec2" : {
+        "defaults" : {
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "ecs" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "eks" : {
+        "defaults" : {
+          "protocols" : [ "http", "https" ]
+        },
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "elasticache" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "elasticfilesystem" : {
+        "endpoints" : {
+          "fips-us-isof-east-1" : {
+            "credentialScope" : {
+              "region" : "us-isof-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticfilesystem-fips.us-isof-east-1.csp.hci.ic.gov"
+          },
+          "fips-us-isof-south-1" : {
+            "credentialScope" : {
+              "region" : "us-isof-south-1"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticfilesystem-fips.us-isof-south-1.csp.hci.ic.gov"
+          },
+          "us-isof-east-1" : {
+            "variants" : [ {
+              "hostname" : "elasticfilesystem-fips.us-isof-east-1.csp.hci.ic.gov",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-isof-south-1" : {
+            "variants" : [ {
+              "hostname" : "elasticfilesystem-fips.us-isof-south-1.csp.hci.ic.gov",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "elasticloadbalancing" : {
+        "defaults" : {
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "elasticmapreduce" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "es" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "events" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "firehose" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "fsx" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "glue" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "guardduty" : {
+        "defaults" : {
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        },
+        "isRegionalized" : true
+      },
+      "iam" : {
+        "endpoints" : {
+          "aws-iso-f-global" : {
+            "credentialScope" : {
+              "region" : "us-isof-south-1"
+            },
+            "hostname" : "iam.us-isof-south-1.csp.hci.ic.gov"
+          }
+        },
+        "isRegionalized" : false,
+        "partitionEndpoint" : "aws-iso-f-global"
+      },
+      "kinesis" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "kms" : {
+        "endpoints" : {
+          "ProdFips" : {
+            "credentialScope" : {
+              "region" : "us-isof-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "kms-fips.us-isof-east-1.csp.hci.ic.gov"
+          },
+          "us-isof-east-1" : {
+            "variants" : [ {
+              "hostname" : "kms-fips.us-isof-east-1.csp.hci.ic.gov",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-isof-east-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-isof-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "kms-fips.us-isof-east-1.csp.hci.ic.gov"
+          },
+          "us-isof-south-1" : {
+            "variants" : [ {
+              "hostname" : "kms-fips.us-isof-south-1.csp.hci.ic.gov",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-isof-south-1-fips" : {
+            "credentialScope" : {
+              "region" : "us-isof-south-1"
+            },
+            "deprecated" : true,
+            "hostname" : "kms-fips.us-isof-south-1.csp.hci.ic.gov"
+          }
+        }
+      },
+      "lakeformation" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "lambda" : {
+        "endpoints" : {
+          "us-isof-east-1" : {
+            "variants" : [ {
+              "hostname" : "lambda.us-isof-east-1.api.aws.hci.ic.gov",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-isof-south-1" : {
+            "variants" : [ {
+              "hostname" : "lambda.us-isof-south-1.api.aws.hci.ic.gov",
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "license-manager" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "logs" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "metrics.sagemaker" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "monitoring" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "oam" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "organizations" : {
+        "endpoints" : {
+          "aws-iso-f-global" : {
+            "credentialScope" : {
+              "region" : "us-isof-south-1"
+            },
+            "hostname" : "organizations.us-isof-south-1.csp.hci.ic.gov"
+          }
+        },
+        "isRegionalized" : false,
+        "partitionEndpoint" : "aws-iso-f-global"
+      },
+      "pi" : {
+        "endpoints" : {
+          "us-isof-east-1" : {
+            "protocols" : [ "https" ]
+          },
+          "us-isof-south-1" : {
+            "protocols" : [ "https" ]
+          }
+        }
+      },
+      "pipes" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "quicksight" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "ram" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "rbin" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "rds" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "redshift" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "redshift-serverless" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "rekognition" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "resource-groups" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "route53" : {
+        "endpoints" : {
+          "aws-iso-f-global" : {
+            "credentialScope" : {
+              "region" : "us-isof-south-1"
+            },
+            "hostname" : "route53.csp.hci.ic.gov"
+          }
+        },
+        "isRegionalized" : false,
+        "partitionEndpoint" : "aws-iso-f-global"
+      },
+      "route53resolver" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "s3" : {
+        "defaults" : {
+          "protocols" : [ "http", "https" ],
+          "signatureVersions" : [ "s3v4" ]
+        },
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "savingsplans" : {
+        "endpoints" : {
+          "aws-iso-f-global" : {
+            "credentialScope" : {
+              "region" : "us-isof-south-1"
+            },
+            "hostname" : "savingsplans.csp.hci.ic.gov"
+          }
+        },
+        "isRegionalized" : false,
+        "partitionEndpoint" : "aws-iso-f-global"
+      },
+      "scheduler" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "schemas" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "secretsmanager" : {
+        "endpoints" : {
+          "us-isof-east-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          },
+          "us-isof-south-1" : {
+            "variants" : [ {
+              "tags" : [ "dualstack" ]
+            } ]
+          }
+        }
+      },
+      "servicediscovery" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "servicequotas" : {
+        "defaults" : {
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "sns" : {
+        "defaults" : {
+          "protocols" : [ "http", "https" ]
+        },
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "sqs" : {
+        "defaults" : {
+          "protocols" : [ "http", "https" ],
+          "sslCommonName" : "{region}.queue.{dnsSuffix}"
+        },
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "ssm" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "states" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "streams.dynamodb" : {
+        "defaults" : {
+          "credentialScope" : {
+            "service" : "dynamodb"
+          },
+          "protocols" : [ "http", "https" ]
+        },
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "sts" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "swf" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "synthetics" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "tagging" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "textract" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "transcribe" : {
+        "defaults" : {
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "transcribestreaming" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "translate" : {
+        "defaults" : {
+          "protocols" : [ "https" ]
+        },
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      },
+      "xray" : {
+        "endpoints" : {
+          "us-isof-east-1" : { },
+          "us-isof-south-1" : { }
+        }
+      }
+    }
+  } ],
+  "version" : 3
+}
\ No newline at end of file
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/entityresolution/2018-05-10/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/entityresolution/2018-05-10/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..abca7569
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/entityresolution/2018-05-10/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/entityresolution/2018-05-10/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/entityresolution/2018-05-10/paginators-1.json
new file mode 100644
index 00000000..b34d3829
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/entityresolution/2018-05-10/paginators-1.json
@@ -0,0 +1,46 @@
+{
+  "pagination": {
+    "ListMatchingJobs": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "jobs"
+    },
+    "ListMatchingWorkflows": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "workflowSummaries"
+    },
+    "ListSchemaMappings": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "schemaList"
+    },
+    "ListIdMappingJobs": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "jobs"
+    },
+    "ListIdMappingWorkflows": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "workflowSummaries"
+    },
+    "ListProviderServices": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "providerServiceSummaries"
+    },
+    "ListIdNamespaces": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "idNamespaceSummaries"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/entityresolution/2018-05-10/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/entityresolution/2018-05-10/service-2.json.gz
new file mode 100644
index 00000000..1f186c76
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/entityresolution/2018-05-10/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/es/2015-01-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/es/2015-01-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..38f03a05
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/es/2015-01-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/es/2015-01-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/es/2015-01-01/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/es/2015-01-01/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/es/2015-01-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/es/2015-01-01/paginators-1.json
new file mode 100644
index 00000000..4c0f24e4
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/es/2015-01-01/paginators-1.json
@@ -0,0 +1,34 @@
+{
+  "pagination": {
+    "ListElasticsearchInstanceTypes": {
+      "result_key": "ElasticsearchInstanceTypes",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListElasticsearchVersions": {
+      "result_key": "ElasticsearchVersions",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "DescribeReservedElasticsearchInstanceOfferings": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ReservedElasticsearchInstanceOfferings"
+    },
+    "DescribeReservedElasticsearchInstances": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ReservedElasticsearchInstances"
+    },
+    "GetUpgradeHistory": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "UpgradeHistories"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/es/2015-01-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/es/2015-01-01/service-2.json.gz
new file mode 100644
index 00000000..900fd292
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/es/2015-01-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/events/2014-02-03/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/events/2014-02-03/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..4c93ba43
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/events/2014-02-03/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/events/2014-02-03/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/events/2014-02-03/service-2.json.gz
new file mode 100644
index 00000000..e552015d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/events/2014-02-03/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/events/2015-10-07/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/events/2015-10-07/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..a6096159
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/events/2015-10-07/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/events/2015-10-07/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/events/2015-10-07/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/events/2015-10-07/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/events/2015-10-07/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/events/2015-10-07/paginators-1.json
new file mode 100644
index 00000000..501a3229
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/events/2015-10-07/paginators-1.json
@@ -0,0 +1,22 @@
+{
+  "pagination": {
+    "ListRuleNamesByTarget": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "Limit",
+      "result_key": "RuleNames"
+    },
+    "ListRules": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "Limit",
+      "result_key": "Rules"
+    },
+    "ListTargetsByRule": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "Limit",
+      "result_key": "Targets"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/events/2015-10-07/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/events/2015-10-07/service-2.json.gz
new file mode 100644
index 00000000..06918f3b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/events/2015-10-07/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/evidently/2021-02-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/evidently/2021-02-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..26a8b744
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/evidently/2021-02-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/evidently/2021-02-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/evidently/2021-02-01/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/evidently/2021-02-01/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/evidently/2021-02-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/evidently/2021-02-01/paginators-1.json
new file mode 100644
index 00000000..c72d3cba
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/evidently/2021-02-01/paginators-1.json
@@ -0,0 +1,40 @@
+{
+  "pagination": {
+    "ListExperiments": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "experiments"
+    },
+    "ListFeatures": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "features"
+    },
+    "ListLaunches": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "launches"
+    },
+    "ListProjects": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "projects"
+    },
+    "ListSegmentReferences": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "referencedBy"
+    },
+    "ListSegments": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "segments"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/evidently/2021-02-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/evidently/2021-02-01/service-2.json.gz
new file mode 100644
index 00000000..5ad0a3ca
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/evidently/2021-02-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/finspace-data/2020-07-13/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/finspace-data/2020-07-13/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..7ac1f544
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/finspace-data/2020-07-13/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/finspace-data/2020-07-13/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/finspace-data/2020-07-13/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/finspace-data/2020-07-13/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/finspace-data/2020-07-13/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/finspace-data/2020-07-13/paginators-1.json
new file mode 100644
index 00000000..aa6632a2
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/finspace-data/2020-07-13/paginators-1.json
@@ -0,0 +1,34 @@
+{
+  "pagination": {
+    "ListChangesets": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "changesets"
+    },
+    "ListDataViews": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "dataViews"
+    },
+    "ListDatasets": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "datasets"
+    },
+    "ListPermissionGroups": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "permissionGroups"
+    },
+    "ListUsers": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "users"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/finspace-data/2020-07-13/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/finspace-data/2020-07-13/service-2.json.gz
new file mode 100644
index 00000000..3bd08075
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/finspace-data/2020-07-13/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/finspace/2021-03-12/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/finspace/2021-03-12/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..7d402804
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/finspace/2021-03-12/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/finspace/2021-03-12/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/finspace/2021-03-12/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/finspace/2021-03-12/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/finspace/2021-03-12/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/finspace/2021-03-12/paginators-1.json
new file mode 100644
index 00000000..741ca798
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/finspace/2021-03-12/paginators-1.json
@@ -0,0 +1,10 @@
+{
+  "pagination": {
+    "ListKxEnvironments": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "environments"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/finspace/2021-03-12/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/finspace/2021-03-12/service-2.json.gz
new file mode 100644
index 00000000..4bda454d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/finspace/2021-03-12/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/firehose/2015-08-04/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/firehose/2015-08-04/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..fe3bd0a8
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/firehose/2015-08-04/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/firehose/2015-08-04/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/firehose/2015-08-04/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/firehose/2015-08-04/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/firehose/2015-08-04/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/firehose/2015-08-04/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/firehose/2015-08-04/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/firehose/2015-08-04/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/firehose/2015-08-04/service-2.json.gz
new file mode 100644
index 00000000..6e2949ab
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/firehose/2015-08-04/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/fis/2020-12-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/fis/2020-12-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..05b808aa
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/fis/2020-12-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/fis/2020-12-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/fis/2020-12-01/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/fis/2020-12-01/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/fis/2020-12-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/fis/2020-12-01/paginators-1.json
new file mode 100644
index 00000000..740e56e2
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/fis/2020-12-01/paginators-1.json
@@ -0,0 +1,40 @@
+{
+  "pagination": {
+    "ListActions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "actions"
+    },
+    "ListExperimentResolvedTargets": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "resolvedTargets"
+    },
+    "ListExperimentTemplates": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "experimentTemplates"
+    },
+    "ListExperiments": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "experiments"
+    },
+    "ListTargetAccountConfigurations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "targetAccountConfigurations"
+    },
+    "ListTargetResourceTypes": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "targetResourceTypes"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/fis/2020-12-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/fis/2020-12-01/service-2.json.gz
new file mode 100644
index 00000000..f2031f8b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/fis/2020-12-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/fms/2018-01-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/fms/2018-01-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..86c94704
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/fms/2018-01-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/fms/2018-01-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/fms/2018-01-01/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/fms/2018-01-01/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/fms/2018-01-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/fms/2018-01-01/paginators-1.json
new file mode 100644
index 00000000..730571d1
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/fms/2018-01-01/paginators-1.json
@@ -0,0 +1,52 @@
+{
+  "pagination": {
+    "ListComplianceStatus": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "PolicyComplianceStatusList"
+    },
+    "ListMemberAccounts": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "MemberAccounts"
+    },
+    "ListPolicies": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "PolicyList"
+    },
+    "ListAppsLists": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "AppsLists"
+    },
+    "ListProtocolsLists": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ProtocolsLists"
+    },
+    "ListThirdPartyFirewallFirewallPolicies": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ThirdPartyFirewallFirewallPolicies"
+    },
+    "ListAdminAccountsForOrganization": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "AdminAccounts"
+    },
+    "ListAdminsManagingAccount": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "AdminAccounts"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/fms/2018-01-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/fms/2018-01-01/service-2.json.gz
new file mode 100644
index 00000000..9dc8b62f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/fms/2018-01-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/forecast/2018-06-26/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/forecast/2018-06-26/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..63159a4f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/forecast/2018-06-26/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/forecast/2018-06-26/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/forecast/2018-06-26/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/forecast/2018-06-26/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/forecast/2018-06-26/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/forecast/2018-06-26/paginators-1.json
new file mode 100644
index 00000000..853dee41
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/forecast/2018-06-26/paginators-1.json
@@ -0,0 +1,88 @@
+{
+  "pagination": {
+    "ListDatasetGroups": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "DatasetGroups"
+    },
+    "ListDatasetImportJobs": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "DatasetImportJobs"
+    },
+    "ListDatasets": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Datasets"
+    },
+    "ListForecastExportJobs": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ForecastExportJobs"
+    },
+    "ListForecasts": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Forecasts"
+    },
+    "ListPredictors": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Predictors"
+    },
+    "ListPredictorBacktestExportJobs": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "PredictorBacktestExportJobs"
+    },
+    "ListExplainabilities": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Explainabilities"
+    },
+    "ListExplainabilityExports": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ExplainabilityExports"
+    },
+    "ListMonitorEvaluations": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "PredictorMonitorEvaluations"
+    },
+    "ListMonitors": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Monitors"
+    },
+    "ListWhatIfAnalyses": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "WhatIfAnalyses"
+    },
+    "ListWhatIfForecastExports": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "WhatIfForecastExports"
+    },
+    "ListWhatIfForecasts": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "WhatIfForecasts"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/forecast/2018-06-26/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/forecast/2018-06-26/service-2.json.gz
new file mode 100644
index 00000000..af0c39bb
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/forecast/2018-06-26/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/forecastquery/2018-06-26/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/forecastquery/2018-06-26/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..4f714430
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/forecastquery/2018-06-26/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/forecastquery/2018-06-26/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/forecastquery/2018-06-26/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/forecastquery/2018-06-26/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/forecastquery/2018-06-26/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/forecastquery/2018-06-26/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/forecastquery/2018-06-26/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/forecastquery/2018-06-26/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/forecastquery/2018-06-26/service-2.json.gz
new file mode 100644
index 00000000..d7c9ef50
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/forecastquery/2018-06-26/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/frauddetector/2019-11-15/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/frauddetector/2019-11-15/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..301f0978
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/frauddetector/2019-11-15/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/frauddetector/2019-11-15/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/frauddetector/2019-11-15/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/frauddetector/2019-11-15/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/frauddetector/2019-11-15/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/frauddetector/2019-11-15/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/frauddetector/2019-11-15/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/frauddetector/2019-11-15/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/frauddetector/2019-11-15/service-2.json.gz
new file mode 100644
index 00000000..e025cb85
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/frauddetector/2019-11-15/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/freetier/2023-09-07/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/freetier/2023-09-07/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..5c0c10b5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/freetier/2023-09-07/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/freetier/2023-09-07/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/freetier/2023-09-07/paginators-1.json
new file mode 100644
index 00000000..2ccdd2b7
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/freetier/2023-09-07/paginators-1.json
@@ -0,0 +1,10 @@
+{
+  "pagination": {
+    "GetFreeTierUsage": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "freeTierUsages"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/freetier/2023-09-07/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/freetier/2023-09-07/service-2.json.gz
new file mode 100644
index 00000000..61b82113
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/freetier/2023-09-07/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/fsx/2018-03-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/fsx/2018-03-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..c67dfee9
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/fsx/2018-03-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/fsx/2018-03-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/fsx/2018-03-01/examples-1.json
new file mode 100644
index 00000000..1993a235
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/fsx/2018-03-01/examples-1.json
@@ -0,0 +1,438 @@
+{
+  "version": "1.0",
+  "examples": {
+    "CopyBackup": [
+      {
+        "input": {
+          "SourceBackupId": "backup-03e3c82e0183b7b6b",
+          "SourceRegion": "us-east-2"
+        },
+        "output": {
+          "Backup": {
+            "BackupId": "backup-0a3364eded1014b28",
+            "CreationTime": 1617954808.068,
+            "FileSystem": {
+              "FileSystemId": "fs-0498eed5fe91001ec",
+              "FileSystemType": "LUSTRE",
+              "LustreConfiguration": {
+                "AutomaticBackupRetentionDays": 0,
+                "DeploymentType": "PERSISTENT_1",
+                "PerUnitStorageThroughput": 50,
+                "WeeklyMaintenanceStartTime": "1:05:00"
+              },
+              "ResourceARN": "arn:aws:fsx:us-east-1:012345678912:file-system/fs-0f5179e395f597e66",
+              "StorageCapacity": 2400,
+              "StorageType": "SSD"
+            },
+            "KmsKeyId": "arn:aws:fsx:us-east-1:012345678912:key/d1234e22-543a-12b7-a98f-e12c2b54001a",
+            "Lifecycle": "COPYING",
+            "OwnerId": "123456789012",
+            "ResourceARN": "arn:aws:fsx:us-east-1:012345678912:backup/backup-0a3364eded1014b28",
+            "Tags": [
+              {
+                "Key": "Name",
+                "Value": "MyBackup"
+              }
+            ],
+            "Type": "USER_INITIATED"
+          }
+        },
+        "comments": {
+        },
+        "description": "This operation copies an Amazon FSx backup.",
+        "id": "to-copy-a-backup-1481847318640",
+        "title": "To copy a backup"
+      }
+    ],
+    "CreateBackup": [
+      {
+        "input": {
+          "FileSystemId": "fs-0498eed5fe91001ec",
+          "Tags": [
+            {
+              "Key": "Name",
+              "Value": "MyBackup"
+            }
+          ]
+        },
+        "output": {
+          "Backup": {
+            "BackupId": "backup-03e3c82e0183b7b6b",
+            "CreationTime": "1481841524.0",
+            "FileSystem": {
+              "FileSystemId": "fs-0498eed5fe91001ec",
+              "OwnerId": "012345678912",
+              "StorageCapacity": 300,
+              "WindowsConfiguration": {
+                "ActiveDirectoryId": "d-1234abcd12",
+                "AutomaticBackupRetentionDays": 30,
+                "DailyAutomaticBackupStartTime": "05:00",
+                "WeeklyMaintenanceStartTime": "1:05:00"
+              }
+            },
+            "Lifecycle": "CREATING",
+            "ProgressPercent": 0,
+            "ResourceARN": "arn:aws:fsx:us-east-1:012345678912:backup/backup-03e3c82e0183b7b6b",
+            "Tags": [
+              {
+                "Key": "Name",
+                "Value": "MyBackup"
+              }
+            ],
+            "Type": "USER_INITIATED"
+          }
+        },
+        "comments": {
+        },
+        "description": "This operation creates a new backup.",
+        "id": "to-create-a-new-backup-1481840798597",
+        "title": "To create a new backup"
+      }
+    ],
+    "CreateFileSystem": [
+      {
+        "input": {
+          "ClientRequestToken": "a8ca07e4-61ec-4399-99f4-19853801bcd5",
+          "FileSystemType": "WINDOWS",
+          "KmsKeyId": "arn:aws:kms:us-east-1:012345678912:key/1111abcd-2222-3333-4444-55556666eeff",
+          "SecurityGroupIds": [
+            "sg-edcd9784"
+          ],
+          "StorageCapacity": 3200,
+          "StorageType": "HDD",
+          "SubnetIds": [
+            "subnet-1234abcd"
+          ],
+          "Tags": [
+            {
+              "Key": "Name",
+              "Value": "MyFileSystem"
+            }
+          ],
+          "WindowsConfiguration": {
+            "ActiveDirectoryId": "d-1234abcd12",
+            "Aliases": [
+              "accounting.corp.example.com"
+            ],
+            "AutomaticBackupRetentionDays": 30,
+            "DailyAutomaticBackupStartTime": "05:00",
+            "ThroughputCapacity": 32,
+            "WeeklyMaintenanceStartTime": "1:05:00"
+          }
+        },
+        "output": {
+          "FileSystem": {
+            "CreationTime": "1481841524.0",
+            "DNSName": "fs-0123456789abcdef0.fsx.com",
+            "FileSystemId": "fs-0123456789abcdef0",
+            "KmsKeyId": "arn:aws:kms:us-east-1:012345678912:key/1111abcd-2222-3333-4444-55556666eeff",
+            "Lifecycle": "CREATING",
+            "OwnerId": "012345678912",
+            "ResourceARN": "arn:aws:fsx:us-east-1:012345678912:file-system/fs-0123456789abcdef0",
+            "StorageCapacity": 3200,
+            "StorageType": "HDD",
+            "SubnetIds": [
+              "subnet-1234abcd"
+            ],
+            "Tags": [
+              {
+                "Key": "Name",
+                "Value": "MyFileSystem"
+              }
+            ],
+            "VpcId": "vpc-ab1234cd",
+            "WindowsConfiguration": {
+              "ActiveDirectoryId": "d-1234abcd12",
+              "Aliases": [
+                {
+                  "Lifecycle": "CREATING",
+                  "Name": "accounting.corp.example.com"
+                }
+              ],
+              "AutomaticBackupRetentionDays": 30,
+              "DailyAutomaticBackupStartTime": "05:00",
+              "ThroughputCapacity": 32,
+              "WeeklyMaintenanceStartTime": "1:05:00"
+            }
+          }
+        },
+        "comments": {
+        },
+        "description": "This operation creates a new Amazon FSx for Windows File Server file system.",
+        "id": "to-create-a-new-file-system-1481840798547",
+        "title": "To create a new file system"
+      }
+    ],
+    "CreateFileSystemFromBackup": [
+      {
+        "input": {
+          "BackupId": "backup-03e3c82e0183b7b6b",
+          "ClientRequestToken": "f4c94ed7-238d-4c46-93db-48cd62ec33b7",
+          "SecurityGroupIds": [
+            "sg-edcd9784"
+          ],
+          "SubnetIds": [
+            "subnet-1234abcd"
+          ],
+          "Tags": [
+            {
+              "Key": "Name",
+              "Value": "MyFileSystem"
+            }
+          ],
+          "WindowsConfiguration": {
+            "ThroughputCapacity": 8
+          }
+        },
+        "output": {
+          "FileSystem": {
+            "CreationTime": "1481841524.0",
+            "DNSName": "fs-0498eed5fe91001ec.fsx.com",
+            "FileSystemId": "fs-0498eed5fe91001ec",
+            "KmsKeyId": "arn:aws:kms:us-east-1:012345678912:key/0ff3ea8d-130e-4133-877f-93908b6fdbd6",
+            "Lifecycle": "CREATING",
+            "OwnerId": "012345678912",
+            "ResourceARN": "arn:aws:fsx:us-east-1:012345678912:file-system/fs-0498eed5fe91001ec",
+            "StorageCapacity": 300,
+            "SubnetIds": [
+              "subnet-1234abcd"
+            ],
+            "Tags": [
+              {
+                "Key": "Name",
+                "Value": "MyFileSystem"
+              }
+            ],
+            "VpcId": "vpc-ab1234cd",
+            "WindowsConfiguration": {
+              "ActiveDirectoryId": "d-1234abcd12",
+              "AutomaticBackupRetentionDays": 30,
+              "DailyAutomaticBackupStartTime": "05:00",
+              "ThroughputCapacity": 8,
+              "WeeklyMaintenanceStartTime": "1:05:00"
+            }
+          }
+        },
+        "comments": {
+        },
+        "description": "This operation creates a new file system from backup.",
+        "id": "to-create-a-new-file-system-from-backup-1481840798598",
+        "title": "To create a new file system from backup"
+      }
+    ],
+    "DeleteBackup": [
+      {
+        "input": {
+          "BackupId": "backup-03e3c82e0183b7b6b"
+        },
+        "output": {
+          "BackupId": "backup-03e3c82e0183b7b6b",
+          "Lifecycle": "DELETED"
+        },
+        "comments": {
+        },
+        "description": "This operation deletes an Amazon FSx file system backup.",
+        "id": "to-delete-a-file-system-1481847318399",
+        "title": "To delete a backup"
+      }
+    ],
+    "DeleteFileSystem": [
+      {
+        "input": {
+          "FileSystemId": "fs-0498eed5fe91001ec"
+        },
+        "output": {
+          "FileSystemId": "fs-0498eed5fe91001ec",
+          "Lifecycle": "DELETING"
+        },
+        "comments": {
+        },
+        "description": "This operation deletes an Amazon FSx file system.",
+        "id": "to-delete-a-file-system-1481847318348",
+        "title": "To delete a file system"
+      }
+    ],
+    "DescribeBackups": [
+      {
+        "input": {
+        },
+        "output": {
+          "Backups": [
+            {
+              "BackupId": "backup-03e3c82e0183b7b6b",
+              "CreationTime": "1481841524.0",
+              "FileSystem": {
+                "FileSystemId": "fs-0498eed5fe91001ec",
+                "OwnerId": "012345678912",
+                "StorageCapacity": 300,
+                "WindowsConfiguration": {
+                  "ActiveDirectoryId": "d-1234abcd12",
+                  "AutomaticBackupRetentionDays": 30,
+                  "DailyAutomaticBackupStartTime": "05:00",
+                  "WeeklyMaintenanceStartTime": "1:05:00"
+                }
+              },
+              "Lifecycle": "AVAILABLE",
+              "ResourceARN": "arn:aws:fsx:us-east-1:012345678912:backup/backup-03e3c82e0183b7b6b",
+              "Tags": [
+                {
+                  "Key": "Name",
+                  "Value": "MyBackup"
+                }
+              ],
+              "Type": "USER_INITIATED"
+            }
+          ]
+        },
+        "comments": {
+        },
+        "description": "This operation describes all of the Amazon FSx backups in an account.",
+        "id": "to-describe-backups-1481848448499",
+        "title": "To describe Amazon FSx backups"
+      }
+    ],
+    "DescribeFileSystems": [
+      {
+        "input": {
+        },
+        "output": {
+          "FileSystems": [
+            {
+              "CreationTime": "1481841524.0",
+              "DNSName": "fs-0498eed5fe91001ec.fsx.com",
+              "FileSystemId": "fs-0498eed5fe91001ec",
+              "KmsKeyId": "arn:aws:kms:us-east-1:012345678912:key/0ff3ea8d-130e-4133-877f-93908b6fdbd6",
+              "Lifecycle": "AVAILABLE",
+              "NetworkInterfaceIds": [
+                "eni-abcd1234"
+              ],
+              "OwnerId": "012345678912",
+              "ResourceARN": "arn:aws:fsx:us-east-1:012345678912:file-system/fs-0498eed5fe91001ec",
+              "StorageCapacity": 300,
+              "SubnetIds": [
+                "subnet-1234abcd"
+              ],
+              "Tags": [
+                {
+                  "Key": "Name",
+                  "Value": "MyFileSystem"
+                }
+              ],
+              "VpcId": "vpc-ab1234cd",
+              "WindowsConfiguration": {
+                "ActiveDirectoryId": "d-1234abcd12",
+                "AutomaticBackupRetentionDays": 30,
+                "DailyAutomaticBackupStartTime": "05:00",
+                "ThroughputCapacity": 8,
+                "WeeklyMaintenanceStartTime": "1:05:00"
+              }
+            }
+          ]
+        },
+        "comments": {
+        },
+        "description": "This operation describes all of the Amazon FSx file systems in an account.",
+        "id": "to-describe-a-file-systems-1481848448460",
+        "title": "To describe an Amazon FSx file system"
+      }
+    ],
+    "ListTagsForResource": [
+      {
+        "input": {
+          "ResourceARN": "arn:aws:fsx:us-east-1:012345678912:file-system/fs-0498eed5fe91001ec"
+        },
+        "output": {
+          "Tags": [
+            {
+              "Key": "Name",
+              "Value": "MyFileSystem"
+            }
+          ]
+        },
+        "comments": {
+        },
+        "description": "This operation lists tags for an Amazon FSx resource.",
+        "id": "to-list-tags-for-a-fsx-resource-1481847318372",
+        "title": "To list tags for a resource"
+      }
+    ],
+    "TagResource": [
+      {
+        "input": {
+          "ResourceARN": "arn:aws:fsx:us-east-1:012345678912:file-system/fs-0498eed5fe91001ec",
+          "Tags": [
+            {
+              "Key": "Name",
+              "Value": "MyFileSystem"
+            }
+          ]
+        },
+        "comments": {
+        },
+        "description": "This operation tags an Amazon FSx resource.",
+        "id": "to-tag-a-fsx-resource-1481847318371",
+        "title": "To tag a resource"
+      }
+    ],
+    "UntagResource": [
+      {
+        "input": {
+          "ResourceARN": "arn:aws:fsx:us-east-1:012345678912:file-system/fs-0498eed5fe91001ec",
+          "TagKeys": [
+            "Name"
+          ]
+        },
+        "comments": {
+        },
+        "description": "This operation untags an Amazon FSx resource.",
+        "id": "to-untag-a-fsx-resource-1481847318373",
+        "title": "To untag a resource"
+      }
+    ],
+    "UpdateFileSystem": [
+      {
+        "input": {
+          "FileSystemId": "fs-0498eed5fe91001ec",
+          "WindowsConfiguration": {
+            "AutomaticBackupRetentionDays": 10,
+            "DailyAutomaticBackupStartTime": "06:00",
+            "WeeklyMaintenanceStartTime": "3:06:00"
+          }
+        },
+        "output": {
+          "FileSystem": {
+            "CreationTime": "1481841524.0",
+            "DNSName": "fs-0498eed5fe91001ec.fsx.com",
+            "FileSystemId": "fs-0498eed5fe91001ec",
+            "KmsKeyId": "arn:aws:kms:us-east-1:012345678912:key/0ff3ea8d-130e-4133-877f-93908b6fdbd6",
+            "Lifecycle": "AVAILABLE",
+            "OwnerId": "012345678912",
+            "ResourceARN": "arn:aws:fsx:us-east-1:012345678912:file-system/fs-0498eed5fe91001ec",
+            "StorageCapacity": 300,
+            "SubnetIds": [
+              "subnet-1234abcd"
+            ],
+            "Tags": [
+              {
+                "Key": "Name",
+                "Value": "MyFileSystem"
+              }
+            ],
+            "VpcId": "vpc-ab1234cd",
+            "WindowsConfiguration": {
+              "AutomaticBackupRetentionDays": 10,
+              "DailyAutomaticBackupStartTime": "06:00",
+              "ThroughputCapacity": 8,
+              "WeeklyMaintenanceStartTime": "3:06:00"
+            }
+          }
+        },
+        "comments": {
+        },
+        "description": "This operation updates an existing file system.",
+        "id": "to-update-a-file-system-1481840798595",
+        "title": "To update an existing file system"
+      }
+    ]
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/fsx/2018-03-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/fsx/2018-03-01/paginators-1.json
new file mode 100644
index 00000000..c9536b15
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/fsx/2018-03-01/paginators-1.json
@@ -0,0 +1,34 @@
+{
+  "pagination": {
+    "DescribeBackups": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Backups"
+    },
+    "DescribeFileSystems": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "FileSystems"
+    },
+    "ListTagsForResource": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Tags"
+    },
+    "DescribeStorageVirtualMachines": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "StorageVirtualMachines"
+    },
+    "DescribeVolumes": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Volumes"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/fsx/2018-03-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/fsx/2018-03-01/service-2.json.gz
new file mode 100644
index 00000000..136026c6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/fsx/2018-03-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/gamelift/2015-10-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/gamelift/2015-10-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..0856ac68
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/gamelift/2015-10-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/gamelift/2015-10-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/gamelift/2015-10-01/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/gamelift/2015-10-01/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/gamelift/2015-10-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/gamelift/2015-10-01/paginators-1.json
new file mode 100644
index 00000000..a5a91837
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/gamelift/2015-10-01/paginators-1.json
@@ -0,0 +1,160 @@
+{
+  "pagination": {
+    "DescribeFleetAttributes": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "FleetAttributes"
+    },
+    "DescribeFleetCapacity": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "FleetCapacity"
+    },
+    "DescribeFleetEvents": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "Events"
+    },
+    "DescribeFleetUtilization": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "FleetUtilization"
+    },
+    "DescribeGameSessionDetails": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "GameSessionDetails"
+    },
+    "DescribeGameSessionQueues": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "GameSessionQueues"
+    },
+    "DescribeGameSessions": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "GameSessions"
+    },
+    "DescribeInstances": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "Instances"
+    },
+    "DescribeMatchmakingConfigurations": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "Configurations"
+    },
+    "DescribeMatchmakingRuleSets": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "RuleSets"
+    },
+    "DescribePlayerSessions": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "PlayerSessions"
+    },
+    "DescribeScalingPolicies": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "ScalingPolicies"
+    },
+    "ListAliases": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "Aliases"
+    },
+    "ListBuilds": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "Builds"
+    },
+    "ListFleets": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "FleetIds"
+    },
+    "SearchGameSessions": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "GameSessions"
+    },
+    "DescribeGameServerInstances": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "Limit",
+      "result_key": "GameServerInstances"
+    },
+    "ListGameServerGroups": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "Limit",
+      "result_key": "GameServerGroups"
+    },
+    "ListGameServers": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "Limit",
+      "result_key": "GameServers"
+    },
+    "ListScripts": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "Limit",
+      "result_key": "Scripts"
+    },
+    "ListCompute": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "Limit",
+      "result_key": "ComputeList"
+    },
+    "ListLocations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "Limit",
+      "result_key": "Locations"
+    },
+    "ListContainerGroupDefinitions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "Limit",
+      "result_key": "ContainerGroupDefinitions"
+    },
+    "ListContainerFleets": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "Limit",
+      "result_key": "ContainerFleets"
+    },
+    "ListContainerGroupDefinitionVersions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "Limit",
+      "result_key": "ContainerGroupDefinitions"
+    },
+    "ListFleetDeployments": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "Limit",
+      "result_key": "FleetDeployments"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/gamelift/2015-10-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/gamelift/2015-10-01/service-2.json.gz
new file mode 100644
index 00000000..d221a5bd
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/gamelift/2015-10-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/gameliftstreams/2018-05-10/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/gameliftstreams/2018-05-10/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..794e19d0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/gameliftstreams/2018-05-10/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/gameliftstreams/2018-05-10/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/gameliftstreams/2018-05-10/paginators-1.json
new file mode 100644
index 00000000..a396ef46
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/gameliftstreams/2018-05-10/paginators-1.json
@@ -0,0 +1,28 @@
+{
+  "pagination": {
+    "ListApplications": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Items"
+    },
+    "ListStreamGroups": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Items"
+    },
+    "ListStreamSessions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Items"
+    },
+    "ListStreamSessionsByAccount": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Items"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/gameliftstreams/2018-05-10/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/gameliftstreams/2018-05-10/service-2.json.gz
new file mode 100644
index 00000000..9937ade0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/gameliftstreams/2018-05-10/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/gameliftstreams/2018-05-10/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/gameliftstreams/2018-05-10/waiters-2.json
new file mode 100644
index 00000000..2c064b00
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/gameliftstreams/2018-05-10/waiters-2.json
@@ -0,0 +1,88 @@
+{
+  "version" : 2,
+  "waiters" : {
+    "ApplicationDeleted" : {
+      "description" : "Waits until an application is deleted",
+      "delay" : 2,
+      "maxAttempts" : 60,
+      "operation" : "GetApplication",
+      "acceptors" : [ {
+        "matcher" : "error",
+        "state" : "success",
+        "expected" : "ResourceNotFoundException"
+      } ]
+    },
+    "ApplicationReady" : {
+      "description" : "Waits until an application is ready",
+      "delay" : 2,
+      "maxAttempts" : 60,
+      "operation" : "GetApplication",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "Status",
+        "state" : "success",
+        "expected" : "READY"
+      }, {
+        "matcher" : "path",
+        "argument" : "Status",
+        "state" : "failure",
+        "expected" : "ERROR"
+      } ]
+    },
+    "StreamGroupActive" : {
+      "description" : "Waits until a stream group is active",
+      "delay" : 30,
+      "maxAttempts" : 120,
+      "operation" : "GetStreamGroup",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "Status",
+        "state" : "success",
+        "expected" : "ACTIVE"
+      }, {
+        "matcher" : "path",
+        "argument" : "Status",
+        "state" : "failure",
+        "expected" : "ERROR"
+      }, {
+        "matcher" : "path",
+        "argument" : "Status",
+        "state" : "failure",
+        "expected" : "ACTIVE_WITH_ERRORS"
+      }, {
+        "matcher" : "path",
+        "argument" : "Status",
+        "state" : "failure",
+        "expected" : "DELETING"
+      } ]
+    },
+    "StreamGroupDeleted" : {
+      "description" : "Waits until a stream group is deleted",
+      "delay" : 30,
+      "maxAttempts" : 60,
+      "operation" : "GetStreamGroup",
+      "acceptors" : [ {
+        "matcher" : "error",
+        "state" : "success",
+        "expected" : "ResourceNotFoundException"
+      } ]
+    },
+    "StreamSessionActive" : {
+      "description" : "Waits until a stream session is active",
+      "delay" : 2,
+      "maxAttempts" : 60,
+      "operation" : "GetStreamSession",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "Status",
+        "state" : "success",
+        "expected" : "ACTIVE"
+      }, {
+        "matcher" : "path",
+        "argument" : "Status",
+        "state" : "failure",
+        "expected" : "ERROR"
+      } ]
+    }
+  }
+}
\ No newline at end of file
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/geo-maps/2020-11-19/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/geo-maps/2020-11-19/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..9e27adb1
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/geo-maps/2020-11-19/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/geo-maps/2020-11-19/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/geo-maps/2020-11-19/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/geo-maps/2020-11-19/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/geo-maps/2020-11-19/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/geo-maps/2020-11-19/service-2.json.gz
new file mode 100644
index 00000000..59edc056
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/geo-maps/2020-11-19/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/geo-places/2020-11-19/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/geo-places/2020-11-19/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..4fe05d5f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/geo-places/2020-11-19/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/geo-places/2020-11-19/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/geo-places/2020-11-19/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/geo-places/2020-11-19/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/geo-places/2020-11-19/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/geo-places/2020-11-19/service-2.json.gz
new file mode 100644
index 00000000..1cfb9233
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/geo-places/2020-11-19/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/geo-routes/2020-11-19/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/geo-routes/2020-11-19/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..07f52a5d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/geo-routes/2020-11-19/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/geo-routes/2020-11-19/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/geo-routes/2020-11-19/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/geo-routes/2020-11-19/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/geo-routes/2020-11-19/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/geo-routes/2020-11-19/service-2.json.gz
new file mode 100644
index 00000000..6c845b0e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/geo-routes/2020-11-19/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/glacier/2012-06-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/glacier/2012-06-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..1a5e9af4
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/glacier/2012-06-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/glacier/2012-06-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/glacier/2012-06-01/examples-1.json
new file mode 100644
index 00000000..7ecea259
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/glacier/2012-06-01/examples-1.json
@@ -0,0 +1,806 @@
+{
+  "version": "1.0",
+  "examples": {
+    "AbortMultipartUpload": [
+      {
+        "input": {
+          "accountId": "-",
+          "uploadId": "19gaRezEXAMPLES6Ry5YYdqthHOC_kGRCT03L9yetr220UmPtBYKk-OssZtLqyFu7sY1_lR7vgFuJV6NtcV5zpsJ",
+          "vaultName": "my-vault"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The example deletes an in-progress multipart upload to a vault named my-vault:",
+        "id": "f3d907f6-e71c-420c-8f71-502346a2c48a",
+        "title": "To abort a multipart upload identified by the upload ID"
+      }
+    ],
+    "AbortVaultLock": [
+      {
+        "input": {
+          "accountId": "-",
+          "vaultName": "examplevault"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The example aborts the vault locking process if the vault lock is not in the Locked state for the vault named examplevault.",
+        "id": "to-abort-a-vault-lock-1481839357947",
+        "title": "To abort a vault lock"
+      }
+    ],
+    "AddTagsToVault": [
+      {
+        "input": {
+          "Tags": {
+            "examplekey1": "examplevalue1",
+            "examplekey2": "examplevalue2"
+          },
+          "accountId": "-",
+          "vaultName": "my-vault"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The example adds two tags to a my-vault.",
+        "id": "add-tags-to-vault-post-tags-add-1481663457694",
+        "title": "To add tags to a vault"
+      }
+    ],
+    "CompleteMultipartUpload": [
+      {
+        "input": {
+          "accountId": "-",
+          "archiveSize": "3145728",
+          "checksum": "9628195fcdbcbbe76cdde456d4646fa7de5f219fb39823836d81f0cc0e18aa67",
+          "uploadId": "19gaRezEXAMPLES6Ry5YYdqthHOC_kGRCT03L9yetr220UmPtBYKk-OssZtLqyFu7sY1_lR7vgFuJV6NtcV5zpsJ",
+          "vaultName": "my-vault"
+        },
+        "output": {
+          "archiveId": "NkbByEejwEggmBz2fTHgJrg0XBoDfjP4q6iu87-TjhqG6eGoOY9Z8i1_AUyUsuhPAdTqLHy8pTl5nfCFJmDl2yEZONi5L26Omw12vcs01MNGntHEQL8MBfGlqrEXAMPLEArchiveId",
+          "checksum": "9628195fcdbcbbe76cdde456d4646fa7de5f219fb39823836d81f0cc0e18aa67",
+          "location": "/111122223333/vaults/my-vault/archives/NkbByEejwEggmBz2fTHgJrg0XBoDfjP4q6iu87-TjhqG6eGoOY9Z8i1_AUyUsuhPAdTqLHy8pTl5nfCFJmDl2yEZONi5L26Omw12vcs01MNGntHEQL8MBfGlqrEXAMPLEArchiveId"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The example completes a multipart upload for a 3 MiB archive.",
+        "id": "272aa0b8-e44c-4a64-add2-ad905a37984d",
+        "title": "To complete a multipart upload"
+      }
+    ],
+    "CompleteVaultLock": [
+      {
+        "input": {
+          "accountId": "-",
+          "lockId": "AE863rKkWZU53SLW5be4DUcW",
+          "vaultName": "example-vault"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The example completes the vault locking process by transitioning the vault lock from the InProgress state to the Locked state.",
+        "id": "to-complete-a-vault-lock-1481839721312",
+        "title": "To complete a vault lock"
+      }
+    ],
+    "CreateVault": [
+      {
+        "input": {
+          "accountId": "-",
+          "vaultName": "my-vault"
+        },
+        "output": {
+          "location": "/111122223333/vaults/my-vault"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example creates a new vault named my-vault.",
+        "id": "1dc0313d-ace1-4e6c-9d13-1ec7813b14b7",
+        "title": "To create a new vault"
+      }
+    ],
+    "DeleteArchive": [
+      {
+        "input": {
+          "accountId": "-",
+          "archiveId": "NkbByEejwEggmBz2fTHgJrg0XBoDfjP4q6iu87-TjhqG6eGoOY9Z8i1_AUyUsuhPAdTqLHy8pTl5nfCFJmDl2yEZONi5L26Omw12vcs01MNGntHEQL8MBfGlqrEXAMPLEArchiveId",
+          "vaultName": "examplevault"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The example deletes the archive specified by the archive ID.",
+        "id": "delete-archive-1481667809463",
+        "title": "To delete an archive"
+      }
+    ],
+    "DeleteVault": [
+      {
+        "input": {
+          "accountId": "-",
+          "vaultName": "my-vault"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The example deletes a vault named my-vault:",
+        "id": "7f7f000b-4bdb-40d2-91e6-7c902f60f60f",
+        "title": "To delete a vault"
+      }
+    ],
+    "DeleteVaultAccessPolicy": [
+      {
+        "input": {
+          "accountId": "-",
+          "vaultName": "examplevault"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The example deletes the access policy associated with the vault named examplevault.",
+        "id": "to-delete-the-vault-access-policy-1481840424677",
+        "title": "To delete the vault access policy"
+      }
+    ],
+    "DeleteVaultNotifications": [
+      {
+        "input": {
+          "accountId": "-",
+          "vaultName": "examplevault"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The example deletes the notification configuration set for the vault named examplevault.",
+        "id": "to-delete-the-notification-configuration-set-for-a-vault-1481840646090",
+        "title": "To delete the notification configuration set for a vault"
+      }
+    ],
+    "DescribeJob": [
+      {
+        "input": {
+          "accountId": "-",
+          "jobId": "zbxcm3Z_3z5UkoroF7SuZKrxgGoDc3RloGduS7Eg-RO47Yc6FxsdGBgf_Q2DK5Ejh18CnTS5XW4_XqlNHS61dsO4Cn",
+          "vaultName": "my-vault"
+        },
+        "output": {
+          "Action": "InventoryRetrieval",
+          "Completed": false,
+          "CreationDate": "2015-07-17T20:23:41.616Z",
+          "InventoryRetrievalParameters": {
+            "Format": "JSON"
+          },
+          "JobId": "zbxcm3Z_3z5UkoroF7SuZKrxgGoDc3RloGduS7Eg-RO47Yc6FxsdGBgf_Q2DK5Ejh18CnTS5XW4_XqlNHS61dsO4CnMW",
+          "StatusCode": "InProgress",
+          "VaultARN": "arn:aws:glacier:us-west-2:0123456789012:vaults/my-vault"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The example returns information about the previously initiated job specified by the job ID.",
+        "id": "to-get-information-about-a-job-you-previously-initiated-1481840928592",
+        "title": "To get information about a previously initiated job"
+      }
+    ],
+    "DescribeVault": [
+      {
+        "input": {
+          "accountId": "-",
+          "vaultName": "my-vault"
+        },
+        "output": {
+          "CreationDate": "2016-09-23T19:27:18.665Z",
+          "NumberOfArchives": 0,
+          "SizeInBytes": 0,
+          "VaultARN": "arn:aws:glacier:us-west-2:111122223333:vaults/my-vault",
+          "VaultName": "my-vault"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The example retrieves data about a vault named my-vault.",
+        "id": "3c1c6e9d-f5a2-427a-aa6a-f439eacfc05f",
+        "title": "To retrieve information about a vault"
+      }
+    ],
+    "GetDataRetrievalPolicy": [
+      {
+        "input": {
+          "accountId": "-"
+        },
+        "output": {
+          "Policy": {
+            "Rules": [
+              {
+                "BytesPerHour": 10737418240,
+                "Strategy": "BytesPerHour"
+              }
+            ]
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The example returns the current data retrieval policy for the account.",
+        "id": "to-get-the-current-data-retrieval-policy-for-the-account-1481851580439",
+        "title": "To get the current data retrieval policy for an account"
+      }
+    ],
+    "GetJobOutput": [
+      {
+        "input": {
+          "accountId": "-",
+          "jobId": "zbxcm3Z_3z5UkoroF7SuZKrxgGoDc3RloGduS7Eg-RO47Yc6FxsdGBgf_Q2DK5Ejh18CnTS5XW4_XqlNHS61dsO4CnMW",
+          "range": "",
+          "vaultName": "my-vaul"
+        },
+        "output": {
+          "acceptRanges": "bytes",
+          "body": "inventory-data",
+          "contentType": "application/json",
+          "status": 200
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The example downloads the output of a previously initiated inventory retrieval job that is identified by the job ID.",
+        "id": "to-get-the-output-of-a-previously-initiated-job-1481848550859",
+        "title": "To get the output of a previously initiated job"
+      }
+    ],
+    "GetVaultAccessPolicy": [
+      {
+        "input": {
+          "accountId": "-",
+          "vaultName": "example-vault"
+        },
+        "output": {
+          "policy": {
+            "Policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"Define-owner-access-rights\",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::999999999999:root\"},\"Action\":\"glacier:DeleteArchive\",\"Resource\":\"arn:aws:glacier:us-west-2:999999999999:vaults/examplevault\"}]}"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The example retrieves the access-policy set on the vault named example-vault.",
+        "id": "to--get-the-access-policy-set-on-the-vault-1481936004590",
+        "title": "To  get the access-policy set on the vault"
+      }
+    ],
+    "GetVaultLock": [
+      {
+        "input": {
+          "accountId": "-",
+          "vaultName": "examplevault"
+        },
+        "output": {
+          "CreationDate": "exampledate",
+          "ExpirationDate": "exampledate",
+          "Policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"Define-vault-lock\",\"Effect\":\"Deny\",\"Principal\":{\"AWS\":\"arn:aws:iam::999999999999:root\"},\"Action\":\"glacier:DeleteArchive\",\"Resource\":\"arn:aws:glacier:us-west-2:999999999999:vaults/examplevault\",\"Condition\":{\"NumericLessThanEquals\":{\"glacier:ArchiveAgeinDays\":\"365\"}}}]}",
+          "State": "InProgress"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The example retrieves the attributes from the lock-policy subresource set on the vault named examplevault.",
+        "id": "to-retrieve-vault-lock-policy-related-attributes-that-are-set-on-a-vault-1481851363097",
+        "title": "To retrieve vault lock-policy related attributes that are set on a vault"
+      }
+    ],
+    "GetVaultNotifications": [
+      {
+        "input": {
+          "accountId": "-",
+          "vaultName": "my-vault"
+        },
+        "output": {
+          "vaultNotificationConfig": {
+            "Events": [
+              "InventoryRetrievalCompleted",
+              "ArchiveRetrievalCompleted"
+            ],
+            "SNSTopic": "arn:aws:sns:us-west-2:0123456789012:my-vault"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The example retrieves the notification-configuration for the vault named my-vault.",
+        "id": "to-get-the-notification-configuration-for-the-specified-vault-1481918746677",
+        "title": "To get the notification-configuration for the specified vault"
+      }
+    ],
+    "InitiateJob": [
+      {
+        "input": {
+          "accountId": "-",
+          "jobParameters": {
+            "Description": "My inventory job",
+            "Format": "CSV",
+            "SNSTopic": "arn:aws:sns:us-west-2:111111111111:Glacier-InventoryRetrieval-topic-Example",
+            "Type": "inventory-retrieval"
+          },
+          "vaultName": "examplevault"
+        },
+        "output": {
+          "jobId": " HkF9p6o7yjhFx-K3CGl6fuSm6VzW9T7esGQfco8nUXVYwS0jlb5gq1JZ55yHgt5vP54ZShjoQzQVVh7vEXAMPLEjobID",
+          "location": "/111122223333/vaults/examplevault/jobs/HkF9p6o7yjhFx-K3CGl6fuSm6VzW9T7esGQfco8nUXVYwS0jlb5gq1JZ55yHgt5vP54ZShjoQzQVVh7vEXAMPLEjobID"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The example initiates an inventory-retrieval job for the vault named examplevault.",
+        "id": "to-initiate-an-inventory-retrieval-job-1482186883826",
+        "title": "To initiate an inventory-retrieval job"
+      }
+    ],
+    "InitiateMultipartUpload": [
+      {
+        "input": {
+          "accountId": "-",
+          "partSize": "1048576",
+          "vaultName": "my-vault"
+        },
+        "output": {
+          "location": "/111122223333/vaults/my-vault/multipart-uploads/19gaRezEXAMPLES6Ry5YYdqthHOC_kGRCT03L9yetr220UmPtBYKk-OssZtLqyFu7sY1_lR7vgFuJV6NtcV5zpsJ",
+          "uploadId": "19gaRezEXAMPLES6Ry5YYdqthHOC_kGRCT03L9yetr220UmPtBYKk-OssZtLqyFu7sY1_lR7vgFuJV6NtcV5zpsJ"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The example initiates a multipart upload to a vault named my-vault with a part size of 1 MiB (1024 x 1024 bytes) per file.",
+        "id": "72f2db19-3d93-4c74-b2ed-38703baacf49",
+        "title": "To initiate a multipart upload"
+      }
+    ],
+    "InitiateVaultLock": [
+      {
+        "input": {
+          "accountId": "-",
+          "policy": {
+            "Policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"Define-vault-lock\",\"Effect\":\"Deny\",\"Principal\":{\"AWS\":\"arn:aws:iam::999999999999:root\"},\"Action\":\"glacier:DeleteArchive\",\"Resource\":\"arn:aws:glacier:us-west-2:999999999999:vaults/examplevault\",\"Condition\":{\"NumericLessThanEquals\":{\"glacier:ArchiveAgeinDays\":\"365\"}}}]}"
+          },
+          "vaultName": "my-vault"
+        },
+        "output": {
+          "lockId": "AE863rKkWZU53SLW5be4DUcW"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The example initiates the vault locking process for the vault named my-vault.",
+        "id": "to-initiate-the-vault-locking-process-1481919693394",
+        "title": "To initiate the vault locking process"
+      }
+    ],
+    "ListJobs": [
+      {
+        "input": {
+          "accountId": "-",
+          "vaultName": "my-vault"
+        },
+        "output": {
+          "JobList": [
+            {
+              "Action": "ArchiveRetrieval",
+              "ArchiveId": "kKB7ymWJVpPSwhGP6ycSOAekp9ZYe_--zM_mw6k76ZFGEIWQX-ybtRDvc2VkPSDtfKmQrj0IRQLSGsNuDp-AJVlu2ccmDSyDUmZwKbwbpAdGATGDiB3hHO0bjbGehXTcApVud_wyDw",
+              "ArchiveSHA256TreeHash": "9628195fcdbcbbe76cdde932d4646fa7de5f219fb39823836d81f0cc0e18aa67",
+              "ArchiveSizeInBytes": 3145728,
+              "Completed": false,
+              "CreationDate": "2015-07-17T21:16:13.840Z",
+              "JobDescription": "Retrieve archive on 2015-07-17",
+              "JobId": "l7IL5-EkXyEY9Ws95fClzIbk2O5uLYaFdAYOi-azsX_Z8V6NH4yERHzars8wTKYQMX6nBDI9cMNHzyZJO59-8N9aHWav",
+              "RetrievalByteRange": "0-3145727",
+              "SHA256TreeHash": "9628195fcdbcbbe76cdde932d4646fa7de5f219fb39823836d81f0cc0e18aa67",
+              "SNSTopic": "arn:aws:sns:us-west-2:0123456789012:my-vault",
+              "StatusCode": "InProgress",
+              "VaultARN": "arn:aws:glacier:us-west-2:0123456789012:vaults/my-vault"
+            },
+            {
+              "Action": "InventoryRetrieval",
+              "Completed": false,
+              "CreationDate": "2015-07-17T20:23:41.616Z",
+              "InventoryRetrievalParameters": {
+                "Format": "JSON"
+              },
+              "JobId": "zbxcm3Z_3z5UkoroF7SuZKrxgGoDc3RloGduS7Eg-RO47Yc6FxsdGBgf_Q2DK5Ejh18CnTS5XW4_XqlNHS61dsO4CnMW",
+              "StatusCode": "InProgress",
+              "VaultARN": "arn:aws:glacier:us-west-2:0123456789012:vaults/my-vault"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The example lists jobs for the vault named my-vault.",
+        "id": "to-list-jobs-for-a-vault-1481920530537",
+        "title": "To list jobs for a vault"
+      }
+    ],
+    "ListMultipartUploads": [
+      {
+        "input": {
+          "accountId": "-",
+          "vaultName": "examplevault"
+        },
+        "output": {
+          "Marker": "null",
+          "UploadsList": [
+            {
+              "ArchiveDescription": "archive 1",
+              "CreationDate": "2012-03-19T23:20:59.130Z",
+              "MultipartUploadId": "xsQdFIRsfJr20CW2AbZBKpRZAFTZSJIMtL2hYf8mvp8dM0m4RUzlaqoEye6g3h3ecqB_zqwB7zLDMeSWhwo65re4C4Ev",
+              "PartSizeInBytes": 4194304,
+              "VaultARN": "arn:aws:glacier:us-west-2:012345678901:vaults/examplevault"
+            },
+            {
+              "ArchiveDescription": "archive 2",
+              "CreationDate": "2012-04-01T15:00:00.000Z",
+              "MultipartUploadId": "nPyGOnyFcx67qqX7E-0tSGiRi88hHMOwOxR-_jNyM6RjVMFfV29lFqZ3rNsSaWBugg6OP92pRtufeHdQH7ClIpSF6uJc",
+              "PartSizeInBytes": 4194304,
+              "VaultARN": "arn:aws:glacier:us-west-2:012345678901:vaults/examplevault"
+            },
+            {
+              "ArchiveDescription": "archive 3",
+              "CreationDate": "2012-03-20T17:03:43.221Z",
+              "MultipartUploadId": "qt-RBst_7yO8gVIonIBsAxr2t-db0pE4s8MNeGjKjGdNpuU-cdSAcqG62guwV9r5jh5mLyFPzFEitTpNE7iQfHiu1XoV",
+              "PartSizeInBytes": 4194304,
+              "VaultARN": "arn:aws:glacier:us-west-2:012345678901:vaults/examplevault"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The example lists all the in-progress multipart uploads for the vault named examplevault.",
+        "id": "to-list-all-the-in-progress-multipart-uploads-for-a-vault-1481935250590",
+        "title": "To list all the in-progress multipart uploads for a vault"
+      }
+    ],
+    "ListParts": [
+      {
+        "input": {
+          "accountId": "-",
+          "uploadId": "OW2fM5iVylEpFEMM9_HpKowRapC3vn5sSL39_396UW9zLFUWVrnRHaPjUJddQ5OxSHVXjYtrN47NBZ-khxOjyEXAMPLE",
+          "vaultName": "examplevault"
+        },
+        "output": {
+          "ArchiveDescription": "archive description",
+          "CreationDate": "2012-03-20T17:03:43.221Z",
+          "Marker": "null",
+          "MultipartUploadId": "OW2fM5iVylEpFEMM9_HpKowRapC3vn5sSL39_396UW9zLFUWVrnRHaPjUJddQ5OxSHVXjYtrN47NBZ-khxOjyEXAMPLE",
+          "PartSizeInBytes": 4194304,
+          "Parts": [
+            {
+              "RangeInBytes": "0-4194303",
+              "SHA256TreeHash": "01d34dabf7be316472c93b1ef80721f5d4"
+            },
+            {
+              "RangeInBytes": "4194304-8388607",
+              "SHA256TreeHash": "0195875365afda349fc21c84c099987164"
+            }
+          ],
+          "VaultARN": "arn:aws:glacier:us-west-2:012345678901:vaults/demo1-vault"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The example lists all the parts of a multipart upload.",
+        "id": "to-list-the-parts-of-an-archive-that-have-been-uploaded-in-a-multipart-upload-1481921767590",
+        "title": "To list the parts of an archive that have been uploaded in a multipart upload"
+      }
+    ],
+    "ListProvisionedCapacity": [
+      {
+        "input": {
+          "accountId": "-"
+        },
+        "output": {
+          "ProvisionedCapacityList": [
+            {
+              "CapacityId": "zSaq7NzHFQDANTfQkDen4V7z",
+              "ExpirationDate": "2016-12-12T00:00:00.000Z",
+              "StartDate": "2016-11-11T20:11:51.095Z"
+            },
+            {
+              "CapacityId": "yXaq7NzHFQNADTfQkDen4V7z",
+              "ExpirationDate": "2017-01-15T00:00:00.000Z",
+              "StartDate": "2016-12-13T20:11:51.095Z"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The example lists the provisioned capacity units for an account.",
+        "id": "to-list-the-provisioned-capacity-units-for-an-account-1481923656130",
+        "title": "To list the provisioned capacity units for an account"
+      }
+    ],
+    "ListTagsForVault": [
+      {
+        "input": {
+          "accountId": "-",
+          "vaultName": "examplevault"
+        },
+        "output": {
+          "Tags": {
+            "date": "july2015",
+            "id": "1234"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The example lists all the tags attached to the vault examplevault.",
+        "id": "list-tags-for-vault-1481755839720",
+        "title": "To list the tags for a vault"
+      }
+    ],
+    "ListVaults": [
+      {
+        "input": {
+          "accountId": "-",
+          "limit": "",
+          "marker": ""
+        },
+        "output": {
+          "VaultList": [
+            {
+              "CreationDate": "2015-04-06T21:23:45.708Z",
+              "LastInventoryDate": "2015-04-07T00:26:19.028Z",
+              "NumberOfArchives": 1,
+              "SizeInBytes": 3178496,
+              "VaultARN": "arn:aws:glacier:us-west-2:0123456789012:vaults/my-vault",
+              "VaultName": "my-vault"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The example lists all vaults owned by the specified AWS account.",
+        "id": "list-vaults-1481753006990",
+        "title": "To list all vaults owned by the calling user's account"
+      }
+    ],
+    "PurchaseProvisionedCapacity": [
+      {
+        "input": {
+          "accountId": "-"
+        },
+        "output": {
+          "capacityId": "zSaq7NzHFQDANTfQkDen4V7z"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The example purchases provisioned capacity unit for an AWS account.",
+        "id": "to-purchases-a-provisioned-capacity-unit-for-an-aws-account-1481927446662",
+        "title": "To purchases a provisioned capacity unit for an AWS account"
+      }
+    ],
+    "RemoveTagsFromVault": [
+      {
+        "input": {
+          "TagKeys": [
+            "examplekey1",
+            "examplekey2"
+          ],
+          "accountId": "-",
+          "vaultName": "examplevault"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The example removes two tags from the vault named examplevault.",
+        "id": "remove-tags-from-vault-1481754998801",
+        "title": "To remove tags from a vault"
+      }
+    ],
+    "SetDataRetrievalPolicy": [
+      {
+        "input": {
+          "Policy": {
+            "Rules": [
+              {
+                "BytesPerHour": 10737418240,
+                "Strategy": "BytesPerHour"
+              }
+            ]
+          },
+          "accountId": "-"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The example sets and then enacts a data retrieval policy.",
+        "id": "to-set-and-then-enact-a-data-retrieval-policy--1481928352408",
+        "title": "To set and then enact a data retrieval policy "
+      }
+    ],
+    "SetVaultAccessPolicy": [
+      {
+        "input": {
+          "accountId": "-",
+          "policy": {
+            "Policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"Define-owner-access-rights\",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::999999999999:root\"},\"Action\":\"glacier:DeleteArchive\",\"Resource\":\"arn:aws:glacier:us-west-2:999999999999:vaults/examplevault\"}]}"
+          },
+          "vaultName": "examplevault"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The example configures an access policy for the vault named examplevault.",
+        "id": "to--set-the-access-policy-on-a-vault-1482185872517",
+        "title": "To set the access-policy on a vault"
+      }
+    ],
+    "SetVaultNotifications": [
+      {
+        "input": {
+          "accountId": "-",
+          "vaultName": "examplevault",
+          "vaultNotificationConfig": {
+            "Events": [
+              "ArchiveRetrievalCompleted",
+              "InventoryRetrievalCompleted"
+            ],
+            "SNSTopic": "arn:aws:sns:us-west-2:012345678901:mytopic"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The example sets the examplevault notification configuration.",
+        "id": "to-configure-a-vault-to-post-a-message-to-an-amazon-simple-notification-service-amazon-sns-topic-when-jobs-complete-1482186397475",
+        "title": "To configure a vault to post a message to an Amazon SNS topic when jobs complete"
+      }
+    ],
+    "UploadArchive": [
+      {
+        "input": {
+          "accountId": "-",
+          "archiveDescription": "",
+          "body": "example-data-to-upload",
+          "checksum": "",
+          "vaultName": "my-vault"
+        },
+        "output": {
+          "archiveId": "kKB7ymWJVpPSwhGP6ycSOAekp9ZYe_--zM_mw6k76ZFGEIWQX-ybtRDvc2VkPSDtfKmQrj0IRQLSGsNuDp-AJVlu2ccmDSyDUmZwKbwbpAdGATGDiB3hHO0bjbGehXTcApVud_wyDw",
+          "checksum": "969fb39823836d81f0cc028195fcdbcbbe76cdde932d4646fa7de5f21e18aa67",
+          "location": "/0123456789012/vaults/my-vault/archives/kKB7ymWJVpPSwhGP6ycSOAekp9ZYe_--zM_mw6k76ZFGEIWQX-ybtRDvc2VkPSDtfKmQrj0IRQLSGsNuDp-AJVlu2ccmDSyDUmZwKbwbpAdGATGDiB3hHO0bjbGehXTcApVud_wyDw"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The example adds an archive to a vault.",
+        "id": "upload-archive-1481668510494",
+        "title": "To upload an archive"
+      }
+    ],
+    "UploadMultipartPart": [
+      {
+        "input": {
+          "accountId": "-",
+          "body": "part1",
+          "checksum": "c06f7cd4baacb087002a99a5f48bf953",
+          "range": "bytes 0-1048575/*",
+          "uploadId": "19gaRezEXAMPLES6Ry5YYdqthHOC_kGRCT03L9yetr220UmPtBYKk-OssZtLqyFu7sY1_lR7vgFuJV6NtcV5zpsJ",
+          "vaultName": "examplevault"
+        },
+        "output": {
+          "checksum": "c06f7cd4baacb087002a99a5f48bf953"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The example uploads the first 1 MiB (1024 x 1024 bytes) part of an archive.",
+        "id": "to-upload-the-first-part-of-an-archive-1481835899519",
+        "title": "To upload the first part of an archive"
+      }
+    ]
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/glacier/2012-06-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/glacier/2012-06-01/paginators-1.json
new file mode 100644
index 00000000..69691437
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/glacier/2012-06-01/paginators-1.json
@@ -0,0 +1,28 @@
+{
+  "pagination": {
+    "ListJobs": {
+      "input_token": "marker",
+      "output_token": "Marker",
+      "limit_key": "limit",
+      "result_key": "JobList"
+    },
+    "ListMultipartUploads": {
+      "input_token": "marker",
+      "output_token": "Marker",
+      "limit_key": "limit",
+      "result_key": "UploadsList"
+    },
+    "ListParts": {
+      "input_token": "marker",
+      "output_token": "Marker",
+      "limit_key": "limit",
+      "result_key": "Parts"
+    },
+    "ListVaults": {
+      "input_token": "marker",
+      "output_token": "Marker",
+      "limit_key": "limit",
+      "result_key": "VaultList"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/glacier/2012-06-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/glacier/2012-06-01/service-2.json.gz
new file mode 100644
index 00000000..5f9a509a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/glacier/2012-06-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/glacier/2012-06-01/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/glacier/2012-06-01/waiters-2.json
new file mode 100644
index 00000000..07a64a05
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/glacier/2012-06-01/waiters-2.json
@@ -0,0 +1,39 @@
+{
+  "version": 2,
+  "waiters": {
+    "VaultExists": {
+      "operation": "DescribeVault",
+      "delay": 3,
+      "maxAttempts": 15,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "status",
+          "expected": 200
+        },
+        {
+          "state": "retry",
+          "matcher": "error",
+          "expected": "ResourceNotFoundException"
+        }
+      ]
+    },
+    "VaultNotExists": {
+      "operation": "DescribeVault",
+      "delay": 3,
+      "maxAttempts": 15,
+      "acceptors": [
+        {
+          "state": "retry",
+          "matcher": "status",
+          "expected": 200
+        },
+        {
+          "state": "success",
+          "matcher": "error",
+          "expected": "ResourceNotFoundException"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/globalaccelerator/2018-08-08/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/globalaccelerator/2018-08-08/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..73ac2055
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/globalaccelerator/2018-08-08/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/globalaccelerator/2018-08-08/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/globalaccelerator/2018-08-08/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/globalaccelerator/2018-08-08/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/globalaccelerator/2018-08-08/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/globalaccelerator/2018-08-08/paginators-1.json
new file mode 100644
index 00000000..2a0f8251
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/globalaccelerator/2018-08-08/paginators-1.json
@@ -0,0 +1,70 @@
+{
+  "pagination": {
+    "ListAccelerators": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Accelerators"
+    },
+    "ListEndpointGroups": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "EndpointGroups"
+    },
+    "ListListeners": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Listeners"
+    },
+    "ListByoipCidrs": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ByoipCidrs"
+    },
+    "ListCustomRoutingAccelerators": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Accelerators"
+    },
+    "ListCustomRoutingListeners": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Listeners"
+    },
+    "ListCustomRoutingPortMappings": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "PortMappings"
+    },
+    "ListCustomRoutingPortMappingsByDestination": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "DestinationPortMappings"
+    },
+    "ListCustomRoutingEndpointGroups": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "EndpointGroups"
+    },
+    "ListCrossAccountAttachments": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "CrossAccountAttachments"
+    },
+    "ListCrossAccountResources": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "CrossAccountResources"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/globalaccelerator/2018-08-08/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/globalaccelerator/2018-08-08/service-2.json.gz
new file mode 100644
index 00000000..6d3943a7
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/globalaccelerator/2018-08-08/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/glue/2017-03-31/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/glue/2017-03-31/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..9d3d53e7
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/glue/2017-03-31/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/glue/2017-03-31/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/glue/2017-03-31/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/glue/2017-03-31/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/glue/2017-03-31/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/glue/2017-03-31/paginators-1.json
new file mode 100644
index 00000000..98af8a9c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/glue/2017-03-31/paginators-1.json
@@ -0,0 +1,175 @@
+{
+  "pagination": {
+    "GetJobs": {
+      "result_key": "Jobs",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "GetPartitions": {
+      "result_key": "Partitions",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "GetDatabases": {
+      "result_key": "DatabaseList",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "GetClassifiers": {
+      "result_key": "Classifiers",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "GetTableVersions": {
+      "result_key": "TableVersions",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "GetCrawlers": {
+      "result_key": "Crawlers",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "GetDevEndpoints": {
+      "result_key": "DevEndpoints",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "GetJobRuns": {
+      "result_key": "JobRuns",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "GetTriggers": {
+      "result_key": "Triggers",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "GetTables": {
+      "result_key": "TableList",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "GetUserDefinedFunctions": {
+      "result_key": "UserDefinedFunctions",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "GetCrawlerMetrics": {
+      "result_key": "CrawlerMetricsList",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "GetConnections": {
+      "result_key": "ConnectionList",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "GetSecurityConfigurations": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "SecurityConfigurations"
+    },
+    "GetPartitionIndexes": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "PartitionIndexDescriptorList"
+    },
+    "GetResourcePolicies": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "GetResourcePoliciesResponseList"
+    },
+    "ListRegistries": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Registries"
+    },
+    "ListSchemaVersions": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Schemas"
+    },
+    "ListSchemas": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Schemas"
+    },
+    "ListUsageProfiles": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Profiles"
+    },
+    "GetWorkflowRuns": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Runs"
+    },
+    "ListBlueprints": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Blueprints"
+    },
+    "ListJobs": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "JobNames"
+    },
+    "ListTriggers": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "TriggerNames"
+    },
+    "ListWorkflows": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Workflows"
+    },
+    "ListTableOptimizerRuns": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "TableOptimizerRuns"
+    },
+    "DescribeEntity": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "Fields"
+    },
+    "ListConnectionTypes": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ConnectionTypes"
+    },
+    "ListEntities": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "Entities"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/glue/2017-03-31/paginators-1.sdk-extras.json b/.venv/lib/python3.12/site-packages/botocore/data/glue/2017-03-31/paginators-1.sdk-extras.json
new file mode 100644
index 00000000..4d788b16
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/glue/2017-03-31/paginators-1.sdk-extras.json
@@ -0,0 +1,14 @@
+{
+  "version": 1,
+  "merge": {
+    "pagination": {
+      "ListTableOptimizerRuns": {
+        "non_aggregate_keys": [
+          "CatalogId",
+          "DatabaseName",
+          "TableName"
+        ]
+      }
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/glue/2017-03-31/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/glue/2017-03-31/service-2.json.gz
new file mode 100644
index 00000000..9c2bec01
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/glue/2017-03-31/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/grafana/2020-08-18/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/grafana/2020-08-18/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..3881d6e7
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/grafana/2020-08-18/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/grafana/2020-08-18/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/grafana/2020-08-18/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/grafana/2020-08-18/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/grafana/2020-08-18/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/grafana/2020-08-18/paginators-1.json
new file mode 100644
index 00000000..55d05f29
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/grafana/2020-08-18/paginators-1.json
@@ -0,0 +1,34 @@
+{
+  "pagination": {
+    "ListPermissions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "permissions"
+    },
+    "ListWorkspaces": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "workspaces"
+    },
+    "ListVersions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "grafanaVersions"
+    },
+    "ListWorkspaceServiceAccountTokens": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "serviceAccountTokens"
+    },
+    "ListWorkspaceServiceAccounts": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "serviceAccounts"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/grafana/2020-08-18/paginators-1.sdk-extras.json b/.venv/lib/python3.12/site-packages/botocore/data/grafana/2020-08-18/paginators-1.sdk-extras.json
new file mode 100644
index 00000000..421e2f65
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/grafana/2020-08-18/paginators-1.sdk-extras.json
@@ -0,0 +1,18 @@
+{
+  "version": 1.0,
+  "merge": {
+    "pagination": {
+      "ListWorkspaceServiceAccounts": {
+        "non_aggregate_keys": [
+          "workspaceId"
+        ]
+      },
+      "ListWorkspaceServiceAccountTokens": {
+        "non_aggregate_keys": [
+          "serviceAccountId",
+          "workspaceId"
+        ]
+      }
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/grafana/2020-08-18/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/grafana/2020-08-18/service-2.json.gz
new file mode 100644
index 00000000..693ad526
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/grafana/2020-08-18/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/greengrass/2017-06-07/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/greengrass/2017-06-07/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..532a133e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/greengrass/2017-06-07/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/greengrass/2017-06-07/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/greengrass/2017-06-07/paginators-1.json
new file mode 100644
index 00000000..303b4384
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/greengrass/2017-06-07/paginators-1.json
@@ -0,0 +1,118 @@
+{
+  "pagination": {
+    "ListBulkDeploymentDetailedReports": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Deployments"
+    },
+    "ListBulkDeployments": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "BulkDeployments"
+    },
+    "ListConnectorDefinitionVersions": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Versions"
+    },
+    "ListConnectorDefinitions": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Definitions"
+    },
+    "ListCoreDefinitionVersions": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Versions"
+    },
+    "ListCoreDefinitions": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Definitions"
+    },
+    "ListDeployments": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Deployments"
+    },
+    "ListDeviceDefinitionVersions": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Versions"
+    },
+    "ListDeviceDefinitions": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Definitions"
+    },
+    "ListFunctionDefinitionVersions": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Versions"
+    },
+    "ListFunctionDefinitions": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Definitions"
+    },
+    "ListGroupVersions": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Versions"
+    },
+    "ListGroups": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Groups"
+    },
+    "ListLoggerDefinitionVersions": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Versions"
+    },
+    "ListLoggerDefinitions": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Definitions"
+    },
+    "ListResourceDefinitionVersions": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Versions"
+    },
+    "ListResourceDefinitions": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Definitions"
+    },
+    "ListSubscriptionDefinitionVersions": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Versions"
+    },
+    "ListSubscriptionDefinitions": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Definitions"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/greengrass/2017-06-07/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/greengrass/2017-06-07/service-2.json.gz
new file mode 100644
index 00000000..a4cc3e43
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/greengrass/2017-06-07/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/greengrassv2/2020-11-30/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/greengrassv2/2020-11-30/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..2b02df7c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/greengrassv2/2020-11-30/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/greengrassv2/2020-11-30/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/greengrassv2/2020-11-30/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/greengrassv2/2020-11-30/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/greengrassv2/2020-11-30/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/greengrassv2/2020-11-30/paginators-1.json
new file mode 100644
index 00000000..2e2af05d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/greengrassv2/2020-11-30/paginators-1.json
@@ -0,0 +1,46 @@
+{
+  "pagination": {
+    "ListComponentVersions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "componentVersions"
+    },
+    "ListComponents": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "components"
+    },
+    "ListCoreDevices": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "coreDevices"
+    },
+    "ListDeployments": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "deployments"
+    },
+    "ListEffectiveDeployments": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "effectiveDeployments"
+    },
+    "ListInstalledComponents": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "installedComponents"
+    },
+    "ListClientDevicesAssociatedWithCoreDevice": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "associatedClientDevices"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/greengrassv2/2020-11-30/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/greengrassv2/2020-11-30/service-2.json.gz
new file mode 100644
index 00000000..faba2671
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/greengrassv2/2020-11-30/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/groundstation/2019-05-23/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/groundstation/2019-05-23/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..524dbeab
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/groundstation/2019-05-23/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/groundstation/2019-05-23/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/groundstation/2019-05-23/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/groundstation/2019-05-23/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/groundstation/2019-05-23/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/groundstation/2019-05-23/paginators-1.json
new file mode 100644
index 00000000..0ead1107
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/groundstation/2019-05-23/paginators-1.json
@@ -0,0 +1,46 @@
+{
+  "pagination": {
+    "ListConfigs": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "configList"
+    },
+    "ListContacts": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "contactList"
+    },
+    "ListDataflowEndpointGroups": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "dataflowEndpointGroupList"
+    },
+    "ListMissionProfiles": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "missionProfileList"
+    },
+    "ListGroundStations": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "groundStationList"
+    },
+    "ListSatellites": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "satellites"
+    },
+    "ListEphemerides": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "ephemerides"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/groundstation/2019-05-23/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/groundstation/2019-05-23/service-2.json.gz
new file mode 100644
index 00000000..563195a2
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/groundstation/2019-05-23/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/groundstation/2019-05-23/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/groundstation/2019-05-23/waiters-2.json
new file mode 100644
index 00000000..c0080e29
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/groundstation/2019-05-23/waiters-2.json
@@ -0,0 +1,22 @@
+{
+  "version" : 2,
+  "waiters" : {
+    "ContactScheduled" : {
+      "description" : "Waits until a contact has been scheduled",
+      "delay" : 5,
+      "maxAttempts" : 180,
+      "operation" : "DescribeContact",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "contactStatus",
+        "state" : "failure",
+        "expected" : "FAILED_TO_SCHEDULE"
+      }, {
+        "matcher" : "path",
+        "argument" : "contactStatus",
+        "state" : "success",
+        "expected" : "SCHEDULED"
+      } ]
+    }
+  }
+}
\ No newline at end of file
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/guardduty/2017-11-28/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/guardduty/2017-11-28/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..18a5974b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/guardduty/2017-11-28/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/guardduty/2017-11-28/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/guardduty/2017-11-28/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/guardduty/2017-11-28/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/guardduty/2017-11-28/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/guardduty/2017-11-28/paginators-1.json
new file mode 100644
index 00000000..a030d893
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/guardduty/2017-11-28/paginators-1.json
@@ -0,0 +1,64 @@
+{
+  "pagination": {
+    "ListDetectors": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "DetectorIds"
+    },
+    "ListFindings": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "FindingIds"
+    },
+    "ListIPSets": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "IpSetIds"
+    },
+    "ListThreatIntelSets": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ThreatIntelSetIds"
+    },
+    "ListInvitations": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Invitations"
+    },
+    "ListMembers": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Members"
+    },
+    "ListFilters": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "FilterNames"
+    },
+    "ListOrganizationAdminAccounts": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "AdminAccounts"
+    },
+    "DescribeMalwareScans": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Scans"
+    },
+    "ListCoverage": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Resources"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/guardduty/2017-11-28/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/guardduty/2017-11-28/service-2.json.gz
new file mode 100644
index 00000000..cf740a71
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/guardduty/2017-11-28/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/health/2016-08-04/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/health/2016-08-04/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..19615873
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/health/2016-08-04/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/health/2016-08-04/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/health/2016-08-04/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/health/2016-08-04/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/health/2016-08-04/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/health/2016-08-04/paginators-1.json
new file mode 100644
index 00000000..51094812
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/health/2016-08-04/paginators-1.json
@@ -0,0 +1,52 @@
+{
+  "pagination": {
+    "DescribeAffectedEntities": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "entities"
+    },
+    "DescribeEventAggregates": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "eventAggregates"
+    },
+    "DescribeEvents": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "events"
+    },
+    "DescribeEventTypes": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "eventTypes"
+    },
+    "DescribeAffectedAccountsForOrganization": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "affectedAccounts",
+      "non_aggregate_keys": [
+        "eventScopeCode"
+      ]
+    },
+    "DescribeAffectedEntitiesForOrganization": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "non_aggregate_keys": [
+        "failedSet"
+      ],
+      "output_token": "nextToken",
+      "result_key": "entities"
+    },
+    "DescribeEventsForOrganization": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "events"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/health/2016-08-04/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/health/2016-08-04/service-2.json.gz
new file mode 100644
index 00000000..59a7cb94
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/health/2016-08-04/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/healthlake/2017-07-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/healthlake/2017-07-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..0e0b23cb
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/healthlake/2017-07-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/healthlake/2017-07-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/healthlake/2017-07-01/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/healthlake/2017-07-01/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/healthlake/2017-07-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/healthlake/2017-07-01/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/healthlake/2017-07-01/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/healthlake/2017-07-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/healthlake/2017-07-01/service-2.json.gz
new file mode 100644
index 00000000..2bff3ea2
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/healthlake/2017-07-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/iam/2010-05-08/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/iam/2010-05-08/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..73b2713a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iam/2010-05-08/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/iam/2010-05-08/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/iam/2010-05-08/examples-1.json
new file mode 100644
index 00000000..cd3a94aa
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iam/2010-05-08/examples-1.json
@@ -0,0 +1,1577 @@
+{
+  "version": "1.0",
+  "examples": {
+    "AddClientIDToOpenIDConnectProvider": [
+      {
+        "input": {
+          "ClientID": "my-application-ID",
+          "OpenIDConnectProviderArn": "arn:aws:iam::123456789012:oidc-provider/server.example.com"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following add-client-id-to-open-id-connect-provider command adds the client ID my-application-ID to the OIDC provider named server.example.com:",
+        "id": "028e91f4-e2a6-4d59-9e3b-4965a3fb19be",
+        "title": "To add a client ID (audience) to an Open-ID Connect (OIDC) provider"
+      }
+    ],
+    "AddRoleToInstanceProfile": [
+      {
+        "input": {
+          "InstanceProfileName": "Webserver",
+          "RoleName": "S3Access"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following command adds the role named S3Access to the instance profile named Webserver:",
+        "id": "c107fac3-edb6-4827-8a71-8863ec91c81f",
+        "title": "To add a role to an instance profile"
+      }
+    ],
+    "AddUserToGroup": [
+      {
+        "input": {
+          "GroupName": "Admins",
+          "UserName": "Bob"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following command adds an IAM user named Bob to the IAM group named Admins:",
+        "id": "619c7e6b-09f8-4036-857b-51a6ea5027ca",
+        "title": "To add a user to an IAM group"
+      }
+    ],
+    "AttachGroupPolicy": [
+      {
+        "input": {
+          "GroupName": "Finance",
+          "PolicyArn": "arn:aws:iam::aws:policy/ReadOnlyAccess"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following command attaches the AWS managed policy named ReadOnlyAccess to the IAM group named Finance.",
+        "id": "87551489-86f0-45db-9889-759936778f2b",
+        "title": "To attach a managed policy to an IAM group"
+      }
+    ],
+    "AttachRolePolicy": [
+      {
+        "input": {
+          "PolicyArn": "arn:aws:iam::aws:policy/ReadOnlyAccess",
+          "RoleName": "ReadOnlyRole"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following command attaches the AWS managed policy named ReadOnlyAccess to the IAM role named ReadOnlyRole.",
+        "id": "3e1b8c7c-99c8-4fc4-a20c-131fe3f22c7e",
+        "title": "To attach a managed policy to an IAM role"
+      }
+    ],
+    "AttachUserPolicy": [
+      {
+        "input": {
+          "PolicyArn": "arn:aws:iam::aws:policy/AdministratorAccess",
+          "UserName": "Alice"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following command attaches the AWS managed policy named AdministratorAccess to the IAM user named Alice.",
+        "id": "1372ebd8-9475-4b1a-a479-23b6fd4b8b3e",
+        "title": "To attach a managed policy to an IAM user"
+      }
+    ],
+    "ChangePassword": [
+      {
+        "input": {
+          "NewPassword": "]35d/{pB9Fo9wJ",
+          "OldPassword": "3s0K_;xh4~8XXI"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following command changes the password for the current IAM user.",
+        "id": "3a80c66f-bffb-46df-947c-1e8fa583b470",
+        "title": "To change the password for your IAM user"
+      }
+    ],
+    "CreateAccessKey": [
+      {
+        "input": {
+          "UserName": "Bob"
+        },
+        "output": {
+          "AccessKey": {
+            "AccessKeyId": "AKIAIOSFODNN7EXAMPLE",
+            "CreateDate": "2015-03-09T18:39:23.411Z",
+            "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY",
+            "Status": "Active",
+            "UserName": "Bob"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following command creates an access key (access key ID and secret access key) for the IAM user named Bob.",
+        "id": "1fbb3211-4cf2-41db-8c20-ba58d9f5802d",
+        "title": "To create an access key for an IAM user"
+      }
+    ],
+    "CreateAccountAlias": [
+      {
+        "input": {
+          "AccountAlias": "examplecorp"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following command associates the alias examplecorp to your AWS account.",
+        "id": "5adaf6fb-94fc-4ca2-b825-2fbc2062add1",
+        "title": "To create an account alias"
+      }
+    ],
+    "CreateGroup": [
+      {
+        "input": {
+          "GroupName": "Admins"
+        },
+        "output": {
+          "Group": {
+            "Arn": "arn:aws:iam::123456789012:group/Admins",
+            "CreateDate": "2015-03-09T20:30:24.940Z",
+            "GroupId": "AIDGPMS9RO4H3FEXAMPLE",
+            "GroupName": "Admins",
+            "Path": "/"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following command creates an IAM group named Admins.",
+        "id": "d5da2a90-5e69-4ef7-8ae8-4c33dc21fd21",
+        "title": "To create an IAM group"
+      }
+    ],
+    "CreateInstanceProfile": [
+      {
+        "input": {
+          "InstanceProfileName": "Webserver"
+        },
+        "output": {
+          "InstanceProfile": {
+            "Arn": "arn:aws:iam::123456789012:instance-profile/Webserver",
+            "CreateDate": "2015-03-09T20:33:19.626Z",
+            "InstanceProfileId": "AIPAJMBYC7DLSPEXAMPLE",
+            "InstanceProfileName": "Webserver",
+            "Path": "/",
+            "Roles": [
+
+            ]
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following command creates an instance profile named Webserver that is ready to have a role attached and then be associated with an EC2 instance.",
+        "id": "5d84e6ae-5921-4e39-8454-10232cd9ff9a",
+        "title": "To create an instance profile"
+      }
+    ],
+    "CreateLoginProfile": [
+      {
+        "input": {
+          "Password": "h]6EszR}vJ*m",
+          "PasswordResetRequired": true,
+          "UserName": "Bob"
+        },
+        "output": {
+          "LoginProfile": {
+            "CreateDate": "2015-03-10T20:55:40.274Z",
+            "PasswordResetRequired": true,
+            "UserName": "Bob"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following command changes IAM user Bob's password and sets the flag that required Bob to change the password the next time he signs in.",
+        "id": "c63795bc-3444-40b3-89df-83c474ef88be",
+        "title": "To create an instance profile"
+      }
+    ],
+    "CreateOpenIDConnectProvider": [
+      {
+        "input": {
+          "ClientIDList": [
+            "my-application-id"
+          ],
+          "ThumbprintList": [
+            "3768084dfb3d2b68b7897bf5f565da8efEXAMPLE"
+          ],
+          "Url": "https://server.example.com"
+        },
+        "output": {
+          "OpenIDConnectProviderArn": "arn:aws:iam::123456789012:oidc-provider/server.example.com"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example defines a new OIDC provider in IAM with a client ID of my-application-id and pointing at the server with a URL of https://server.example.com.",
+        "id": "4e4a6bff-cc97-4406-922e-0ab4a82cdb63",
+        "title": "To create an instance profile"
+      }
+    ],
+    "CreateRole": [
+      {
+        "input": {
+          "AssumeRolePolicyDocument": "<Stringified-JSON>",
+          "Path": "/",
+          "RoleName": "Test-Role"
+        },
+        "output": {
+          "Role": {
+            "Arn": "arn:aws:iam::123456789012:role/Test-Role",
+            "AssumeRolePolicyDocument": "<URL-encoded-JSON>",
+            "CreateDate": "2013-06-07T20:43:32.821Z",
+            "Path": "/",
+            "RoleId": "AKIAIOSFODNN7EXAMPLE",
+            "RoleName": "Test-Role"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following command creates a role named Test-Role and attaches a trust policy that you must convert from JSON to a string. Upon success, the response includes the same policy as a URL-encoded JSON string.",
+        "id": "eaaa4b5f-51f1-4f73-b0d3-30127040eff8",
+        "title": "To create an IAM role"
+      }
+    ],
+    "CreateUser": [
+      {
+        "input": {
+          "UserName": "Bob"
+        },
+        "output": {
+          "User": {
+            "Arn": "arn:aws:iam::123456789012:user/Bob",
+            "CreateDate": "2013-06-08T03:20:41.270Z",
+            "Path": "/",
+            "UserId": "AKIAIOSFODNN7EXAMPLE",
+            "UserName": "Bob"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following create-user command creates an IAM user named Bob in the current account.",
+        "id": "eb15f90b-e5f5-4af8-a594-e4e82b181a62",
+        "title": "To create an IAM user"
+      }
+    ],
+    "DeleteAccessKey": [
+      {
+        "input": {
+          "AccessKeyId": "AKIDPMS9RO4H3FEXAMPLE",
+          "UserName": "Bob"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following command deletes one access key (access key ID and secret access key) assigned to the IAM user named Bob.",
+        "id": "61a785a7-d30a-415a-ae18-ab9236e56871",
+        "title": "To delete an access key for an IAM user"
+      }
+    ],
+    "DeleteAccountAlias": [
+      {
+        "input": {
+          "AccountAlias": "mycompany"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following command removes the alias mycompany from the current AWS account:",
+        "id": "7abeca65-04a8-4500-a890-47f1092bf766",
+        "title": "To delete an account alias"
+      }
+    ],
+    "DeleteAccountPasswordPolicy": [
+      {
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following command removes the password policy from the current AWS account:",
+        "id": "9ddf755e-495c-49bc-ae3b-ea6cc9b8ebcf",
+        "title": "To delete the current account password policy"
+      }
+    ],
+    "DeleteGroupPolicy": [
+      {
+        "input": {
+          "GroupName": "Admins",
+          "PolicyName": "ExamplePolicy"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following command deletes the policy named ExamplePolicy from the group named Admins:",
+        "id": "e683f2bd-98a4-4fe0-bb66-33169c692d4a",
+        "title": "To delete a policy from an IAM group"
+      }
+    ],
+    "DeleteInstanceProfile": [
+      {
+        "input": {
+          "InstanceProfileName": "ExampleInstanceProfile"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following command deletes the instance profile named ExampleInstanceProfile",
+        "id": "12d74fb8-3433-49db-8171-a1fc764e354d",
+        "title": "To delete an instance profile"
+      }
+    ],
+    "DeleteLoginProfile": [
+      {
+        "input": {
+          "UserName": "Bob"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following command deletes the password for the IAM user named Bob.",
+        "id": "1fe57059-fc73-42e2-b992-517b7d573b5c",
+        "title": "To delete a password for an IAM user"
+      }
+    ],
+    "DeleteRole": [
+      {
+        "input": {
+          "RoleName": "Test-Role"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following command removes the role named Test-Role.",
+        "id": "053cdf74-9bda-44b8-bdbb-140fd5a32603",
+        "title": "To delete an IAM role"
+      }
+    ],
+    "DeleteRolePolicy": [
+      {
+        "input": {
+          "PolicyName": "ExamplePolicy",
+          "RoleName": "Test-Role"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following command removes the policy named ExamplePolicy from the role named Test-Role.",
+        "id": "9c667336-fde3-462c-b8f3-950800821e27",
+        "title": "To remove a policy from an IAM role"
+      }
+    ],
+    "DeleteSigningCertificate": [
+      {
+        "input": {
+          "CertificateId": "TA7SMP42TDN5Z26OBPJE7EXAMPLE",
+          "UserName": "Anika"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following command deletes the specified signing certificate for the IAM user named Anika.",
+        "id": "e3357586-ba9c-4070-b35b-d1a899b71987",
+        "title": "To delete a signing certificate for an IAM user"
+      }
+    ],
+    "DeleteUser": [
+      {
+        "input": {
+          "UserName": "Bob"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following command removes the IAM user named Bob from the current account.",
+        "id": "a13dc3f9-59fe-42d9-abbb-fb98b204fdf0",
+        "title": "To delete an IAM user"
+      }
+    ],
+    "DeleteUserPolicy": [
+      {
+        "input": {
+          "PolicyName": "ExamplePolicy",
+          "UserName": "Juan"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following delete-user-policy command removes the specified policy from the IAM user named Juan:",
+        "id": "34f07ddc-9bc1-4f52-bc59-cd0a3ccd06c8",
+        "title": "To remove a policy from an IAM user"
+      }
+    ],
+    "DeleteVirtualMFADevice": [
+      {
+        "input": {
+          "SerialNumber": "arn:aws:iam::123456789012:mfa/ExampleName"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following delete-virtual-mfa-device command removes the specified MFA device from the current AWS account.",
+        "id": "2933b08b-dbe7-4b89-b8c1-fdf75feea1ee",
+        "title": "To remove a virtual MFA device"
+      }
+    ],
+    "GenerateOrganizationsAccessReport": [
+      {
+        "input": {
+          "EntityPath": "o-a1b2c3d4e5/r-f6g7h8i9j0example/ou-1a2b3c-k9l8m7n6o5example"
+        },
+        "output": {
+          "JobId": "examplea-1234-b567-cde8-90fg123abcd4"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following operation generates a report for the organizational unit ou-rge0-awexample",
+        "id": "generateorganizationsaccessreport-ou",
+        "title": "To generate a service last accessed data report for an organizational unit"
+      }
+    ],
+    "GenerateServiceLastAccessedDetails": [
+      {
+        "input": {
+          "Arn": "arn:aws:iam::123456789012:policy/ExamplePolicy1"
+        },
+        "output": {
+          "JobId": "examplef-1305-c245-eba4-71fe298bcda7"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following operation generates a report for the policy: ExamplePolicy1",
+        "id": "generateaccessdata-policy-1541695178514",
+        "title": "To generate a service last accessed data report for a policy"
+      }
+    ],
+    "GetAccountPasswordPolicy": [
+      {
+        "output": {
+          "PasswordPolicy": {
+            "AllowUsersToChangePassword": false,
+            "ExpirePasswords": false,
+            "HardExpiry": false,
+            "MaxPasswordAge": 90,
+            "MinimumPasswordLength": 8,
+            "PasswordReusePrevention": 12,
+            "RequireLowercaseCharacters": false,
+            "RequireNumbers": true,
+            "RequireSymbols": true,
+            "RequireUppercaseCharacters": false
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following command displays details about the password policy for the current AWS account.",
+        "id": "5e4598c7-c425-431f-8af1-19073b3c4a5f",
+        "title": "To see the current account password policy"
+      }
+    ],
+    "GetAccountSummary": [
+      {
+        "output": {
+          "SummaryMap": {
+            "AccessKeysPerUserQuota": 2,
+            "AccountAccessKeysPresent": 1,
+            "AccountMFAEnabled": 0,
+            "AccountSigningCertificatesPresent": 0,
+            "AttachedPoliciesPerGroupQuota": 10,
+            "AttachedPoliciesPerRoleQuota": 10,
+            "AttachedPoliciesPerUserQuota": 10,
+            "GlobalEndpointTokenVersion": 2,
+            "GroupPolicySizeQuota": 5120,
+            "Groups": 15,
+            "GroupsPerUserQuota": 10,
+            "GroupsQuota": 100,
+            "MFADevices": 6,
+            "MFADevicesInUse": 3,
+            "Policies": 8,
+            "PoliciesQuota": 1000,
+            "PolicySizeQuota": 5120,
+            "PolicyVersionsInUse": 22,
+            "PolicyVersionsInUseQuota": 10000,
+            "ServerCertificates": 1,
+            "ServerCertificatesQuota": 20,
+            "SigningCertificatesPerUserQuota": 2,
+            "UserPolicySizeQuota": 2048,
+            "Users": 27,
+            "UsersQuota": 5000,
+            "VersionsPerPolicyQuota": 5
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following command returns information about the IAM entity quotas and usage in the current AWS account.",
+        "id": "9d8447af-f344-45de-8219-2cebc3cce7f2",
+        "title": "To get information about IAM entity quotas and usage in the current account"
+      }
+    ],
+    "GetInstanceProfile": [
+      {
+        "input": {
+          "InstanceProfileName": "ExampleInstanceProfile"
+        },
+        "output": {
+          "InstanceProfile": {
+            "Arn": "arn:aws:iam::336924118301:instance-profile/ExampleInstanceProfile",
+            "CreateDate": "2013-06-12T23:52:02Z",
+            "InstanceProfileId": "AID2MAB8DPLSRHEXAMPLE",
+            "InstanceProfileName": "ExampleInstanceProfile",
+            "Path": "/",
+            "Roles": [
+              {
+                "Arn": "arn:aws:iam::336924118301:role/Test-Role",
+                "AssumeRolePolicyDocument": "<URL-encoded-JSON>",
+                "CreateDate": "2013-01-09T06:33:26Z",
+                "Path": "/",
+                "RoleId": "AIDGPMS9RO4H3FEXAMPLE",
+                "RoleName": "Test-Role"
+              }
+            ]
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following command gets information about the instance profile named ExampleInstanceProfile.",
+        "id": "463b9ba5-18cc-4608-9ccb-5a7c6b6e5fe7",
+        "title": "To get information about an instance profile"
+      }
+    ],
+    "GetLoginProfile": [
+      {
+        "input": {
+          "UserName": "Anika"
+        },
+        "output": {
+          "LoginProfile": {
+            "CreateDate": "2012-09-21T23:03:39Z",
+            "UserName": "Anika"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following command gets information about the password for the IAM user named Anika.",
+        "id": "d6b580cc-909f-4925-9caa-d425cbc1ad47",
+        "title": "To get password information for an IAM user"
+      }
+    ],
+    "GetOrganizationsAccessReport": [
+      {
+        "input": {
+          "JobId": "examplea-1234-b567-cde8-90fg123abcd4"
+        },
+        "output": {
+          "AccessDetails": [
+            {
+              "EntityPath": "o-a1b2c3d4e5/r-f6g7h8i9j0example/ou-1a2b3c-k9l8m7n6o5example/111122223333",
+              "LastAuthenticatedTime": "2019-05-25T16:29:52Z",
+              "Region": "us-east-1",
+              "ServiceName": "Amazon DynamoDB",
+              "ServiceNamespace": "dynamodb",
+              "TotalAuthenticatedEntities": 2
+            },
+            {
+              "EntityPath": "o-a1b2c3d4e5/r-f6g7h8i9j0example/ou-1a2b3c-k9l8m7n6o5example/123456789012",
+              "LastAuthenticatedTime": "2019-06-15T13:12:06Z",
+              "Region": "us-east-1",
+              "ServiceName": "AWS Identity and Access Management",
+              "ServiceNamespace": "iam",
+              "TotalAuthenticatedEntities": 4
+            },
+            {
+              "ServiceName": "Amazon Simple Storage Service",
+              "ServiceNamespace": "s3",
+              "TotalAuthenticatedEntities": 0
+            }
+          ],
+          "IsTruncated": false,
+          "JobCompletionDate": "2019-06-18T19:47:35.241Z",
+          "JobCreationDate": "2019-06-18T19:47:31.466Z",
+          "JobStatus": "COMPLETED",
+          "NumberOfServicesAccessible": 3,
+          "NumberOfServicesNotAccessed": 1
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following operation gets details about the report with the job ID: examplea-1234-b567-cde8-90fg123abcd4",
+        "id": "getorganizationsaccessreport-ou",
+        "title": "To get details from a previously generated organizational unit report"
+      }
+    ],
+    "GetRole": [
+      {
+        "input": {
+          "RoleName": "Test-Role"
+        },
+        "output": {
+          "Role": {
+            "Arn": "arn:aws:iam::123456789012:role/Test-Role",
+            "AssumeRolePolicyDocument": "<URL-encoded-JSON>",
+            "CreateDate": "2013-04-18T05:01:58Z",
+            "MaxSessionDuration": 3600,
+            "Path": "/",
+            "RoleId": "AROADBQP57FF2AEXAMPLE",
+            "RoleLastUsed": {
+              "LastUsedDate": "2019-11-18T05:01:58Z",
+              "Region": "us-east-1"
+            },
+            "RoleName": "Test-Role"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following command gets information about the role named Test-Role.",
+        "id": "5b7d03a6-340c-472d-aa77-56425950d8b0",
+        "title": "To get information about an IAM role"
+      }
+    ],
+    "GetServiceLastAccessedDetails": [
+      {
+        "input": {
+          "JobId": "examplef-1305-c245-eba4-71fe298bcda7"
+        },
+        "output": {
+          "IsTruncated": false,
+          "JobCompletionDate": "2018-10-24T19:47:35.241Z",
+          "JobCreationDate": "2018-10-24T19:47:31.466Z",
+          "JobStatus": "COMPLETED",
+          "ServicesLastAccessed": [
+            {
+              "LastAuthenticated": "2018-10-24T19:11:00Z",
+              "LastAuthenticatedEntity": "arn:aws:iam::123456789012:user/AWSExampleUser01",
+              "ServiceName": "AWS Identity and Access Management",
+              "ServiceNamespace": "iam",
+              "TotalAuthenticatedEntities": 2
+            },
+            {
+              "ServiceName": "Amazon Simple Storage Service",
+              "ServiceNamespace": "s3",
+              "TotalAuthenticatedEntities": 0
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following operation gets details about the report with the job ID: examplef-1305-c245-eba4-71fe298bcda7",
+        "id": "getserviceaccessdetails-policy-1541696298085",
+        "title": "To get details from a previously-generated report"
+      }
+    ],
+    "GetServiceLastAccessedDetailsWithEntities": [
+      {
+        "input": {
+          "JobId": "examplef-1305-c245-eba4-71fe298bcda7",
+          "ServiceNamespace": "iam"
+        },
+        "output": {
+          "EntityDetailsList": [
+            {
+              "EntityInfo": {
+                "Arn": "arn:aws:iam::123456789012:user/AWSExampleUser01",
+                "Id": "AIDAEX2EXAMPLEB6IGCDC",
+                "Name": "AWSExampleUser01",
+                "Path": "/",
+                "Type": "USER"
+              },
+              "LastAuthenticated": "2018-10-24T19:10:00Z"
+            },
+            {
+              "EntityInfo": {
+                "Arn": "arn:aws:iam::123456789012:role/AWSExampleRole01",
+                "Id": "AROAEAEXAMPLEIANXSIU4",
+                "Name": "AWSExampleRole01",
+                "Path": "/",
+                "Type": "ROLE"
+              }
+            }
+          ],
+          "IsTruncated": false,
+          "JobCompletionDate": "2018-10-24T19:47:35.241Z",
+          "JobCreationDate": "2018-10-24T19:47:31.466Z",
+          "JobStatus": "COMPLETED"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following operation returns details about the entities that attempted to access the IAM service.",
+        "id": "getserviceaccessdetailsentity-policy-1541697621384",
+        "title": "To get sntity details from a previously-generated report"
+      }
+    ],
+    "GetUser": [
+      {
+        "input": {
+          "UserName": "Bob"
+        },
+        "output": {
+          "User": {
+            "Arn": "arn:aws:iam::123456789012:user/Bob",
+            "CreateDate": "2012-09-21T23:03:13Z",
+            "Path": "/",
+            "UserId": "AKIAIOSFODNN7EXAMPLE",
+            "UserName": "Bob"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following command gets information about the IAM user named Bob.",
+        "id": "ede000a1-9e4c-40db-bd0a-d4f95e41a6ab",
+        "title": "To get information about an IAM user"
+      }
+    ],
+    "ListAccessKeys": [
+      {
+        "input": {
+          "UserName": "Alice"
+        },
+        "output": {
+          "AccessKeyMetadata": [
+            {
+              "AccessKeyId": "AKIA111111111EXAMPLE",
+              "CreateDate": "2016-12-01T22:19:58Z",
+              "Status": "Active",
+              "UserName": "Alice"
+            },
+            {
+              "AccessKeyId": "AKIA222222222EXAMPLE",
+              "CreateDate": "2016-12-01T22:20:01Z",
+              "Status": "Active",
+              "UserName": "Alice"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following command lists the access keys IDs for the IAM user named Alice.",
+        "id": "15571463-ebea-411a-a021-1c76bd2a3625",
+        "title": "To list the access key IDs for an IAM user"
+      }
+    ],
+    "ListAccountAliases": [
+      {
+        "input": {
+        },
+        "output": {
+          "AccountAliases": [
+            "exmaple-corporation"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following command lists the aliases for the current account.",
+        "id": "e27b457a-16f9-4e05-a006-3df7b3472741",
+        "title": "To list account aliases"
+      }
+    ],
+    "ListGroupPolicies": [
+      {
+        "input": {
+          "GroupName": "Admins"
+        },
+        "output": {
+          "PolicyNames": [
+            "AdminRoot",
+            "KeyPolicy"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following command lists the names of in-line policies that are embedded in the IAM group named Admins.",
+        "id": "02de5095-2410-4d3a-ac1b-cc40234af68f",
+        "title": "To list the in-line policies for an IAM group"
+      }
+    ],
+    "ListGroups": [
+      {
+        "input": {
+        },
+        "output": {
+          "Groups": [
+            {
+              "Arn": "arn:aws:iam::123456789012:group/Admins",
+              "CreateDate": "2016-12-15T21:40:08.121Z",
+              "GroupId": "AGPA1111111111EXAMPLE",
+              "GroupName": "Admins",
+              "Path": "/division_abc/subdivision_xyz/"
+            },
+            {
+              "Arn": "arn:aws:iam::123456789012:group/division_abc/subdivision_xyz/product_1234/engineering/Test",
+              "CreateDate": "2016-11-30T14:10:01.156Z",
+              "GroupId": "AGP22222222222EXAMPLE",
+              "GroupName": "Test",
+              "Path": "/division_abc/subdivision_xyz/product_1234/engineering/"
+            },
+            {
+              "Arn": "arn:aws:iam::123456789012:group/division_abc/subdivision_xyz/product_1234/Managers",
+              "CreateDate": "2016-06-12T20:14:52.032Z",
+              "GroupId": "AGPI3333333333EXAMPLE",
+              "GroupName": "Managers",
+              "Path": "/division_abc/subdivision_xyz/product_1234/"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following command lists the IAM groups in the current account:",
+        "id": "b3ab1380-2a21-42fb-8e85-503f65512c66",
+        "title": "To list the IAM groups for the current account"
+      }
+    ],
+    "ListGroupsForUser": [
+      {
+        "input": {
+          "UserName": "Bob"
+        },
+        "output": {
+          "Groups": [
+            {
+              "Arn": "arn:aws:iam::123456789012:group/division_abc/subdivision_xyz/product_1234/engineering/Test",
+              "CreateDate": "2016-11-30T14:10:01.156Z",
+              "GroupId": "AGP2111111111EXAMPLE",
+              "GroupName": "Test",
+              "Path": "/division_abc/subdivision_xyz/product_1234/engineering/"
+            },
+            {
+              "Arn": "arn:aws:iam::123456789012:group/division_abc/subdivision_xyz/product_1234/Managers",
+              "CreateDate": "2016-06-12T20:14:52.032Z",
+              "GroupId": "AGPI222222222SEXAMPLE",
+              "GroupName": "Managers",
+              "Path": "/division_abc/subdivision_xyz/product_1234/"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following command displays the groups that the IAM user named Bob belongs to.",
+        "id": "278ec2ee-fc28-4136-83fb-433af0ae46a2",
+        "title": "To list the groups that an IAM user belongs to"
+      }
+    ],
+    "ListPoliciesGrantingServiceAccess": [
+      {
+        "input": {
+          "Arn": "arn:aws:iam::123456789012:user/ExampleUser01",
+          "ServiceNamespaces": [
+            "iam",
+            "ec2"
+          ]
+        },
+        "output": {
+          "IsTruncated": false,
+          "PoliciesGrantingServiceAccess": [
+            {
+              "Policies": [
+                {
+                  "PolicyArn": "arn:aws:iam::123456789012:policy/ExampleIamPolicy",
+                  "PolicyName": "ExampleIamPolicy",
+                  "PolicyType": "MANAGED"
+                },
+                {
+                  "EntityName": "AWSExampleGroup1",
+                  "EntityType": "GROUP",
+                  "PolicyName": "ExampleGroup1Policy",
+                  "PolicyType": "INLINE"
+                }
+              ],
+              "ServiceNamespace": "iam"
+            },
+            {
+              "Policies": [
+                {
+                  "PolicyArn": "arn:aws:iam::123456789012:policy/ExampleEc2Policy",
+                  "PolicyName": "ExampleEc2Policy",
+                  "PolicyType": "MANAGED"
+                }
+              ],
+              "ServiceNamespace": "ec2"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following operation lists policies that allow ExampleUser01 to access IAM or EC2.",
+        "id": "listpoliciesaccess-user-1541698749508",
+        "title": "To list policies that allow access to a service"
+      }
+    ],
+    "ListRoleTags": [
+      {
+        "input": {
+          "RoleName": "taggedrole1"
+        },
+        "output": {
+          "IsTruncated": false,
+          "Tags": [
+            {
+              "Key": "Dept",
+              "Value": "12345"
+            },
+            {
+              "Key": "Team",
+              "Value": "Accounting"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows how to list the tags attached to a role.",
+        "id": "to-list-the-tags-attached-to-an-iam-role-1506719238376",
+        "title": "To list the tags attached to an IAM role"
+      }
+    ],
+    "ListSigningCertificates": [
+      {
+        "input": {
+          "UserName": "Bob"
+        },
+        "output": {
+          "Certificates": [
+            {
+              "CertificateBody": "-----BEGIN CERTIFICATE-----<certificate-body>-----END CERTIFICATE-----",
+              "CertificateId": "TA7SMP42TDN5Z26OBPJE7EXAMPLE",
+              "Status": "Active",
+              "UploadDate": "2013-06-06T21:40:08Z",
+              "UserName": "Bob"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following command lists the signing certificates for the IAM user named Bob.",
+        "id": "b4c10256-4fc9-457e-b3fd-4a110d4d73dc",
+        "title": "To list the signing certificates for an IAM user"
+      }
+    ],
+    "ListUserTags": [
+      {
+        "input": {
+          "UserName": "anika"
+        },
+        "output": {
+          "IsTruncated": false,
+          "Tags": [
+            {
+              "Key": "Dept",
+              "Value": "12345"
+            },
+            {
+              "Key": "Team",
+              "Value": "Accounting"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows how to list the tags attached to a user.",
+        "id": "to-list-the-tags-attached-to-an-iam-user-1506719473186",
+        "title": "To list the tags attached to an IAM user"
+      }
+    ],
+    "ListUsers": [
+      {
+        "input": {
+        },
+        "output": {
+          "Users": [
+            {
+              "Arn": "arn:aws:iam::123456789012:user/division_abc/subdivision_xyz/engineering/Juan",
+              "CreateDate": "2012-09-05T19:38:48Z",
+              "PasswordLastUsed": "2016-09-08T21:47:36Z",
+              "Path": "/division_abc/subdivision_xyz/engineering/",
+              "UserId": "AID2MAB8DPLSRHEXAMPLE",
+              "UserName": "Juan"
+            },
+            {
+              "Arn": "arn:aws:iam::123456789012:user/division_abc/subdivision_xyz/engineering/Anika",
+              "CreateDate": "2014-04-09T15:43:45Z",
+              "PasswordLastUsed": "2016-09-24T16:18:07Z",
+              "Path": "/division_abc/subdivision_xyz/engineering/",
+              "UserId": "AIDIODR4TAW7CSEXAMPLE",
+              "UserName": "Anika"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following command lists the IAM users in the current account.",
+        "id": "9edfbd73-03d8-4d8a-9a79-76c85e8c8298",
+        "title": "To list IAM users"
+      }
+    ],
+    "ListVirtualMFADevices": [
+      {
+        "input": {
+        },
+        "output": {
+          "VirtualMFADevices": [
+            {
+              "SerialNumber": "arn:aws:iam::123456789012:mfa/ExampleMFADevice"
+            },
+            {
+              "SerialNumber": "arn:aws:iam::123456789012:mfa/Juan"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following command lists the virtual MFA devices that have been configured for the current account.",
+        "id": "54f9ac18-5100-4070-bec4-fe5f612710d5",
+        "title": "To list virtual MFA devices"
+      }
+    ],
+    "PutGroupPolicy": [
+      {
+        "input": {
+          "GroupName": "Admins",
+          "PolicyDocument": "{\"Version\":\"2012-10-17\",\"Statement\":{\"Effect\":\"Allow\",\"Action\":\"*\",\"Resource\":\"*\"}}",
+          "PolicyName": "AllPerms"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following command adds a policy named AllPerms to the IAM group named Admins.",
+        "id": "4bc17418-758f-4d0f-ab0c-4d00265fec2e",
+        "title": "To add a policy to a group"
+      }
+    ],
+    "PutRolePolicy": [
+      {
+        "input": {
+          "PolicyDocument": "{\"Version\":\"2012-10-17\",\"Statement\":{\"Effect\":\"Allow\",\"Action\":\"s3:*\",\"Resource\":\"*\"}}",
+          "PolicyName": "S3AccessPolicy",
+          "RoleName": "S3Access"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following command adds a permissions policy to the role named Test-Role.",
+        "id": "de62fd00-46c7-4601-9e0d-71d5fbb11ecb",
+        "title": "To attach a permissions policy to an IAM role"
+      }
+    ],
+    "PutUserPolicy": [
+      {
+        "input": {
+          "PolicyDocument": "{\"Version\":\"2012-10-17\",\"Statement\":{\"Effect\":\"Allow\",\"Action\":\"*\",\"Resource\":\"*\"}}",
+          "PolicyName": "AllAccessPolicy",
+          "UserName": "Bob"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following command attaches a policy to the IAM user named Bob.",
+        "id": "2551ffc6-3576-4d39-823f-30b60bffc2c7",
+        "title": "To attach a policy to an IAM user"
+      }
+    ],
+    "RemoveRoleFromInstanceProfile": [
+      {
+        "input": {
+          "InstanceProfileName": "ExampleInstanceProfile",
+          "RoleName": "Test-Role"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following command removes the role named Test-Role from the instance profile named ExampleInstanceProfile.",
+        "id": "6d9f46f1-9f4a-4873-b403-51a85c5c627c",
+        "title": "To remove a role from an instance profile"
+      }
+    ],
+    "RemoveUserFromGroup": [
+      {
+        "input": {
+          "GroupName": "Admins",
+          "UserName": "Bob"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following command removes the user named Bob from the IAM group named Admins.",
+        "id": "fb54d5b4-0caf-41d8-af0e-10a84413f174",
+        "title": "To remove a user from an IAM group"
+      }
+    ],
+    "SetSecurityTokenServicePreferences": [
+      {
+        "input": {
+          "GlobalEndpointTokenVersion": "v2Token"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following command sets the STS global endpoint token to version 2. Version 2 tokens are valid in all Regions.",
+        "id": "61a785a7-d30a-415a-ae18-ab9236e56871",
+        "title": "To delete an access key for an IAM user"
+      }
+    ],
+    "TagRole": [
+      {
+        "input": {
+          "RoleName": "taggedrole",
+          "Tags": [
+            {
+              "Key": "Dept",
+              "Value": "Accounting"
+            },
+            {
+              "Key": "CostCenter",
+              "Value": "12345"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows how to add tags to an existing role.",
+        "id": "to-add-a-tag-key-and-value-to-an-iam-role-1506718791513",
+        "title": "To add a tag key and value to an IAM role"
+      }
+    ],
+    "TagUser": [
+      {
+        "input": {
+          "Tags": [
+            {
+              "Key": "Dept",
+              "Value": "Accounting"
+            },
+            {
+              "Key": "CostCenter",
+              "Value": "12345"
+            }
+          ],
+          "UserName": "anika"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows how to add tags to an existing user.",
+        "id": "to-add-a-tag-key-and-value-to-an-iam-user-1506719044227",
+        "title": "To add a tag key and value to an IAM user"
+      }
+    ],
+    "UntagRole": [
+      {
+        "input": {
+          "RoleName": "taggedrole",
+          "TagKeys": [
+            "Dept"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows how to remove a tag with the key 'Dept' from a role named 'taggedrole'.",
+        "id": "to-remove-a-tag-from-an-iam-role-1506719589943",
+        "title": "To remove a tag from an IAM role"
+      }
+    ],
+    "UntagUser": [
+      {
+        "input": {
+          "TagKeys": [
+            "Dept"
+          ],
+          "UserName": "anika"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows how to remove tags that are attached to a user named 'anika'.",
+        "id": "to-remove-a-tag-from-an-iam-user-1506719725554",
+        "title": "To remove a tag from an IAM user"
+      }
+    ],
+    "UpdateAccessKey": [
+      {
+        "input": {
+          "AccessKeyId": "AKIAIOSFODNN7EXAMPLE",
+          "Status": "Inactive",
+          "UserName": "Bob"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following command deactivates the specified access key (access key ID and secret access key) for the IAM user named Bob.",
+        "id": "02b556fd-e673-49b7-ab6b-f2f9035967d0",
+        "title": "To activate or deactivate an access key for an IAM user"
+      }
+    ],
+    "UpdateAccountPasswordPolicy": [
+      {
+        "input": {
+          "MinimumPasswordLength": 8,
+          "RequireNumbers": true
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following command sets the password policy to require a minimum length of eight characters and to require one or more numbers in the password:",
+        "id": "c263a1af-37dc-4423-8dba-9790284ef5e0",
+        "title": "To set or change the current account password policy"
+      }
+    ],
+    "UpdateAssumeRolePolicy": [
+      {
+        "input": {
+          "PolicyDocument": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"ec2.amazonaws.com\"]},\"Action\":[\"sts:AssumeRole\"]}]}",
+          "RoleName": "S3AccessForEC2Instances"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following command updates the role trust policy for the role named Test-Role:",
+        "id": "c9150063-d953-4e99-9576-9685872006c6",
+        "title": "To update the trust policy for an IAM role"
+      }
+    ],
+    "UpdateGroup": [
+      {
+        "input": {
+          "GroupName": "Test",
+          "NewGroupName": "Test-1"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following command changes the name of the IAM group Test to Test-1.",
+        "id": "f0cf1662-91ae-4278-a80e-7db54256ccba",
+        "title": "To rename an IAM group"
+      }
+    ],
+    "UpdateLoginProfile": [
+      {
+        "input": {
+          "Password": "SomeKindOfPassword123!@#",
+          "UserName": "Bob"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following command creates or changes the password for the IAM user named Bob.",
+        "id": "036d9498-ecdb-4ed6-a8d8-366c383d1487",
+        "title": "To change the password for an IAM user"
+      }
+    ],
+    "UpdateSigningCertificate": [
+      {
+        "input": {
+          "CertificateId": "TA7SMP42TDN5Z26OBPJE7EXAMPLE",
+          "Status": "Inactive",
+          "UserName": "Bob"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following command changes the status of a signing certificate for a user named Bob to Inactive.",
+        "id": "829aee7b-efc5-4b3b-84a5-7f899b38018d",
+        "title": "To change the active status of a signing certificate for an IAM user"
+      }
+    ],
+    "UpdateUser": [
+      {
+        "input": {
+          "NewUserName": "Robert",
+          "UserName": "Bob"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following command changes the name of the IAM user Bob to Robert. It does not change the user's path.",
+        "id": "275d53ed-347a-44e6-b7d0-a96276154352",
+        "title": "To change an IAM user's name"
+      }
+    ],
+    "UploadServerCertificate": [
+      {
+        "input": {
+          "CertificateBody": "-----BEGIN CERTIFICATE-----<a very long certificate text string>-----END CERTIFICATE-----",
+          "Path": "/company/servercerts/",
+          "PrivateKey": "-----BEGIN DSA PRIVATE KEY-----<a very long private key string>-----END DSA PRIVATE KEY-----",
+          "ServerCertificateName": "ProdServerCert"
+        },
+        "output": {
+          "ServerCertificateMetadata": {
+            "Arn": "arn:aws:iam::123456789012:server-certificate/company/servercerts/ProdServerCert",
+            "Expiration": "2012-05-08T01:02:03.004Z",
+            "Path": "/company/servercerts/",
+            "ServerCertificateId": "ASCA1111111111EXAMPLE",
+            "ServerCertificateName": "ProdServerCert",
+            "UploadDate": "2010-05-08T01:02:03.004Z"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following upload-server-certificate command uploads a server certificate to your AWS account:",
+        "id": "06eab6d1-ebf2-4bd9-839d-f7508b9a38b6",
+        "title": "To upload a server certificate to your AWS account"
+      }
+    ],
+    "UploadSigningCertificate": [
+      {
+        "input": {
+          "CertificateBody": "-----BEGIN CERTIFICATE-----<certificate-body>-----END CERTIFICATE-----",
+          "UserName": "Bob"
+        },
+        "output": {
+          "Certificate": {
+            "CertificateBody": "-----BEGIN CERTIFICATE-----<certificate-body>-----END CERTIFICATE-----",
+            "CertificateId": "ID123456789012345EXAMPLE",
+            "Status": "Active",
+            "UploadDate": "2015-06-06T21:40:08.121Z",
+            "UserName": "Bob"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following command uploads a signing certificate for the IAM user named Bob.",
+        "id": "e67489b6-7b73-4e30-9ed3-9a9e0231e458",
+        "title": "To upload a signing certificate for an IAM user"
+      }
+    ]
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/iam/2010-05-08/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/iam/2010-05-08/paginators-1.json
new file mode 100644
index 00000000..91c09a21
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iam/2010-05-08/paginators-1.json
@@ -0,0 +1,254 @@
+{
+  "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",
+      "non_aggregate_keys": [
+        "Group"
+      ]
+    },
+    "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"
+    },
+    "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"
+    },
+    "ListSSHPublicKeys": {
+      "input_token": "Marker",
+      "limit_key": "MaxItems",
+      "more_results": "IsTruncated",
+      "output_token": "Marker",
+      "result_key": "SSHPublicKeys"
+    },
+    "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"
+    },
+    "ListUserTags": {
+      "input_token": "Marker",
+      "limit_key": "MaxItems",
+      "more_results": "IsTruncated",
+      "output_token": "Marker",
+      "result_key": "Tags"
+    },
+    "ListInstanceProfileTags": {
+      "input_token": "Marker",
+      "limit_key": "MaxItems",
+      "more_results": "IsTruncated",
+      "output_token": "Marker",
+      "result_key": "Tags"
+    },
+    "ListMFADeviceTags": {
+      "input_token": "Marker",
+      "limit_key": "MaxItems",
+      "more_results": "IsTruncated",
+      "output_token": "Marker",
+      "result_key": "Tags"
+    },
+    "ListOpenIDConnectProviderTags": {
+      "input_token": "Marker",
+      "limit_key": "MaxItems",
+      "more_results": "IsTruncated",
+      "output_token": "Marker",
+      "result_key": "Tags"
+    },
+    "ListPolicyTags": {
+      "input_token": "Marker",
+      "limit_key": "MaxItems",
+      "more_results": "IsTruncated",
+      "output_token": "Marker",
+      "result_key": "Tags"
+    },
+    "ListRoleTags": {
+      "input_token": "Marker",
+      "limit_key": "MaxItems",
+      "more_results": "IsTruncated",
+      "output_token": "Marker",
+      "result_key": "Tags"
+    },
+    "ListSAMLProviderTags": {
+      "input_token": "Marker",
+      "limit_key": "MaxItems",
+      "more_results": "IsTruncated",
+      "output_token": "Marker",
+      "result_key": "Tags"
+    },
+    "ListServerCertificateTags": {
+      "input_token": "Marker",
+      "limit_key": "MaxItems",
+      "more_results": "IsTruncated",
+      "output_token": "Marker",
+      "result_key": "Tags"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/iam/2010-05-08/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/iam/2010-05-08/service-2.json.gz
new file mode 100644
index 00000000..ae441c4e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iam/2010-05-08/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/iam/2010-05-08/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/iam/2010-05-08/waiters-2.json
new file mode 100644
index 00000000..62480415
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iam/2010-05-08/waiters-2.json
@@ -0,0 +1,73 @@
+{
+  "version": 2,
+  "waiters": {
+    "InstanceProfileExists": {
+      "delay": 1,
+      "operation": "GetInstanceProfile",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": 200,
+          "matcher": "status",
+          "state": "success"
+        },
+        {
+          "state": "retry",
+          "matcher": "status",
+          "expected": 404
+        }
+      ]
+    },
+    "UserExists": {
+      "delay": 1,
+      "operation": "GetUser",
+      "maxAttempts": 20,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "status",
+          "expected": 200
+        },
+        {
+          "state": "retry",
+          "matcher": "error",
+          "expected": "NoSuchEntity"
+        }
+      ]
+    },
+    "RoleExists": {
+      "delay": 1,
+      "operation": "GetRole",
+      "maxAttempts": 20,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "status",
+          "expected": 200
+        },
+        {
+          "state": "retry",
+          "matcher": "error",
+          "expected": "NoSuchEntity"
+        }
+      ]
+    },
+    "PolicyExists": {
+      "delay": 1,
+      "operation": "GetPolicy",
+      "maxAttempts": 20,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "status",
+          "expected": 200
+        },
+        {
+          "state": "retry",
+          "matcher": "error",
+          "expected": "NoSuchEntity"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/identitystore/2020-06-15/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/identitystore/2020-06-15/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..6e7f6510
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/identitystore/2020-06-15/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/identitystore/2020-06-15/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/identitystore/2020-06-15/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/identitystore/2020-06-15/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/identitystore/2020-06-15/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/identitystore/2020-06-15/paginators-1.json
new file mode 100644
index 00000000..766e7c46
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/identitystore/2020-06-15/paginators-1.json
@@ -0,0 +1,28 @@
+{
+  "pagination": {
+    "ListGroupMemberships": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "GroupMemberships"
+    },
+    "ListGroupMembershipsForMember": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "GroupMemberships"
+    },
+    "ListGroups": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Groups"
+    },
+    "ListUsers": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Users"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/identitystore/2020-06-15/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/identitystore/2020-06-15/service-2.json.gz
new file mode 100644
index 00000000..42dd37f5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/identitystore/2020-06-15/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/imagebuilder/2019-12-02/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/imagebuilder/2019-12-02/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..60c4108a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/imagebuilder/2019-12-02/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/imagebuilder/2019-12-02/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/imagebuilder/2019-12-02/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/imagebuilder/2019-12-02/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/imagebuilder/2019-12-02/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/imagebuilder/2019-12-02/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/imagebuilder/2019-12-02/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/imagebuilder/2019-12-02/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/imagebuilder/2019-12-02/service-2.json.gz
new file mode 100644
index 00000000..ee574d74
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/imagebuilder/2019-12-02/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/importexport/2010-06-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/importexport/2010-06-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..7fc87ff9
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/importexport/2010-06-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/importexport/2010-06-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/importexport/2010-06-01/paginators-1.json
new file mode 100644
index 00000000..702385ea
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/importexport/2010-06-01/paginators-1.json
@@ -0,0 +1,11 @@
+{
+  "pagination": {
+    "ListJobs": {
+      "input_token": "Marker",
+      "output_token": "Jobs[-1].JobId",
+      "more_results": "IsTruncated",
+      "limit_key": "MaxJobs",
+      "result_key": "Jobs"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/importexport/2010-06-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/importexport/2010-06-01/service-2.json.gz
new file mode 100644
index 00000000..9d422555
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/importexport/2010-06-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/inspector-scan/2023-08-08/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/inspector-scan/2023-08-08/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..12ea8016
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/inspector-scan/2023-08-08/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/inspector-scan/2023-08-08/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/inspector-scan/2023-08-08/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/inspector-scan/2023-08-08/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/inspector-scan/2023-08-08/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/inspector-scan/2023-08-08/service-2.json.gz
new file mode 100644
index 00000000..b3900e14
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/inspector-scan/2023-08-08/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/inspector/2015-08-18/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/inspector/2015-08-18/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..777e0611
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/inspector/2015-08-18/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/inspector/2015-08-18/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/inspector/2015-08-18/service-2.json.gz
new file mode 100644
index 00000000..3f50f7a9
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/inspector/2015-08-18/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/inspector/2016-02-16/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/inspector/2016-02-16/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..14cf1a5a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/inspector/2016-02-16/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/inspector/2016-02-16/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/inspector/2016-02-16/examples-1.json
new file mode 100644
index 00000000..05b541f0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/inspector/2016-02-16/examples-1.json
@@ -0,0 +1,1148 @@
+{
+  "version": "1.0",
+  "examples": {
+    "AddAttributesToFindings": [
+      {
+        "input": {
+          "attributes": [
+            {
+              "key": "Example",
+              "value": "example"
+            }
+          ],
+          "findingArns": [
+            "arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq/template/0-8l1VIE0D/run/0-Z02cjjug/finding/0-T8yM9mEU"
+          ]
+        },
+        "output": {
+          "failedItems": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Assigns attributes (key and value pairs) to the findings that are specified by the ARNs of the findings.",
+        "id": "add-attributes-to-findings-1481063856401",
+        "title": "Add attributes to findings"
+      }
+    ],
+    "CreateAssessmentTarget": [
+      {
+        "input": {
+          "assessmentTargetName": "ExampleAssessmentTarget",
+          "resourceGroupArn": "arn:aws:inspector:us-west-2:123456789012:resourcegroup/0-AB6DMKnv"
+        },
+        "output": {
+          "assessmentTargetArn": "arn:aws:inspector:us-west-2:123456789012:target/0-nvgVhaxX"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Creates a new assessment target using the ARN of the resource group that is generated by CreateResourceGroup. You can create up to 50 assessment targets per AWS account. You can run up to 500 concurrent agents per AWS account.",
+        "id": "create-assessment-target-1481063953657",
+        "title": "Create assessment target"
+      }
+    ],
+    "CreateAssessmentTemplate": [
+      {
+        "input": {
+          "assessmentTargetArn": "arn:aws:inspector:us-west-2:123456789012:target/0-nvgVhaxX",
+          "assessmentTemplateName": "ExampleAssessmentTemplate",
+          "durationInSeconds": 180,
+          "rulesPackageArns": [
+            "arn:aws:inspector:us-west-2:758058086616:rulespackage/0-11B9DBXp"
+          ],
+          "userAttributesForFindings": [
+            {
+              "key": "Example",
+              "value": "example"
+            }
+          ]
+        },
+        "output": {
+          "assessmentTemplateArn": "arn:aws:inspector:us-west-2:123456789012:target/0-nvgVhaxX/template/0-it5r2S4T"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Creates an assessment template for the assessment target that is specified by the ARN of the assessment target.",
+        "id": "create-assessment-template-1481064046719",
+        "title": "Create assessment template"
+      }
+    ],
+    "CreateResourceGroup": [
+      {
+        "input": {
+          "resourceGroupTags": [
+            {
+              "key": "Name",
+              "value": "example"
+            }
+          ]
+        },
+        "output": {
+          "resourceGroupArn": "arn:aws:inspector:us-west-2:123456789012:resourcegroup/0-AB6DMKnv"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Creates a resource group using the specified set of tags (key and value pairs) that are used to select the EC2 instances to be included in an Amazon Inspector assessment target. The created resource group is then used to create an Amazon Inspector assessment target. ",
+        "id": "create-resource-group-1481064169037",
+        "title": "Create resource group"
+      }
+    ],
+    "DeleteAssessmentRun": [
+      {
+        "input": {
+          "assessmentRunArn": "arn:aws:inspector:us-west-2:123456789012:target/0-nvgVhaxX/template/0-it5r2S4T/run/0-11LMTAVe"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Deletes the assessment run that is specified by the ARN of the assessment run.",
+        "id": "delete-assessment-run-1481064251629",
+        "title": "Delete assessment run"
+      }
+    ],
+    "DeleteAssessmentTarget": [
+      {
+        "input": {
+          "assessmentTargetArn": "arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Deletes the assessment target that is specified by the ARN of the assessment target.",
+        "id": "delete-assessment-target-1481064309029",
+        "title": "Delete assessment target"
+      }
+    ],
+    "DeleteAssessmentTemplate": [
+      {
+        "input": {
+          "assessmentTemplateArn": "arn:aws:inspector:us-west-2:123456789012:target/0-nvgVhaxX/template/0-it5r2S4T"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Deletes the assessment template that is specified by the ARN of the assessment template.",
+        "id": "delete-assessment-template-1481064364074",
+        "title": "Delete assessment template"
+      }
+    ],
+    "DescribeAssessmentRuns": [
+      {
+        "input": {
+          "assessmentRunArns": [
+            "arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq/template/0-4r1V2mAw/run/0-MKkpXXPE"
+          ]
+        },
+        "output": {
+          "assessmentRuns": [
+            {
+              "name": "Run 1 for ExampleAssessmentTemplate",
+              "arn": "arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq/template/0-4r1V2mAw/run/0-MKkpXXPE",
+              "assessmentTemplateArn": "arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq/template/0-4r1V2mAw",
+              "completedAt": "1458680301.4",
+              "createdAt": "1458680170.035",
+              "dataCollected": true,
+              "durationInSeconds": 3600,
+              "findingCounts": {
+                "High": 14,
+                "Informational": 0,
+                "Low": 0,
+                "Medium": 2,
+                "Undefined": 0
+              },
+              "notifications": [
+
+              ],
+              "rulesPackageArns": [
+                "arn:aws:inspector:us-west-2:758058086616:rulespackage/0-X1KXtawP"
+              ],
+              "startedAt": "1458680170.161",
+              "state": "COMPLETED",
+              "stateChangedAt": "1458680301.4",
+              "stateChanges": [
+                {
+                  "state": "CREATED",
+                  "stateChangedAt": "1458680170.035"
+                },
+                {
+                  "state": "START_DATA_COLLECTION_PENDING",
+                  "stateChangedAt": "1458680170.065"
+                },
+                {
+                  "state": "START_DATA_COLLECTION_IN_PROGRESS",
+                  "stateChangedAt": "1458680170.096"
+                },
+                {
+                  "state": "COLLECTING_DATA",
+                  "stateChangedAt": "1458680170.161"
+                },
+                {
+                  "state": "STOP_DATA_COLLECTION_PENDING",
+                  "stateChangedAt": "1458680239.883"
+                },
+                {
+                  "state": "DATA_COLLECTED",
+                  "stateChangedAt": "1458680299.847"
+                },
+                {
+                  "state": "EVALUATING_RULES",
+                  "stateChangedAt": "1458680300.099"
+                },
+                {
+                  "state": "COMPLETED",
+                  "stateChangedAt": "1458680301.4"
+                }
+              ],
+              "userAttributesForFindings": [
+
+              ]
+            }
+          ],
+          "failedItems": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Describes the assessment runs that are specified by the ARNs of the assessment runs.",
+        "id": "describte-assessment-runs-1481064424352",
+        "title": "Describte assessment runs"
+      }
+    ],
+    "DescribeAssessmentTargets": [
+      {
+        "input": {
+          "assessmentTargetArns": [
+            "arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq"
+          ]
+        },
+        "output": {
+          "assessmentTargets": [
+            {
+              "name": "ExampleAssessmentTarget",
+              "arn": "arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq",
+              "createdAt": "1458074191.459",
+              "resourceGroupArn": "arn:aws:inspector:us-west-2:123456789012:resourcegroup/0-PyGXopAI",
+              "updatedAt": "1458074191.459"
+            }
+          ],
+          "failedItems": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Describes the assessment targets that are specified by the ARNs of the assessment targets.",
+        "id": "describte-assessment-targets-1481064527735",
+        "title": "Describte assessment targets"
+      }
+    ],
+    "DescribeAssessmentTemplates": [
+      {
+        "input": {
+          "assessmentTemplateArns": [
+            "arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq/template/0-4r1V2mAw"
+          ]
+        },
+        "output": {
+          "assessmentTemplates": [
+            {
+              "name": "ExampleAssessmentTemplate",
+              "arn": "arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq/template/0-4r1V2mAw",
+              "assessmentRunCount": 0,
+              "assessmentTargetArn": "arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq",
+              "createdAt": "1458074191.844",
+              "durationInSeconds": 3600,
+              "rulesPackageArns": [
+                "arn:aws:inspector:us-west-2:758058086616:rulespackage/0-X1KXtawP"
+              ],
+              "userAttributesForFindings": [
+
+              ]
+            }
+          ],
+          "failedItems": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Describes the assessment templates that are specified by the ARNs of the assessment templates.",
+        "id": "describte-assessment-templates-1481064606829",
+        "title": "Describte assessment templates"
+      }
+    ],
+    "DescribeCrossAccountAccessRole": [
+      {
+        "output": {
+          "registeredAt": "1458069182.826",
+          "roleArn": "arn:aws:iam::123456789012:role/inspector",
+          "valid": true
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Describes the IAM role that enables Amazon Inspector to access your AWS account.",
+        "id": "describte-cross-account-access-role-1481064682267",
+        "title": "Describte cross account access role"
+      }
+    ],
+    "DescribeFindings": [
+      {
+        "input": {
+          "findingArns": [
+            "arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq/template/0-4r1V2mAw/run/0-MKkpXXPE/finding/0-HwPnsDm4"
+          ]
+        },
+        "output": {
+          "failedItems": {
+          },
+          "findings": [
+            {
+              "arn": "arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq/template/0-4r1V2mAw/run/0-MKkpXXPE/finding/0-HwPnsDm4",
+              "assetAttributes": {
+                "ipv4Addresses": [
+
+                ],
+                "schemaVersion": 1
+              },
+              "assetType": "ec2-instance",
+              "attributes": [
+
+              ],
+              "confidence": 10,
+              "createdAt": "1458680301.37",
+              "description": "Amazon Inspector did not find any potential security issues during this assessment.",
+              "indicatorOfCompromise": false,
+              "numericSeverity": 0,
+              "recommendation": "No remediation needed.",
+              "schemaVersion": 1,
+              "service": "Inspector",
+              "serviceAttributes": {
+                "assessmentRunArn": "arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq/template/0-4r1V2mAw/run/0-MKkpXXPE",
+                "rulesPackageArn": "arn:aws:inspector:us-west-2:758058086616:rulespackage/0-X1KXtawP",
+                "schemaVersion": 1
+              },
+              "severity": "Informational",
+              "title": "No potential security issues found",
+              "updatedAt": "1458680301.37",
+              "userAttributes": [
+
+              ]
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Describes the findings that are specified by the ARNs of the findings.",
+        "id": "describte-findings-1481064771803",
+        "title": "Describe findings"
+      }
+    ],
+    "DescribeResourceGroups": [
+      {
+        "input": {
+          "resourceGroupArns": [
+            "arn:aws:inspector:us-west-2:123456789012:resourcegroup/0-PyGXopAI"
+          ]
+        },
+        "output": {
+          "failedItems": {
+          },
+          "resourceGroups": [
+            {
+              "arn": "arn:aws:inspector:us-west-2:123456789012:resourcegroup/0-PyGXopAI",
+              "createdAt": "1458074191.098",
+              "tags": [
+                {
+                  "key": "Name",
+                  "value": "example"
+                }
+              ]
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Describes the resource groups that are specified by the ARNs of the resource groups.",
+        "id": "describe-resource-groups-1481065787743",
+        "title": "Describe resource groups"
+      }
+    ],
+    "DescribeRulesPackages": [
+      {
+        "input": {
+          "rulesPackageArns": [
+            "arn:aws:inspector:us-west-2:758058086616:rulespackage/0-JJOtZiqQ"
+          ]
+        },
+        "output": {
+          "failedItems": {
+          },
+          "rulesPackages": [
+            {
+              "version": "1.1",
+              "name": "Security Best Practices",
+              "arn": "arn:aws:inspector:us-west-2:758058086616:rulespackage/0-JJOtZiqQ",
+              "description": "The rules in this package help determine whether your systems are configured securely.",
+              "provider": "Amazon Web Services, Inc."
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Describes the rules packages that are specified by the ARNs of the rules packages.",
+        "id": "describe-rules-packages-1481069641979",
+        "title": "Describe rules packages"
+      }
+    ],
+    "GetTelemetryMetadata": [
+      {
+        "input": {
+          "assessmentRunArn": "arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq/template/0-4r1V2mAw/run/0-MKkpXXPE"
+        },
+        "output": {
+          "telemetryMetadata": [
+            {
+              "count": 2,
+              "dataSize": 345,
+              "messageType": "InspectorDuplicateProcess"
+            },
+            {
+              "count": 3,
+              "dataSize": 255,
+              "messageType": "InspectorTimeEventMsg"
+            },
+            {
+              "count": 4,
+              "dataSize": 1082,
+              "messageType": "InspectorNetworkInterface"
+            },
+            {
+              "count": 2,
+              "dataSize": 349,
+              "messageType": "InspectorDnsEntry"
+            },
+            {
+              "count": 11,
+              "dataSize": 2514,
+              "messageType": "InspectorDirectoryInfoMsg"
+            },
+            {
+              "count": 1,
+              "dataSize": 179,
+              "messageType": "InspectorTcpV6ListeningPort"
+            },
+            {
+              "count": 101,
+              "dataSize": 10949,
+              "messageType": "InspectorTerminal"
+            },
+            {
+              "count": 26,
+              "dataSize": 5916,
+              "messageType": "InspectorUser"
+            },
+            {
+              "count": 282,
+              "dataSize": 32148,
+              "messageType": "InspectorDynamicallyLoadedCodeModule"
+            },
+            {
+              "count": 18,
+              "dataSize": 10172,
+              "messageType": "InspectorCreateProcess"
+            },
+            {
+              "count": 3,
+              "dataSize": 8001,
+              "messageType": "InspectorProcessPerformance"
+            },
+            {
+              "count": 1,
+              "dataSize": 360,
+              "messageType": "InspectorOperatingSystem"
+            },
+            {
+              "count": 6,
+              "dataSize": 546,
+              "messageType": "InspectorStopProcess"
+            },
+            {
+              "count": 1,
+              "dataSize": 1553,
+              "messageType": "InspectorInstanceMetaData"
+            },
+            {
+              "count": 2,
+              "dataSize": 434,
+              "messageType": "InspectorTcpV4Connection"
+            },
+            {
+              "count": 474,
+              "dataSize": 2960322,
+              "messageType": "InspectorPackageInfo"
+            },
+            {
+              "count": 3,
+              "dataSize": 2235,
+              "messageType": "InspectorSystemPerformance"
+            },
+            {
+              "count": 105,
+              "dataSize": 46048,
+              "messageType": "InspectorCodeModule"
+            },
+            {
+              "count": 1,
+              "dataSize": 182,
+              "messageType": "InspectorUdpV6ListeningPort"
+            },
+            {
+              "count": 2,
+              "dataSize": 371,
+              "messageType": "InspectorUdpV4ListeningPort"
+            },
+            {
+              "count": 18,
+              "dataSize": 8362,
+              "messageType": "InspectorKernelModule"
+            },
+            {
+              "count": 29,
+              "dataSize": 48788,
+              "messageType": "InspectorConfigurationInfo"
+            },
+            {
+              "count": 1,
+              "dataSize": 79,
+              "messageType": "InspectorMonitoringStart"
+            },
+            {
+              "count": 5,
+              "dataSize": 0,
+              "messageType": "InspectorSplitMsgBegin"
+            },
+            {
+              "count": 51,
+              "dataSize": 4593,
+              "messageType": "InspectorGroup"
+            },
+            {
+              "count": 1,
+              "dataSize": 184,
+              "messageType": "InspectorTcpV4ListeningPort"
+            },
+            {
+              "count": 1159,
+              "dataSize": 3146579,
+              "messageType": "Total"
+            },
+            {
+              "count": 5,
+              "dataSize": 0,
+              "messageType": "InspectorSplitMsgEnd"
+            },
+            {
+              "count": 1,
+              "dataSize": 612,
+              "messageType": "InspectorLoadImageInProcess"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Information about the data that is collected for the specified assessment run.",
+        "id": "get-telemetry-metadata-1481066021297",
+        "title": "Get telemetry metadata"
+      }
+    ],
+    "ListAssessmentRunAgents": [
+      {
+        "input": {
+          "assessmentRunArn": "arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq/template/0-4r1V2mAw/run/0-MKkpXXPE",
+          "maxResults": 123
+        },
+        "output": {
+          "assessmentRunAgents": [
+            {
+              "agentHealth": "HEALTHY",
+              "agentHealthCode": "RUNNING",
+              "agentId": "i-49113b93",
+              "assessmentRunArn": "arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq/template/0-4r1V2mAw/run/0-MKkpXXPE",
+              "telemetryMetadata": [
+                {
+                  "count": 2,
+                  "dataSize": 345,
+                  "messageType": "InspectorDuplicateProcess"
+                },
+                {
+                  "count": 3,
+                  "dataSize": 255,
+                  "messageType": "InspectorTimeEventMsg"
+                },
+                {
+                  "count": 4,
+                  "dataSize": 1082,
+                  "messageType": "InspectorNetworkInterface"
+                },
+                {
+                  "count": 2,
+                  "dataSize": 349,
+                  "messageType": "InspectorDnsEntry"
+                },
+                {
+                  "count": 11,
+                  "dataSize": 2514,
+                  "messageType": "InspectorDirectoryInfoMsg"
+                },
+                {
+                  "count": 1,
+                  "dataSize": 179,
+                  "messageType": "InspectorTcpV6ListeningPort"
+                },
+                {
+                  "count": 101,
+                  "dataSize": 10949,
+                  "messageType": "InspectorTerminal"
+                },
+                {
+                  "count": 26,
+                  "dataSize": 5916,
+                  "messageType": "InspectorUser"
+                },
+                {
+                  "count": 282,
+                  "dataSize": 32148,
+                  "messageType": "InspectorDynamicallyLoadedCodeModule"
+                },
+                {
+                  "count": 18,
+                  "dataSize": 10172,
+                  "messageType": "InspectorCreateProcess"
+                },
+                {
+                  "count": 3,
+                  "dataSize": 8001,
+                  "messageType": "InspectorProcessPerformance"
+                },
+                {
+                  "count": 1,
+                  "dataSize": 360,
+                  "messageType": "InspectorOperatingSystem"
+                },
+                {
+                  "count": 6,
+                  "dataSize": 546,
+                  "messageType": "InspectorStopProcess"
+                },
+                {
+                  "count": 1,
+                  "dataSize": 1553,
+                  "messageType": "InspectorInstanceMetaData"
+                },
+                {
+                  "count": 2,
+                  "dataSize": 434,
+                  "messageType": "InspectorTcpV4Connection"
+                },
+                {
+                  "count": 474,
+                  "dataSize": 2960322,
+                  "messageType": "InspectorPackageInfo"
+                },
+                {
+                  "count": 3,
+                  "dataSize": 2235,
+                  "messageType": "InspectorSystemPerformance"
+                },
+                {
+                  "count": 105,
+                  "dataSize": 46048,
+                  "messageType": "InspectorCodeModule"
+                },
+                {
+                  "count": 1,
+                  "dataSize": 182,
+                  "messageType": "InspectorUdpV6ListeningPort"
+                },
+                {
+                  "count": 2,
+                  "dataSize": 371,
+                  "messageType": "InspectorUdpV4ListeningPort"
+                },
+                {
+                  "count": 18,
+                  "dataSize": 8362,
+                  "messageType": "InspectorKernelModule"
+                },
+                {
+                  "count": 29,
+                  "dataSize": 48788,
+                  "messageType": "InspectorConfigurationInfo"
+                },
+                {
+                  "count": 1,
+                  "dataSize": 79,
+                  "messageType": "InspectorMonitoringStart"
+                },
+                {
+                  "count": 5,
+                  "dataSize": 0,
+                  "messageType": "InspectorSplitMsgBegin"
+                },
+                {
+                  "count": 51,
+                  "dataSize": 4593,
+                  "messageType": "InspectorGroup"
+                },
+                {
+                  "count": 1,
+                  "dataSize": 184,
+                  "messageType": "InspectorTcpV4ListeningPort"
+                },
+                {
+                  "count": 1159,
+                  "dataSize": 3146579,
+                  "messageType": "Total"
+                },
+                {
+                  "count": 5,
+                  "dataSize": 0,
+                  "messageType": "InspectorSplitMsgEnd"
+                },
+                {
+                  "count": 1,
+                  "dataSize": 612,
+                  "messageType": "InspectorLoadImageInProcess"
+                }
+              ]
+            }
+          ],
+          "nextToken": "1"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Lists the agents of the assessment runs that are specified by the ARNs of the assessment runs.",
+        "id": "list-assessment-run-agents-1481918140642",
+        "title": "List assessment run agents"
+      }
+    ],
+    "ListAssessmentRuns": [
+      {
+        "input": {
+          "assessmentTemplateArns": [
+            "arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq/template/0-4r1V2mAw"
+          ],
+          "maxResults": 123
+        },
+        "output": {
+          "assessmentRunArns": [
+            "arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq/template/0-4r1V2mAw/run/0-MKkpXXPE",
+            "arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq/template/0-4r1V2mAw/run/0-v5D6fI3v"
+          ],
+          "nextToken": "1"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Lists the assessment runs that correspond to the assessment templates that are specified by the ARNs of the assessment templates.",
+        "id": "list-assessment-runs-1481066340844",
+        "title": "List assessment runs"
+      }
+    ],
+    "ListAssessmentTargets": [
+      {
+        "input": {
+          "maxResults": 123
+        },
+        "output": {
+          "assessmentTargetArns": [
+            "arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq"
+          ],
+          "nextToken": "1"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Lists the ARNs of the assessment targets within this AWS account. ",
+        "id": "list-assessment-targets-1481066540849",
+        "title": "List assessment targets"
+      }
+    ],
+    "ListAssessmentTemplates": [
+      {
+        "input": {
+          "assessmentTargetArns": [
+            "arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq"
+          ],
+          "maxResults": 123
+        },
+        "output": {
+          "assessmentTemplateArns": [
+            "arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq/template/0-4r1V2mAw",
+            "arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq/template/0-Uza6ihLh"
+          ],
+          "nextToken": "1"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Lists the assessment templates that correspond to the assessment targets that are specified by the ARNs of the assessment targets.",
+        "id": "list-assessment-templates-1481066623520",
+        "title": "List assessment templates"
+      }
+    ],
+    "ListEventSubscriptions": [
+      {
+        "input": {
+          "maxResults": 123,
+          "resourceArn": "arn:aws:inspector:us-west-2:123456789012:target/0-nvgVhaxX/template/0-7sbz2Kz0"
+        },
+        "output": {
+          "nextToken": "1",
+          "subscriptions": [
+            {
+              "eventSubscriptions": [
+                {
+                  "event": "ASSESSMENT_RUN_COMPLETED",
+                  "subscribedAt": "1459455440.867"
+                }
+              ],
+              "resourceArn": "arn:aws:inspector:us-west-2:123456789012:target/0-nvgVhaxX/template/0-7sbz2Kz0",
+              "topicArn": "arn:aws:sns:us-west-2:123456789012:exampletopic"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Lists all the event subscriptions for the assessment template that is specified by the ARN of the assessment template. ",
+        "id": "list-event-subscriptions-1481068376945",
+        "title": "List event subscriptions"
+      }
+    ],
+    "ListFindings": [
+      {
+        "input": {
+          "assessmentRunArns": [
+            "arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq/template/0-4r1V2mAw/run/0-MKkpXXPE"
+          ],
+          "maxResults": 123
+        },
+        "output": {
+          "findingArns": [
+            "arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq/template/0-4r1V2mAw/run/0-MKkpXXPE/finding/0-HwPnsDm4",
+            "arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq/template/0-4r1V2mAw/run/0-v5D6fI3v/finding/0-tyvmqBLy"
+          ],
+          "nextToken": "1"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Lists findings that are generated by the assessment runs that are specified by the ARNs of the assessment runs.",
+        "id": "list-findings-1481066840611",
+        "title": "List findings"
+      }
+    ],
+    "ListRulesPackages": [
+      {
+        "input": {
+          "maxResults": 123
+        },
+        "output": {
+          "nextToken": "1",
+          "rulesPackageArns": [
+            "arn:aws:inspector:us-west-2:758058086616:rulespackage/0-9hgA516p",
+            "arn:aws:inspector:us-west-2:758058086616:rulespackage/0-H5hpSawc",
+            "arn:aws:inspector:us-west-2:758058086616:rulespackage/0-JJOtZiqQ",
+            "arn:aws:inspector:us-west-2:758058086616:rulespackage/0-vg5GGHSD"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Lists all available Amazon Inspector rules packages.",
+        "id": "list-rules-packages-1481066954883",
+        "title": "List rules packages"
+      }
+    ],
+    "ListTagsForResource": [
+      {
+        "input": {
+          "resourceArn": "arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq/template/0-gcwFliYu"
+        },
+        "output": {
+          "tags": [
+            {
+              "key": "Name",
+              "value": "Example"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Lists all tags associated with an assessment template.",
+        "id": "list-tags-for-resource-1481067025240",
+        "title": "List tags for resource"
+      }
+    ],
+    "PreviewAgents": [
+      {
+        "input": {
+          "maxResults": 123,
+          "previewAgentsArn": "arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq"
+        },
+        "output": {
+          "agentPreviews": [
+            {
+              "agentId": "i-49113b93"
+            }
+          ],
+          "nextToken": "1"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Previews the agents installed on the EC2 instances that are part of the specified assessment target.",
+        "id": "preview-agents-1481067101888",
+        "title": "Preview agents"
+      }
+    ],
+    "RegisterCrossAccountAccessRole": [
+      {
+        "input": {
+          "roleArn": "arn:aws:iam::123456789012:role/inspector"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Registers the IAM role that Amazon Inspector uses to list your EC2 instances at the start of the assessment run or when you call the PreviewAgents action.",
+        "id": "register-cross-account-access-role-1481067178301",
+        "title": "Register cross account access role"
+      }
+    ],
+    "RemoveAttributesFromFindings": [
+      {
+        "input": {
+          "attributeKeys": [
+            "key=Example,value=example"
+          ],
+          "findingArns": [
+            "arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq/template/0-8l1VIE0D/run/0-Z02cjjug/finding/0-T8yM9mEU"
+          ]
+        },
+        "output": {
+          "failedItems": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Removes entire attributes (key and value pairs) from the findings that are specified by the ARNs of the findings where an attribute with the specified key exists.",
+        "id": "remove-attributes-from-findings-1481067246548",
+        "title": "Remove attributes from findings"
+      }
+    ],
+    "SetTagsForResource": [
+      {
+        "input": {
+          "resourceArn": "arn:aws:inspector:us-west-2:123456789012:target/0-nvgVhaxX/template/0-7sbz2Kz0",
+          "tags": [
+            {
+              "key": "Example",
+              "value": "example"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Sets tags (key and value pairs) to the assessment template that is specified by the ARN of the assessment template.",
+        "id": "set-tags-for-resource-1481067329646",
+        "title": "Set tags for resource"
+      }
+    ],
+    "StartAssessmentRun": [
+      {
+        "input": {
+          "assessmentRunName": "examplerun",
+          "assessmentTemplateArn": "arn:aws:inspector:us-west-2:123456789012:target/0-nvgVhaxX/template/0-it5r2S4T"
+        },
+        "output": {
+          "assessmentRunArn": "arn:aws:inspector:us-west-2:123456789012:target/0-nvgVhaxX/template/0-it5r2S4T/run/0-jOoroxyY"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Starts the assessment run specified by the ARN of the assessment template. For this API to function properly, you must not exceed the limit of running up to 500 concurrent agents per AWS account.",
+        "id": "start-assessment-run-1481067407484",
+        "title": "Start assessment run"
+      }
+    ],
+    "StopAssessmentRun": [
+      {
+        "input": {
+          "assessmentRunArn": "arn:aws:inspector:us-west-2:123456789012:target/0-nvgVhaxX/template/0-it5r2S4T/run/0-11LMTAVe"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Stops the assessment run that is specified by the ARN of the assessment run.",
+        "id": "stop-assessment-run-1481067502857",
+        "title": "Stop assessment run"
+      }
+    ],
+    "SubscribeToEvent": [
+      {
+        "input": {
+          "event": "ASSESSMENT_RUN_COMPLETED",
+          "resourceArn": "arn:aws:inspector:us-west-2:123456789012:target/0-nvgVhaxX/template/0-7sbz2Kz0",
+          "topicArn": "arn:aws:sns:us-west-2:123456789012:exampletopic"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Enables the process of sending Amazon Simple Notification Service (SNS) notifications about a specified event to a specified SNS topic.",
+        "id": "subscribe-to-event-1481067686031",
+        "title": "Subscribe to event"
+      }
+    ],
+    "UnsubscribeFromEvent": [
+      {
+        "input": {
+          "event": "ASSESSMENT_RUN_COMPLETED",
+          "resourceArn": "arn:aws:inspector:us-west-2:123456789012:target/0-nvgVhaxX/template/0-7sbz2Kz0",
+          "topicArn": "arn:aws:sns:us-west-2:123456789012:exampletopic"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Disables the process of sending Amazon Simple Notification Service (SNS) notifications about a specified event to a specified SNS topic.",
+        "id": "unsubscribe-from-event-1481067781705",
+        "title": "Unsubscribe from event"
+      }
+    ],
+    "UpdateAssessmentTarget": [
+      {
+        "input": {
+          "assessmentTargetArn": "arn:aws:inspector:us-west-2:123456789012:target/0-nvgVhaxX",
+          "assessmentTargetName": "Example",
+          "resourceGroupArn": "arn:aws:inspector:us-west-2:123456789012:resourcegroup/0-yNbgL5Pt"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Updates the assessment target that is specified by the ARN of the assessment target.",
+        "id": "update-assessment-target-1481067866692",
+        "title": "Update assessment target"
+      }
+    ]
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/inspector/2016-02-16/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/inspector/2016-02-16/paginators-1.json
new file mode 100644
index 00000000..8dec0410
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/inspector/2016-02-16/paginators-1.json
@@ -0,0 +1,58 @@
+{
+  "pagination": {
+    "ListFindings": {
+      "result_key": "findingArns",
+      "output_token": "nextToken",
+      "input_token": "nextToken",
+      "limit_key": "maxResults"
+    },
+    "ListAssessmentTemplates": {
+      "result_key": "assessmentTemplateArns",
+      "output_token": "nextToken",
+      "input_token": "nextToken",
+      "limit_key": "maxResults"
+    },
+    "PreviewAgents": {
+      "result_key": "agentPreviews",
+      "output_token": "nextToken",
+      "input_token": "nextToken",
+      "limit_key": "maxResults"
+    },
+    "ListEventSubscriptions": {
+      "result_key": "subscriptions",
+      "output_token": "nextToken",
+      "input_token": "nextToken",
+      "limit_key": "maxResults"
+    },
+    "ListRulesPackages": {
+      "result_key": "rulesPackageArns",
+      "output_token": "nextToken",
+      "input_token": "nextToken",
+      "limit_key": "maxResults"
+    },
+    "ListAssessmentRunAgents": {
+      "result_key": "assessmentRunAgents",
+      "output_token": "nextToken",
+      "input_token": "nextToken",
+      "limit_key": "maxResults"
+    },
+    "ListAssessmentRuns": {
+      "result_key": "assessmentRunArns",
+      "output_token": "nextToken",
+      "input_token": "nextToken",
+      "limit_key": "maxResults"
+    },
+    "ListAssessmentTargets": {
+      "result_key": "assessmentTargetArns",
+      "output_token": "nextToken",
+      "input_token": "nextToken",
+      "limit_key": "maxResults"
+    },
+    "ListExclusions": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "exclusionArns"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/inspector/2016-02-16/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/inspector/2016-02-16/service-2.json.gz
new file mode 100644
index 00000000..450f6bd3
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/inspector/2016-02-16/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/inspector2/2020-06-08/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/inspector2/2020-06-08/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..927b22e5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/inspector2/2020-06-08/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/inspector2/2020-06-08/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/inspector2/2020-06-08/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/inspector2/2020-06-08/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/inspector2/2020-06-08/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/inspector2/2020-06-08/paginators-1.json
new file mode 100644
index 00000000..0c1854b9
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/inspector2/2020-06-08/paginators-1.json
@@ -0,0 +1,92 @@
+{
+  "pagination": {
+    "ListAccountPermissions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "permissions"
+    },
+    "ListCoverage": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "coveredResources"
+    },
+    "ListCoverageStatistics": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "countsByGroup"
+    },
+    "ListDelegatedAdminAccounts": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "delegatedAdminAccounts"
+    },
+    "ListFilters": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "filters"
+    },
+    "ListFindingAggregations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "responses"
+    },
+    "ListFindings": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "findings"
+    },
+    "ListMembers": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "members"
+    },
+    "ListUsageTotals": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "totals"
+    },
+    "SearchVulnerabilities": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "vulnerabilities"
+    },
+    "GetCisScanResultDetails": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "scanResultDetails"
+    },
+    "ListCisScanConfigurations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "scanConfigurations"
+    },
+    "ListCisScanResultsAggregatedByChecks": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "checkAggregations"
+    },
+    "ListCisScanResultsAggregatedByTargetResource": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "targetResourceAggregations"
+    },
+    "ListCisScans": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "scans"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/inspector2/2020-06-08/paginators-1.sdk-extras.json b/.venv/lib/python3.12/site-packages/botocore/data/inspector2/2020-06-08/paginators-1.sdk-extras.json
new file mode 100644
index 00000000..b01a0bfc
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/inspector2/2020-06-08/paginators-1.sdk-extras.json
@@ -0,0 +1,17 @@
+{
+  "version": 1.0,
+  "merge": {
+    "pagination": {
+      "ListFindingAggregations": {
+        "non_aggregate_keys": [
+          "aggregationType"
+        ]
+      },
+      "ListCoverageStatistics": {
+        "non_aggregate_keys": [
+          "totalCounts"
+        ]
+      }
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/inspector2/2020-06-08/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/inspector2/2020-06-08/service-2.json.gz
new file mode 100644
index 00000000..c81cd5bc
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/inspector2/2020-06-08/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/internetmonitor/2021-06-03/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/internetmonitor/2021-06-03/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..a77824c5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/internetmonitor/2021-06-03/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/internetmonitor/2021-06-03/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/internetmonitor/2021-06-03/paginators-1.json
new file mode 100644
index 00000000..c08ea4f0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/internetmonitor/2021-06-03/paginators-1.json
@@ -0,0 +1,22 @@
+{
+  "pagination": {
+    "ListHealthEvents": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "HealthEvents"
+    },
+    "ListMonitors": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Monitors"
+    },
+    "ListInternetEvents": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "InternetEvents"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/internetmonitor/2021-06-03/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/internetmonitor/2021-06-03/service-2.json.gz
new file mode 100644
index 00000000..beaee730
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/internetmonitor/2021-06-03/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/internetmonitor/2021-06-03/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/internetmonitor/2021-06-03/waiters-2.json
new file mode 100644
index 00000000..13f60ee6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/internetmonitor/2021-06-03/waiters-2.json
@@ -0,0 +1,5 @@
+{
+  "version": 2,
+  "waiters": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/invoicing/2024-12-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/invoicing/2024-12-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..a3bd3cca
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/invoicing/2024-12-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/invoicing/2024-12-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/invoicing/2024-12-01/paginators-1.json
new file mode 100644
index 00000000..86020635
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/invoicing/2024-12-01/paginators-1.json
@@ -0,0 +1,10 @@
+{
+  "pagination": {
+    "ListInvoiceUnits": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "InvoiceUnits"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/invoicing/2024-12-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/invoicing/2024-12-01/service-2.json.gz
new file mode 100644
index 00000000..df1f8ee5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/invoicing/2024-12-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/invoicing/2024-12-01/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/invoicing/2024-12-01/waiters-2.json
new file mode 100644
index 00000000..13f60ee6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/invoicing/2024-12-01/waiters-2.json
@@ -0,0 +1,5 @@
+{
+  "version": 2,
+  "waiters": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/iot-data/2015-05-28/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/iot-data/2015-05-28/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..094d9f3d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iot-data/2015-05-28/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/iot-data/2015-05-28/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/iot-data/2015-05-28/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iot-data/2015-05-28/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/iot-data/2015-05-28/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/iot-data/2015-05-28/paginators-1.json
new file mode 100644
index 00000000..26d4a561
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iot-data/2015-05-28/paginators-1.json
@@ -0,0 +1,10 @@
+{
+  "pagination": {
+    "ListRetainedMessages": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "retainedTopics"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/iot-data/2015-05-28/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/iot-data/2015-05-28/service-2.json.gz
new file mode 100644
index 00000000..f964bb04
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iot-data/2015-05-28/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/iot-jobs-data/2017-09-29/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/iot-jobs-data/2017-09-29/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..888700b4
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iot-jobs-data/2017-09-29/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/iot-jobs-data/2017-09-29/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/iot-jobs-data/2017-09-29/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iot-jobs-data/2017-09-29/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/iot-jobs-data/2017-09-29/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/iot-jobs-data/2017-09-29/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iot-jobs-data/2017-09-29/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/iot-jobs-data/2017-09-29/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/iot-jobs-data/2017-09-29/service-2.json.gz
new file mode 100644
index 00000000..e674f363
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iot-jobs-data/2017-09-29/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/iot-managed-integrations/2025-03-03/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/iot-managed-integrations/2025-03-03/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..9f69baba
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iot-managed-integrations/2025-03-03/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/iot-managed-integrations/2025-03-03/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/iot-managed-integrations/2025-03-03/paginators-1.json
new file mode 100644
index 00000000..ecd0686d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iot-managed-integrations/2025-03-03/paginators-1.json
@@ -0,0 +1,70 @@
+{
+  "pagination": {
+    "ListCredentialLockers": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Items"
+    },
+    "ListDestinations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "DestinationList"
+    },
+    "ListEventLogConfigurations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "EventLogConfigurationList"
+    },
+    "ListManagedThingSchemas": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Items"
+    },
+    "ListManagedThings": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Items"
+    },
+    "ListNotificationConfigurations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "NotificationConfigurationList"
+    },
+    "ListOtaTaskConfigurations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Items"
+    },
+    "ListOtaTaskExecutions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ExecutionSummaries"
+    },
+    "ListOtaTasks": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Tasks"
+    },
+    "ListProvisioningProfiles": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Items"
+    },
+    "ListSchemaVersions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Items"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/iot-managed-integrations/2025-03-03/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/iot-managed-integrations/2025-03-03/service-2.json.gz
new file mode 100644
index 00000000..123b2562
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iot-managed-integrations/2025-03-03/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/iot/2015-05-28/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/iot/2015-05-28/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..a6686825
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iot/2015-05-28/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/iot/2015-05-28/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/iot/2015-05-28/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iot/2015-05-28/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/iot/2015-05-28/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/iot/2015-05-28/paginators-1.json
new file mode 100644
index 00000000..4b227cd5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iot/2015-05-28/paginators-1.json
@@ -0,0 +1,390 @@
+{
+  "pagination": {
+    "ListCACertificates": {
+      "input_token": "marker",
+      "output_token": "nextMarker",
+      "limit_key": "pageSize",
+      "result_key": "certificates"
+    },
+    "ListCertificates": {
+      "input_token": "marker",
+      "output_token": "nextMarker",
+      "limit_key": "pageSize",
+      "result_key": "certificates"
+    },
+    "ListCertificatesByCA": {
+      "input_token": "marker",
+      "output_token": "nextMarker",
+      "limit_key": "pageSize",
+      "result_key": "certificates"
+    },
+    "ListOutgoingCertificates": {
+      "input_token": "marker",
+      "output_token": "nextMarker",
+      "limit_key": "pageSize",
+      "result_key": "outgoingCertificates"
+    },
+    "ListPolicies": {
+      "input_token": "marker",
+      "output_token": "nextMarker",
+      "limit_key": "pageSize",
+      "result_key": "policies"
+    },
+    "ListPolicyPrincipals": {
+      "input_token": "marker",
+      "output_token": "nextMarker",
+      "limit_key": "pageSize",
+      "result_key": "principals"
+    },
+    "ListPrincipalPolicies": {
+      "input_token": "marker",
+      "output_token": "nextMarker",
+      "limit_key": "pageSize",
+      "result_key": "policies"
+    },
+    "ListPrincipalThings": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "things"
+    },
+    "ListThingTypes": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "thingTypes"
+    },
+    "ListThings": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "things"
+    },
+    "ListTopicRules": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "rules"
+    },
+    "ListActiveViolations": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "activeViolations"
+    },
+    "ListAttachedPolicies": {
+      "input_token": "marker",
+      "limit_key": "pageSize",
+      "output_token": "nextMarker",
+      "result_key": "policies"
+    },
+    "ListAuditFindings": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "findings"
+    },
+    "ListAuditTasks": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "tasks"
+    },
+    "ListAuthorizers": {
+      "input_token": "marker",
+      "limit_key": "pageSize",
+      "output_token": "nextMarker",
+      "result_key": "authorizers"
+    },
+    "ListBillingGroups": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "billingGroups"
+    },
+    "ListIndices": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "indexNames"
+    },
+    "ListJobExecutionsForJob": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "executionSummaries"
+    },
+    "ListJobExecutionsForThing": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "executionSummaries"
+    },
+    "ListJobs": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "jobs"
+    },
+    "ListOTAUpdates": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "otaUpdates"
+    },
+    "ListRoleAliases": {
+      "input_token": "marker",
+      "limit_key": "pageSize",
+      "output_token": "nextMarker",
+      "result_key": "roleAliases"
+    },
+    "ListScheduledAudits": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "scheduledAudits"
+    },
+    "ListSecurityProfiles": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "securityProfileIdentifiers"
+    },
+    "ListSecurityProfilesForTarget": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "securityProfileTargetMappings"
+    },
+    "ListStreams": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "streams"
+    },
+    "ListTagsForResource": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "tags"
+    },
+    "ListTargetsForPolicy": {
+      "input_token": "marker",
+      "limit_key": "pageSize",
+      "output_token": "nextMarker",
+      "result_key": "targets"
+    },
+    "ListTargetsForSecurityProfile": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "securityProfileTargets"
+    },
+    "ListThingGroups": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "thingGroups"
+    },
+    "ListThingGroupsForThing": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "thingGroups"
+    },
+    "ListThingRegistrationTasks": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "taskIds"
+    },
+    "ListThingsInBillingGroup": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "things"
+    },
+    "ListThingsInThingGroup": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "things"
+    },
+    "ListV2LoggingLevels": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "logTargetConfigurations"
+    },
+    "ListViolationEvents": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "violationEvents"
+    },
+    "ListAuditMitigationActionsExecutions": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "actionsExecutions"
+    },
+    "ListAuditMitigationActionsTasks": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "tasks"
+    },
+    "ListAuditSuppressions": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "suppressions"
+    },
+    "ListDimensions": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "dimensionNames"
+    },
+    "ListDomainConfigurations": {
+      "input_token": "marker",
+      "limit_key": "pageSize",
+      "output_token": "nextMarker",
+      "result_key": "domainConfigurations"
+    },
+    "ListMitigationActions": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "actionIdentifiers"
+    },
+    "ListProvisioningTemplateVersions": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "versions"
+    },
+    "ListProvisioningTemplates": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "templates"
+    },
+    "ListThingRegistrationTaskReports": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "non_aggregate_keys": [
+        "reportType"
+      ],
+      "output_token": "nextToken",
+      "result_key": "resourceLinks"
+    },
+    "ListTopicRuleDestinations": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "destinationSummaries"
+    },
+    "ListThingPrincipals": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "principals"
+    },
+    "GetBehaviorModelTrainingSummaries": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "summaries"
+    },
+    "ListCustomMetrics": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "metricNames"
+    },
+    "ListDetectMitigationActionsExecutions": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "actionsExecutions"
+    },
+    "ListDetectMitigationActionsTasks": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "tasks"
+    },
+    "ListFleetMetrics": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "fleetMetrics"
+    },
+    "ListJobTemplates": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "jobTemplates"
+    },
+    "ListMetricValues": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "metricDatumList"
+    },
+    "ListManagedJobTemplates": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "managedJobTemplates"
+    },
+    "ListRelatedResourcesForAuditFinding": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "relatedResources"
+    },
+    "ListPackageVersions": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "packageVersionSummaries"
+    },
+    "ListPackages": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "packageSummaries"
+    },
+    "ListSbomValidationResults": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "validationResultSummaries"
+    },
+    "ListPrincipalThingsV2": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "principalThingObjects"
+    },
+    "ListThingPrincipalsV2": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "thingPrincipalObjects"
+    },
+    "ListCommandExecutions": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "commandExecutions"
+    },
+    "ListCommands": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "commands"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/iot/2015-05-28/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/iot/2015-05-28/service-2.json.gz
new file mode 100644
index 00000000..95deb9ab
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iot/2015-05-28/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/iotanalytics/2017-11-27/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/iotanalytics/2017-11-27/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..aaf05b07
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iotanalytics/2017-11-27/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/iotanalytics/2017-11-27/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/iotanalytics/2017-11-27/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iotanalytics/2017-11-27/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/iotanalytics/2017-11-27/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/iotanalytics/2017-11-27/paginators-1.json
new file mode 100644
index 00000000..d1bfaaaa
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iotanalytics/2017-11-27/paginators-1.json
@@ -0,0 +1,34 @@
+{
+  "pagination": {
+    "ListChannels": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "channelSummaries"
+    },
+    "ListDatasetContents": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "datasetContentSummaries"
+    },
+    "ListDatasets": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "datasetSummaries"
+    },
+    "ListDatastores": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "datastoreSummaries"
+    },
+    "ListPipelines": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "pipelineSummaries"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/iotanalytics/2017-11-27/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/iotanalytics/2017-11-27/service-2.json.gz
new file mode 100644
index 00000000..17822b65
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iotanalytics/2017-11-27/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/iotdeviceadvisor/2020-09-18/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/iotdeviceadvisor/2020-09-18/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..af557fa6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iotdeviceadvisor/2020-09-18/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/iotdeviceadvisor/2020-09-18/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/iotdeviceadvisor/2020-09-18/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iotdeviceadvisor/2020-09-18/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/iotdeviceadvisor/2020-09-18/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/iotdeviceadvisor/2020-09-18/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iotdeviceadvisor/2020-09-18/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/iotdeviceadvisor/2020-09-18/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/iotdeviceadvisor/2020-09-18/service-2.json.gz
new file mode 100644
index 00000000..d8d3bdcd
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iotdeviceadvisor/2020-09-18/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/iotevents-data/2018-10-23/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/iotevents-data/2018-10-23/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..4af8bb7f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iotevents-data/2018-10-23/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/iotevents-data/2018-10-23/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/iotevents-data/2018-10-23/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iotevents-data/2018-10-23/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/iotevents-data/2018-10-23/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/iotevents-data/2018-10-23/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iotevents-data/2018-10-23/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/iotevents-data/2018-10-23/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/iotevents-data/2018-10-23/service-2.json.gz
new file mode 100644
index 00000000..df16b37f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iotevents-data/2018-10-23/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/iotevents/2018-07-27/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/iotevents/2018-07-27/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..8ad50481
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iotevents/2018-07-27/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/iotevents/2018-07-27/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/iotevents/2018-07-27/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iotevents/2018-07-27/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/iotevents/2018-07-27/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/iotevents/2018-07-27/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iotevents/2018-07-27/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/iotevents/2018-07-27/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/iotevents/2018-07-27/service-2.json.gz
new file mode 100644
index 00000000..2683394e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iotevents/2018-07-27/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/iotfleethub/2020-11-03/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/iotfleethub/2020-11-03/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..2e141b85
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iotfleethub/2020-11-03/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/iotfleethub/2020-11-03/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/iotfleethub/2020-11-03/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iotfleethub/2020-11-03/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/iotfleethub/2020-11-03/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/iotfleethub/2020-11-03/paginators-1.json
new file mode 100644
index 00000000..74c96f51
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iotfleethub/2020-11-03/paginators-1.json
@@ -0,0 +1,9 @@
+{
+  "pagination": {
+    "ListApplications": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "applicationSummaries"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/iotfleethub/2020-11-03/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/iotfleethub/2020-11-03/service-2.json.gz
new file mode 100644
index 00000000..3c5c6c4d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iotfleethub/2020-11-03/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/iotfleetwise/2021-06-17/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/iotfleetwise/2021-06-17/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..3229eada
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iotfleetwise/2021-06-17/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/iotfleetwise/2021-06-17/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/iotfleetwise/2021-06-17/paginators-1.json
new file mode 100644
index 00000000..cc8dcba6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iotfleetwise/2021-06-17/paginators-1.json
@@ -0,0 +1,88 @@
+{
+  "pagination": {
+    "GetVehicleStatus": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "campaigns"
+    },
+    "ListCampaigns": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "campaignSummaries"
+    },
+    "ListDecoderManifestNetworkInterfaces": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "networkInterfaces"
+    },
+    "ListDecoderManifestSignals": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "signalDecoders"
+    },
+    "ListDecoderManifests": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "summaries"
+    },
+    "ListFleets": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "fleetSummaries"
+    },
+    "ListFleetsForVehicle": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "fleets"
+    },
+    "ListModelManifestNodes": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "nodes"
+    },
+    "ListModelManifests": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "summaries"
+    },
+    "ListSignalCatalogNodes": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "nodes"
+    },
+    "ListSignalCatalogs": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "summaries"
+    },
+    "ListVehicles": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "vehicleSummaries"
+    },
+    "ListVehiclesInFleet": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "vehicles"
+    },
+    "ListStateTemplates": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "summaries"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/iotfleetwise/2021-06-17/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/iotfleetwise/2021-06-17/service-2.json.gz
new file mode 100644
index 00000000..a2d2038d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iotfleetwise/2021-06-17/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/iotfleetwise/2021-06-17/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/iotfleetwise/2021-06-17/waiters-2.json
new file mode 100644
index 00000000..13f60ee6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iotfleetwise/2021-06-17/waiters-2.json
@@ -0,0 +1,5 @@
+{
+  "version": 2,
+  "waiters": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/iotsecuretunneling/2018-10-05/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/iotsecuretunneling/2018-10-05/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..85a7005a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iotsecuretunneling/2018-10-05/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/iotsecuretunneling/2018-10-05/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/iotsecuretunneling/2018-10-05/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iotsecuretunneling/2018-10-05/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/iotsecuretunneling/2018-10-05/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/iotsecuretunneling/2018-10-05/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iotsecuretunneling/2018-10-05/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/iotsecuretunneling/2018-10-05/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/iotsecuretunneling/2018-10-05/service-2.json.gz
new file mode 100644
index 00000000..2d59f449
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iotsecuretunneling/2018-10-05/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/iotsitewise/2019-12-02/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/iotsitewise/2019-12-02/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..cfc5efff
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iotsitewise/2019-12-02/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/iotsitewise/2019-12-02/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/iotsitewise/2019-12-02/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iotsitewise/2019-12-02/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/iotsitewise/2019-12-02/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/iotsitewise/2019-12-02/paginators-1.json
new file mode 100644
index 00000000..0237e4da
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iotsitewise/2019-12-02/paginators-1.json
@@ -0,0 +1,136 @@
+{
+  "pagination": {
+    "GetAssetPropertyAggregates": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "aggregatedValues"
+    },
+    "GetAssetPropertyValueHistory": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "assetPropertyValueHistory"
+    },
+    "ListAccessPolicies": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "accessPolicySummaries"
+    },
+    "ListAssetModels": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "assetModelSummaries"
+    },
+    "ListAssets": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "assetSummaries"
+    },
+    "ListAssociatedAssets": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "assetSummaries"
+    },
+    "ListDashboards": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "dashboardSummaries"
+    },
+    "ListGateways": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "gatewaySummaries"
+    },
+    "ListPortals": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "portalSummaries"
+    },
+    "ListProjectAssets": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "assetIds"
+    },
+    "ListProjects": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "projectSummaries"
+    },
+    "ListAssetRelationships": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "assetRelationshipSummaries"
+    },
+    "GetInterpolatedAssetPropertyValues": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "interpolatedAssetPropertyValues"
+    },
+    "ListTimeSeries": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "TimeSeriesSummaries"
+    },
+    "ListBulkImportJobs": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "jobSummaries"
+    },
+    "ListAssetModelProperties": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "assetModelPropertySummaries"
+    },
+    "ListAssetProperties": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "assetPropertySummaries"
+    },
+    "ExecuteQuery": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "rows"
+    },
+    "ListActions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "actionSummaries"
+    },
+    "ListAssetModelCompositeModels": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "assetModelCompositeModelSummaries"
+    },
+    "ListCompositionRelationships": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "compositionRelationshipSummaries"
+    },
+    "ListDatasets": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "datasetSummaries"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/iotsitewise/2019-12-02/paginators-1.sdk-extras.json b/.venv/lib/python3.12/site-packages/botocore/data/iotsitewise/2019-12-02/paginators-1.sdk-extras.json
new file mode 100644
index 00000000..77dcd655
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iotsitewise/2019-12-02/paginators-1.sdk-extras.json
@@ -0,0 +1,12 @@
+{
+  "version": 1.0,
+  "merge": {
+    "pagination": {
+      "ExecuteQuery": {
+        "non_aggregate_keys": [
+          "columns"
+        ]
+      }
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/iotsitewise/2019-12-02/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/iotsitewise/2019-12-02/service-2.json.gz
new file mode 100644
index 00000000..5a56359d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iotsitewise/2019-12-02/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/iotsitewise/2019-12-02/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/iotsitewise/2019-12-02/waiters-2.json
new file mode 100644
index 00000000..e51df5fe
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iotsitewise/2019-12-02/waiters-2.json
@@ -0,0 +1,92 @@
+{
+    "version": 2,
+    "waiters": {
+      "AssetModelNotExists": {
+        "delay": 3,
+        "maxAttempts": 20,
+        "operation": "DescribeAssetModel",
+        "acceptors": [
+          {
+            "state": "success",
+            "matcher": "error",
+            "expected": "ResourceNotFoundException"
+          }
+        ]
+      },
+      "AssetModelActive": {
+        "delay": 3,
+        "maxAttempts": 20,
+        "operation": "DescribeAssetModel",
+        "acceptors": [
+          {
+            "state": "success",
+            "matcher": "path",
+            "argument": "assetModelStatus.state",
+            "expected": "ACTIVE"
+          },
+          {
+            "state": "failure",
+            "matcher": "path",
+            "argument": "assetModelStatus.state",
+            "expected": "FAILED"
+          }
+        ]
+      },
+      "AssetNotExists": {
+        "delay": 3,
+        "maxAttempts": 20,
+        "operation": "DescribeAsset",
+        "acceptors": [
+          {
+            "state": "success",
+            "matcher": "error",
+            "expected": "ResourceNotFoundException"
+          }
+        ]
+      },
+      "AssetActive": {
+        "delay": 3,
+        "maxAttempts": 20,
+        "operation": "DescribeAsset",
+        "acceptors": [
+          {
+            "state": "success",
+            "matcher": "path",
+            "argument": "assetStatus.state",
+            "expected": "ACTIVE"
+          },
+          {
+            "state": "failure",
+            "matcher": "path",
+            "argument": "assetStatus.state",
+            "expected": "FAILED"
+          }
+        ]
+      },
+      "PortalNotExists": {
+        "delay": 3,
+        "maxAttempts": 20,
+        "operation": "DescribePortal",
+        "acceptors": [
+          {
+            "state": "success",
+            "matcher": "error",
+            "expected": "ResourceNotFoundException"
+          }
+        ]
+      },
+      "PortalActive": {
+        "delay": 3,
+        "maxAttempts": 20,
+        "operation": "DescribePortal",
+        "acceptors": [
+          {
+            "state": "success",
+            "matcher": "path",
+            "argument": "portalStatus.state",
+            "expected": "ACTIVE"
+          }
+        ]
+      }
+    }
+  }
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/iotthingsgraph/2018-09-06/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/iotthingsgraph/2018-09-06/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..3f9ca5fa
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iotthingsgraph/2018-09-06/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/iotthingsgraph/2018-09-06/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/iotthingsgraph/2018-09-06/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iotthingsgraph/2018-09-06/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/iotthingsgraph/2018-09-06/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/iotthingsgraph/2018-09-06/paginators-1.json
new file mode 100644
index 00000000..bc92f846
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iotthingsgraph/2018-09-06/paginators-1.json
@@ -0,0 +1,64 @@
+{
+  "pagination": {
+    "GetFlowTemplateRevisions": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "summaries"
+    },
+    "GetSystemTemplateRevisions": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "summaries"
+    },
+    "ListFlowExecutionMessages": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "messages"
+    },
+    "ListTagsForResource": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "tags"
+    },
+    "SearchEntities": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "descriptions"
+    },
+    "SearchFlowExecutions": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "summaries"
+    },
+    "SearchFlowTemplates": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "summaries"
+    },
+    "SearchSystemInstances": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "summaries"
+    },
+    "SearchSystemTemplates": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "summaries"
+    },
+    "SearchThings": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "things"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/iotthingsgraph/2018-09-06/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/iotthingsgraph/2018-09-06/service-2.json.gz
new file mode 100644
index 00000000..6cc71111
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iotthingsgraph/2018-09-06/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/iottwinmaker/2021-11-29/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/iottwinmaker/2021-11-29/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..e3ae3168
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iottwinmaker/2021-11-29/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/iottwinmaker/2021-11-29/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/iottwinmaker/2021-11-29/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iottwinmaker/2021-11-29/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/iottwinmaker/2021-11-29/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/iottwinmaker/2021-11-29/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iottwinmaker/2021-11-29/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/iottwinmaker/2021-11-29/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/iottwinmaker/2021-11-29/service-2.json.gz
new file mode 100644
index 00000000..b63e8da7
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iottwinmaker/2021-11-29/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/iottwinmaker/2021-11-29/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/iottwinmaker/2021-11-29/waiters-2.json
new file mode 100644
index 00000000..13f60ee6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iottwinmaker/2021-11-29/waiters-2.json
@@ -0,0 +1,5 @@
+{
+  "version": 2,
+  "waiters": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/iotwireless/2020-11-22/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/iotwireless/2020-11-22/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..8a21e711
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iotwireless/2020-11-22/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/iotwireless/2020-11-22/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/iotwireless/2020-11-22/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iotwireless/2020-11-22/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/iotwireless/2020-11-22/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/iotwireless/2020-11-22/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iotwireless/2020-11-22/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/iotwireless/2020-11-22/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/iotwireless/2020-11-22/service-2.json.gz
new file mode 100644
index 00000000..6b5d5057
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/iotwireless/2020-11-22/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ivs-realtime/2020-07-14/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ivs-realtime/2020-07-14/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..a2234997
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ivs-realtime/2020-07-14/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ivs-realtime/2020-07-14/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/ivs-realtime/2020-07-14/paginators-1.json
new file mode 100644
index 00000000..a7ae6129
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ivs-realtime/2020-07-14/paginators-1.json
@@ -0,0 +1,16 @@
+{
+  "pagination": {
+    "ListPublicKeys": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "publicKeys"
+    },
+    "ListIngestConfigurations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "ingestConfigurations"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ivs-realtime/2020-07-14/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ivs-realtime/2020-07-14/service-2.json.gz
new file mode 100644
index 00000000..7b8b6f23
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ivs-realtime/2020-07-14/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ivs-realtime/2020-07-14/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/ivs-realtime/2020-07-14/waiters-2.json
new file mode 100644
index 00000000..13f60ee6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ivs-realtime/2020-07-14/waiters-2.json
@@ -0,0 +1,5 @@
+{
+  "version": 2,
+  "waiters": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ivs/2020-07-14/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ivs/2020-07-14/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..eed3f79a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ivs/2020-07-14/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ivs/2020-07-14/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/ivs/2020-07-14/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ivs/2020-07-14/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ivs/2020-07-14/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/ivs/2020-07-14/paginators-1.json
new file mode 100644
index 00000000..572d1c73
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ivs/2020-07-14/paginators-1.json
@@ -0,0 +1,34 @@
+{
+  "pagination": {
+    "ListChannels": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "channels"
+    },
+    "ListStreamKeys": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "streamKeys"
+    },
+    "ListStreams": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "streams"
+    },
+    "ListPlaybackKeyPairs": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "keyPairs"
+    },
+    "ListRecordingConfigurations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "recordingConfigurations"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ivs/2020-07-14/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ivs/2020-07-14/service-2.json.gz
new file mode 100644
index 00000000..fbc43946
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ivs/2020-07-14/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ivschat/2020-07-14/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ivschat/2020-07-14/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..43eeeafe
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ivschat/2020-07-14/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ivschat/2020-07-14/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/ivschat/2020-07-14/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ivschat/2020-07-14/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ivschat/2020-07-14/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/ivschat/2020-07-14/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ivschat/2020-07-14/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ivschat/2020-07-14/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ivschat/2020-07-14/service-2.json.gz
new file mode 100644
index 00000000..ceaacf60
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ivschat/2020-07-14/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ivschat/2020-07-14/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/ivschat/2020-07-14/waiters-2.json
new file mode 100644
index 00000000..13f60ee6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ivschat/2020-07-14/waiters-2.json
@@ -0,0 +1,5 @@
+{
+  "version": 2,
+  "waiters": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/kafka/2018-11-14/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/kafka/2018-11-14/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..210209b2
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kafka/2018-11-14/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/kafka/2018-11-14/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/kafka/2018-11-14/paginators-1.json
new file mode 100644
index 00000000..92e6d9fd
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kafka/2018-11-14/paginators-1.json
@@ -0,0 +1,76 @@
+{
+  "pagination": {
+    "ListClusters": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ClusterInfoList"
+    },
+    "ListNodes": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "NodeInfoList"
+    },
+    "ListConfigurations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Configurations"
+    },
+    "ListClusterOperations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ClusterOperationInfoList"
+    },
+    "ListConfigurationRevisions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Revisions"
+    },
+    "ListKafkaVersions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "KafkaVersions"
+    },
+    "ListScramSecrets": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "SecretArnList"
+    },
+    "ListClustersV2": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ClusterInfoList"
+    },
+    "ListVpcConnections": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "VpcConnections"
+    },
+    "ListClientVpcConnections": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ClientVpcConnections"
+    },
+    "ListClusterOperationsV2": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ClusterOperationInfoList"
+    },
+    "ListReplicators": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Replicators"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/kafka/2018-11-14/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/kafka/2018-11-14/service-2.json.gz
new file mode 100644
index 00000000..d0210668
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kafka/2018-11-14/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/kafkaconnect/2021-09-14/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/kafkaconnect/2021-09-14/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..af69e4f9
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kafkaconnect/2021-09-14/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/kafkaconnect/2021-09-14/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/kafkaconnect/2021-09-14/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kafkaconnect/2021-09-14/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/kafkaconnect/2021-09-14/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/kafkaconnect/2021-09-14/paginators-1.json
new file mode 100644
index 00000000..d84b26fc
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kafkaconnect/2021-09-14/paginators-1.json
@@ -0,0 +1,28 @@
+{
+  "pagination": {
+    "ListConnectors": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "connectors"
+    },
+    "ListCustomPlugins": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "customPlugins"
+    },
+    "ListWorkerConfigurations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "workerConfigurations"
+    },
+    "ListConnectorOperations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "connectorOperations"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/kafkaconnect/2021-09-14/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/kafkaconnect/2021-09-14/service-2.json.gz
new file mode 100644
index 00000000..6bdaf213
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kafkaconnect/2021-09-14/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/kafkaconnect/2021-09-14/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/kafkaconnect/2021-09-14/waiters-2.json
new file mode 100644
index 00000000..13f60ee6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kafkaconnect/2021-09-14/waiters-2.json
@@ -0,0 +1,5 @@
+{
+  "version": 2,
+  "waiters": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/kendra-ranking/2022-10-19/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/kendra-ranking/2022-10-19/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..e38d9600
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kendra-ranking/2022-10-19/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/kendra-ranking/2022-10-19/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/kendra-ranking/2022-10-19/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kendra-ranking/2022-10-19/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/kendra-ranking/2022-10-19/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/kendra-ranking/2022-10-19/service-2.json.gz
new file mode 100644
index 00000000..7a123b5a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kendra-ranking/2022-10-19/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/kendra/2019-02-03/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/kendra/2019-02-03/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..33132481
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kendra/2019-02-03/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/kendra/2019-02-03/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/kendra/2019-02-03/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kendra/2019-02-03/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/kendra/2019-02-03/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/kendra/2019-02-03/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kendra/2019-02-03/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/kendra/2019-02-03/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/kendra/2019-02-03/service-2.json.gz
new file mode 100644
index 00000000..191de1e4
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kendra/2019-02-03/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/keyspaces/2022-02-10/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/keyspaces/2022-02-10/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..ee9f5554
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/keyspaces/2022-02-10/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/keyspaces/2022-02-10/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/keyspaces/2022-02-10/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/keyspaces/2022-02-10/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/keyspaces/2022-02-10/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/keyspaces/2022-02-10/paginators-1.json
new file mode 100644
index 00000000..4145b28b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/keyspaces/2022-02-10/paginators-1.json
@@ -0,0 +1,28 @@
+{
+  "pagination": {
+    "ListKeyspaces": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "keyspaces"
+    },
+    "ListTables": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "tables"
+    },
+    "ListTagsForResource": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "tags"
+    },
+    "ListTypes": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "types"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/keyspaces/2022-02-10/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/keyspaces/2022-02-10/service-2.json.gz
new file mode 100644
index 00000000..ffaf8933
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/keyspaces/2022-02-10/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/keyspaces/2022-02-10/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/keyspaces/2022-02-10/waiters-2.json
new file mode 100644
index 00000000..4b20636a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/keyspaces/2022-02-10/waiters-2.json
@@ -0,0 +1,5 @@
+{
+  "version": 2,
+  "waiters": {
+  }
+}
\ No newline at end of file
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-archived-media/2017-09-30/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-archived-media/2017-09-30/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..67f23cb8
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-archived-media/2017-09-30/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-archived-media/2017-09-30/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-archived-media/2017-09-30/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-archived-media/2017-09-30/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-archived-media/2017-09-30/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-archived-media/2017-09-30/paginators-1.json
new file mode 100644
index 00000000..a9a70417
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-archived-media/2017-09-30/paginators-1.json
@@ -0,0 +1,16 @@
+{
+  "pagination": {
+    "ListFragments": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Fragments"
+    },
+    "GetImages": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Images"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-archived-media/2017-09-30/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-archived-media/2017-09-30/service-2.json.gz
new file mode 100644
index 00000000..aa55c14a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-archived-media/2017-09-30/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-media/2017-09-30/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-media/2017-09-30/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..6c1403ce
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-media/2017-09-30/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-media/2017-09-30/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-media/2017-09-30/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-media/2017-09-30/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-media/2017-09-30/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-media/2017-09-30/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-media/2017-09-30/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-media/2017-09-30/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-media/2017-09-30/service-2.json.gz
new file mode 100644
index 00000000..428ac744
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-media/2017-09-30/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-signaling/2019-12-04/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-signaling/2019-12-04/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..6c1403ce
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-signaling/2019-12-04/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-signaling/2019-12-04/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-signaling/2019-12-04/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-signaling/2019-12-04/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-signaling/2019-12-04/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-signaling/2019-12-04/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-signaling/2019-12-04/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-signaling/2019-12-04/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-signaling/2019-12-04/service-2.json.gz
new file mode 100644
index 00000000..abab8d31
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-signaling/2019-12-04/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-webrtc-storage/2018-05-10/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-webrtc-storage/2018-05-10/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..e428a8ba
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-webrtc-storage/2018-05-10/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-webrtc-storage/2018-05-10/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-webrtc-storage/2018-05-10/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-webrtc-storage/2018-05-10/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-webrtc-storage/2018-05-10/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-webrtc-storage/2018-05-10/service-2.json.gz
new file mode 100644
index 00000000..6c16a94b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kinesis-video-webrtc-storage/2018-05-10/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/kinesis/2013-12-02/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/kinesis/2013-12-02/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..ba196014
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kinesis/2013-12-02/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/kinesis/2013-12-02/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/kinesis/2013-12-02/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kinesis/2013-12-02/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/kinesis/2013-12-02/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/kinesis/2013-12-02/paginators-1.json
new file mode 100644
index 00000000..3d680e67
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kinesis/2013-12-02/paginators-1.json
@@ -0,0 +1,43 @@
+{
+  "pagination": {
+    "DescribeStream": {
+      "input_token": "ExclusiveStartShardId",
+      "limit_key": "Limit",
+      "more_results": "StreamDescription.HasMoreShards",
+      "output_token": "StreamDescription.Shards[-1].ShardId",
+      "result_key": "StreamDescription.Shards",
+      "non_aggregate_keys": [
+        "StreamDescription.StreamARN",
+        "StreamDescription.StreamName",
+        "StreamDescription.StreamStatus",
+        "StreamDescription.RetentionPeriodHours",
+        "StreamDescription.EnhancedMonitoring",
+        "StreamDescription.EncryptionType",
+        "StreamDescription.KeyId",
+        "StreamDescription.StreamCreationTimestamp"
+      ]
+    },
+    "ListStreams": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "more_results": "HasMoreStreams",
+      "output_token": "NextToken",
+      "result_key": [
+        "StreamNames",
+        "StreamSummaries"
+      ]
+    },
+    "ListShards": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Shards"
+    },
+    "ListStreamConsumers": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Consumers"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/kinesis/2013-12-02/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/kinesis/2013-12-02/service-2.json.gz
new file mode 100644
index 00000000..30fb2de8
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kinesis/2013-12-02/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/kinesis/2013-12-02/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/kinesis/2013-12-02/waiters-2.json
new file mode 100644
index 00000000..d61efe43
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kinesis/2013-12-02/waiters-2.json
@@ -0,0 +1,30 @@
+{
+  "version": 2,
+  "waiters": {
+    "StreamExists": {
+      "delay": 10,
+      "operation": "DescribeStream",
+      "maxAttempts": 18,
+      "acceptors": [
+        {
+          "expected": "ACTIVE",
+          "matcher": "path",
+          "state": "success",
+          "argument": "StreamDescription.StreamStatus"
+        }
+      ]
+    },
+    "StreamNotExists": {
+      "delay": 10,
+      "operation": "DescribeStream",
+      "maxAttempts": 18,
+      "acceptors": [
+        {
+          "expected": "ResourceNotFoundException",
+          "matcher": "error",
+          "state": "success"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/kinesisanalytics/2015-08-14/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/kinesisanalytics/2015-08-14/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..bcb9af0c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kinesisanalytics/2015-08-14/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/kinesisanalytics/2015-08-14/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/kinesisanalytics/2015-08-14/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kinesisanalytics/2015-08-14/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/kinesisanalytics/2015-08-14/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/kinesisanalytics/2015-08-14/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kinesisanalytics/2015-08-14/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/kinesisanalytics/2015-08-14/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/kinesisanalytics/2015-08-14/service-2.json.gz
new file mode 100644
index 00000000..0165dd65
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kinesisanalytics/2015-08-14/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/kinesisanalyticsv2/2018-05-23/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/kinesisanalyticsv2/2018-05-23/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..ae981beb
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kinesisanalyticsv2/2018-05-23/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/kinesisanalyticsv2/2018-05-23/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/kinesisanalyticsv2/2018-05-23/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kinesisanalyticsv2/2018-05-23/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/kinesisanalyticsv2/2018-05-23/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/kinesisanalyticsv2/2018-05-23/paginators-1.json
new file mode 100644
index 00000000..eb315fdd
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kinesisanalyticsv2/2018-05-23/paginators-1.json
@@ -0,0 +1,28 @@
+{
+  "pagination": {
+    "ListApplicationSnapshots": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "SnapshotSummaries"
+    },
+    "ListApplications": {
+      "input_token": "NextToken",
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "result_key": "ApplicationSummaries"
+    },
+    "ListApplicationOperations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "Limit",
+      "result_key": "ApplicationOperationInfoList"
+    },
+    "ListApplicationVersions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "Limit",
+      "result_key": "ApplicationVersionSummaries"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/kinesisanalyticsv2/2018-05-23/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/kinesisanalyticsv2/2018-05-23/service-2.json.gz
new file mode 100644
index 00000000..217322fa
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kinesisanalyticsv2/2018-05-23/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/kinesisvideo/2017-09-30/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/kinesisvideo/2017-09-30/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..67f23cb8
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kinesisvideo/2017-09-30/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/kinesisvideo/2017-09-30/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/kinesisvideo/2017-09-30/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kinesisvideo/2017-09-30/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/kinesisvideo/2017-09-30/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/kinesisvideo/2017-09-30/paginators-1.json
new file mode 100644
index 00000000..9d837318
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kinesisvideo/2017-09-30/paginators-1.json
@@ -0,0 +1,28 @@
+{
+  "pagination": {
+    "ListStreams": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "StreamInfoList"
+    },
+    "ListSignalingChannels": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ChannelInfoList"
+    },
+    "DescribeMappedResourceConfiguration": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "MappedResourceConfigurationList"
+    },
+    "ListEdgeAgentConfigurations": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "EdgeConfigs"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/kinesisvideo/2017-09-30/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/kinesisvideo/2017-09-30/service-2.json.gz
new file mode 100644
index 00000000..b7439ce8
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kinesisvideo/2017-09-30/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/kms/2014-11-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/kms/2014-11-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..5419f89b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kms/2014-11-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/kms/2014-11-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/kms/2014-11-01/examples-1.json
new file mode 100644
index 00000000..c770d0ed
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kms/2014-11-01/examples-1.json
@@ -0,0 +1,1750 @@
+{
+  "version": "1.0",
+  "examples": {
+    "CancelKeyDeletion": [
+      {
+        "input": {
+          "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab"
+        },
+        "output": {
+          "KeyId": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
+        },
+        "comments": {
+          "input": {
+            "KeyId": "The identifier of the KMS key whose deletion you are canceling. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key."
+          },
+          "output": {
+            "KeyId": "The ARN of the KMS key whose deletion you canceled."
+          }
+        },
+        "description": "The following example cancels deletion of the specified KMS key.",
+        "id": "to-cancel-deletion-of-a-cmk-1477428535102",
+        "title": "To cancel deletion of a KMS key"
+      }
+    ],
+    "ConnectCustomKeyStore": [
+      {
+        "input": {
+          "CustomKeyStoreId": "cks-1234567890abcdef0"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+            "CustomKeyStoreId": "The ID of the AWS KMS custom key store."
+          },
+          "output": {
+          }
+        },
+        "description": "This example connects an AWS KMS custom key store to its AWS CloudHSM cluster. This operation does not return any data. To verify that the custom key store is connected, use the <code>DescribeCustomKeyStores</code> operation.",
+        "id": "to-connect-a-custom-key-store-to-its-cloudhsm-cluster-1628626947750",
+        "title": "To connect a custom key store to its CloudHSM cluster"
+      }
+    ],
+    "CreateAlias": [
+      {
+        "input": {
+          "AliasName": "alias/ExampleAlias",
+          "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab"
+        },
+        "comments": {
+          "input": {
+            "AliasName": "The alias to create. Aliases must begin with 'alias/'. Do not use aliases that begin with 'alias/aws' because they are reserved for use by AWS.",
+            "TargetKeyId": "The identifier of the KMS key whose alias you are creating. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key."
+          }
+        },
+        "description": "The following example creates an alias for the specified KMS key.",
+        "id": "to-create-an-alias-1477505685119",
+        "title": "To create an alias"
+      }
+    ],
+    "CreateCustomKeyStore": [
+      {
+        "input": {
+          "CloudHsmClusterId": "cluster-1a23b4cdefg",
+          "CustomKeyStoreName": "ExampleKeyStore",
+          "KeyStorePassword": "kmsPswd",
+          "TrustAnchorCertificate": "<certificate-goes-here>"
+        },
+        "output": {
+          "CustomKeyStoreId": "cks-1234567890abcdef0"
+        },
+        "comments": {
+          "input": {
+            "CloudHsmClusterId": "The ID of the CloudHSM cluster.",
+            "CustomKeyStoreName": "A friendly name for the custom key store.",
+            "KeyStorePassword": "The password for the kmsuser CU account in the specified cluster.",
+            "TrustAnchorCertificate": "The content of the customerCA.crt file that you created when you initialized the cluster."
+          },
+          "output": {
+            "CustomKeyStoreId": "The ID of the new custom key store."
+          }
+        },
+        "description": "This example creates a custom key store that is associated with an AWS CloudHSM cluster.",
+        "id": "to-create-an-aws-cloudhsm-custom-key-store-1628627769469",
+        "title": "To create an AWS CloudHSM custom key store"
+      }
+    ],
+    "CreateGrant": [
+      {
+        "input": {
+          "GranteePrincipal": "arn:aws:iam::111122223333:role/ExampleRole",
+          "KeyId": "arn:aws:kms:us-east-2:444455556666:key/1234abcd-12ab-34cd-56ef-1234567890ab",
+          "Operations": [
+            "Encrypt",
+            "Decrypt"
+          ]
+        },
+        "output": {
+          "GrantId": "0c237476b39f8bc44e45212e08498fbe3151305030726c0590dd8d3e9f3d6a60",
+          "GrantToken": "AQpAM2RhZTk1MGMyNTk2ZmZmMzEyYWVhOWViN2I1MWM4Mzc0MWFiYjc0ZDE1ODkyNGFlNTIzODZhMzgyZjBlNGY3NiKIAgEBAgB4Pa6VDCWW__MSrqnre1HIN0Grt00ViSSuUjhqOC8OT3YAAADfMIHcBgkqhkiG9w0BBwaggc4wgcsCAQAwgcUGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMmqLyBTAegIn9XlK5AgEQgIGXZQjkBcl1dykDdqZBUQ6L1OfUivQy7JVYO2-ZJP7m6f1g8GzV47HX5phdtONAP7K_HQIflcgpkoCqd_fUnE114mSmiagWkbQ5sqAVV3ov-VeqgrvMe5ZFEWLMSluvBAqdjHEdMIkHMlhlj4ENZbzBfo9Wxk8b8SnwP4kc4gGivedzFXo-dwN8fxjjq_ZZ9JFOj2ijIbj5FyogDCN0drOfi8RORSEuCEmPvjFRMFAwcmwFkN2NPp89amA"
+        },
+        "comments": {
+          "input": {
+            "GranteePrincipal": "The identity that is given permission to perform the operations specified in the grant.",
+            "KeyId": "The identifier of the KMS key to which the grant applies. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key.",
+            "Operations": "A list of operations that the grant allows."
+          },
+          "output": {
+            "GrantId": "The unique identifier of the grant.",
+            "GrantToken": "The grant token."
+          }
+        },
+        "description": "The following example creates a grant that allows the specified IAM role to encrypt data with the specified KMS key.",
+        "id": "to-create-a-grant-1477972226782",
+        "title": "To create a grant"
+      }
+    ],
+    "CreateKey": [
+      {
+        "input": {
+        },
+        "output": {
+          "KeyMetadata": {
+            "AWSAccountId": "111122223333",
+            "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
+            "CreationDate": "2017-07-05T14:04:55-07:00",
+            "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT",
+            "Description": "",
+            "Enabled": true,
+            "EncryptionAlgorithms": [
+              "SYMMETRIC_DEFAULT"
+            ],
+            "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
+            "KeyManager": "CUSTOMER",
+            "KeySpec": "SYMMETRIC_DEFAULT",
+            "KeyState": "Enabled",
+            "KeyUsage": "ENCRYPT_DECRYPT",
+            "MultiRegion": false,
+            "Origin": "AWS_KMS"
+          }
+        },
+        "comments": {
+          "input": {
+            "Tags": "One or more tags. Each tag consists of a tag key and a tag value."
+          },
+          "output": {
+            "KeyMetadata": "Detailed information about the KMS key that this operation creates."
+          }
+        },
+        "description": "The following example creates a symmetric KMS key for encryption and decryption. No parameters are required for this operation.",
+        "id": "to-create-a-cmk-1478028992966",
+        "title": "To create a KMS key"
+      },
+      {
+        "input": {
+          "KeySpec": "RSA_4096",
+          "KeyUsage": "ENCRYPT_DECRYPT"
+        },
+        "output": {
+          "KeyMetadata": {
+            "AWSAccountId": "111122223333",
+            "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
+            "CreationDate": "2021-04-05T14:04:55-07:00",
+            "CustomerMasterKeySpec": "RSA_4096",
+            "Description": "",
+            "Enabled": true,
+            "EncryptionAlgorithms": [
+              "RSAES_OAEP_SHA_1",
+              "RSAES_OAEP_SHA_256"
+            ],
+            "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
+            "KeyManager": "CUSTOMER",
+            "KeySpec": "RSA_4096",
+            "KeyState": "Enabled",
+            "KeyUsage": "ENCRYPT_DECRYPT",
+            "MultiRegion": false,
+            "Origin": "AWS_KMS"
+          }
+        },
+        "comments": {
+          "input": {
+            "KeySpec": "Describes the type of key material in the KMS key.",
+            "KeyUsage": "The cryptographic operations for which you can use the KMS key."
+          },
+          "output": {
+            "KeyMetadata": "Detailed information about the KMS key that this operation creates."
+          }
+        },
+        "description": "This example creates a KMS key that contains an asymmetric RSA key pair for encryption and decryption. The key spec and key usage can't be changed after the key is created.",
+        "id": "to-create-an-asymmetric-rsa-kms-key-for-encryption-and-decryption-1630533897833",
+        "title": "To create an asymmetric RSA KMS key for encryption and decryption"
+      },
+      {
+        "input": {
+          "KeySpec": "ECC_NIST_P521",
+          "KeyUsage": "SIGN_VERIFY"
+        },
+        "output": {
+          "KeyMetadata": {
+            "AWSAccountId": "111122223333",
+            "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
+            "CreationDate": "2019-12-02T07:48:55-07:00",
+            "CustomerMasterKeySpec": "ECC_NIST_P521",
+            "Description": "",
+            "Enabled": true,
+            "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
+            "KeyManager": "CUSTOMER",
+            "KeySpec": "ECC_NIST_P521",
+            "KeyState": "Enabled",
+            "KeyUsage": "SIGN_VERIFY",
+            "MultiRegion": false,
+            "Origin": "AWS_KMS",
+            "SigningAlgorithms": [
+              "ECDSA_SHA_512"
+            ]
+          }
+        },
+        "comments": {
+          "input": {
+            "KeySpec": "Describes the type of key material in the KMS key.",
+            "KeyUsage": "The cryptographic operations for which you can use the KMS key."
+          },
+          "output": {
+            "KeyMetadata": "Detailed information about the KMS key that this operation creates."
+          }
+        },
+        "description": "This example creates a KMS key that contains an asymmetric elliptic curve (ECC) key pair for signing and verification. The key usage is required even though \"SIGN_VERIFY\" is the only valid value for ECC KMS keys. The key spec and key usage can't be changed after the key is created.",
+        "id": "to-create-an-asymmetric-elliptic-curve-kms-key-for-signing-and-verification-1630541089401",
+        "title": "To create an asymmetric elliptic curve KMS key for signing and verification"
+      },
+      {
+        "input": {
+          "MultiRegion": true
+        },
+        "output": {
+          "KeyMetadata": {
+            "AWSAccountId": "111122223333",
+            "Arn": "arn:aws:kms:us-west-2:111122223333:key/mrk-1234abcd12ab34cd56ef12345678990ab",
+            "CreationDate": "2021-09-02T016:15:21-09:00",
+            "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT",
+            "Description": "",
+            "Enabled": true,
+            "EncryptionAlgorithms": [
+              "SYMMETRIC_DEFAULT"
+            ],
+            "KeyId": "mrk-1234abcd12ab34cd56ef12345678990ab",
+            "KeyManager": "CUSTOMER",
+            "KeySpec": "SYMMETRIC_DEFAULT",
+            "KeyState": "Enabled",
+            "KeyUsage": "ENCRYPT_DECRYPT",
+            "MultiRegion": true,
+            "MultiRegionConfiguration": {
+              "MultiRegionKeyType": "PRIMARY",
+              "PrimaryKey": {
+                "Arn": "arn:aws:kms:us-west-2:111122223333:key/mrk-1234abcd12ab34cd56ef12345678990ab",
+                "Region": "us-west-2"
+              },
+              "ReplicaKeys": [
+
+              ]
+            },
+            "Origin": "AWS_KMS"
+          }
+        },
+        "comments": {
+          "input": {
+            "MultiRegion": "Indicates whether the KMS key is a multi-Region (True) or regional (False) key."
+          },
+          "output": {
+            "KeyMetadata": "Detailed information about the KMS key that this operation creates."
+          }
+        },
+        "description": "This example creates a multi-Region primary symmetric encryption key. Because the default values for all parameters create a symmetric encryption key, only the MultiRegion parameter is required for this KMS key.",
+        "id": "to-create-a-multi-region-primary-kms-key-1630599158567",
+        "title": "To create a multi-Region primary KMS key"
+      },
+      {
+        "input": {
+          "Origin": "EXTERNAL"
+        },
+        "output": {
+          "KeyMetadata": {
+            "AWSAccountId": "111122223333",
+            "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
+            "CreationDate": "2019-12-02T07:48:55-07:00",
+            "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT",
+            "Description": "",
+            "Enabled": false,
+            "EncryptionAlgorithms": [
+              "SYMMETRIC_DEFAULT"
+            ],
+            "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
+            "KeyManager": "CUSTOMER",
+            "KeySpec": "SYMMETRIC_DEFAULT",
+            "KeyState": "PendingImport",
+            "KeyUsage": "ENCRYPT_DECRYPT",
+            "MultiRegion": false,
+            "Origin": "EXTERNAL"
+          }
+        },
+        "comments": {
+          "input": {
+            "Origin": "The source of the key material for the KMS key."
+          },
+          "output": {
+            "KeyMetadata": "Detailed information about the KMS key that this operation creates."
+          }
+        },
+        "description": "This example creates a KMS key with no key material. When the operation is complete, you can import your own key material into the KMS key. To create this KMS key, set the Origin parameter to EXTERNAL. ",
+        "id": "to-create-a-kms-key-for-imported-key-material-1630603607560",
+        "title": "To create a KMS key for imported key material"
+      },
+      {
+        "input": {
+          "CustomKeyStoreId": "cks-1234567890abcdef0",
+          "Origin": "AWS_CLOUDHSM"
+        },
+        "output": {
+          "KeyMetadata": {
+            "AWSAccountId": "111122223333",
+            "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
+            "CloudHsmClusterId": "cluster-1a23b4cdefg",
+            "CreationDate": "2019-12-02T07:48:55-07:00",
+            "CustomKeyStoreId": "cks-1234567890abcdef0",
+            "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT",
+            "Description": "",
+            "Enabled": true,
+            "EncryptionAlgorithms": [
+              "SYMMETRIC_DEFAULT"
+            ],
+            "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
+            "KeyManager": "CUSTOMER",
+            "KeySpec": "SYMMETRIC_DEFAULT",
+            "KeyState": "Enabled",
+            "KeyUsage": "ENCRYPT_DECRYPT",
+            "MultiRegion": false,
+            "Origin": "AWS_CLOUDHSM"
+          }
+        },
+        "comments": {
+          "input": {
+            "CustomKeyStoreId": "Identifies the custom key store that hosts the KMS key.",
+            "Origin": "Indicates the source of the key material for the KMS key."
+          },
+          "output": {
+            "KeyMetadata": "Detailed information about the KMS key that this operation creates."
+          }
+        },
+        "description": "This example creates a KMS key in the specified custom key store. The operation creates the KMS key and its metadata in AWS KMS and the key material in the AWS CloudHSM cluster associated with the custom key store. This example requires the Origin and CustomKeyStoreId parameters.",
+        "id": "to-create-a-kms-key-in-a-custom-key-store-1630604382908",
+        "title": "To create a KMS key in a custom key store"
+      },
+      {
+        "input": {
+          "KeySpec": "HMAC_384",
+          "KeyUsage": "GENERATE_VERIFY_MAC"
+        },
+        "output": {
+          "KeyMetadata": {
+            "AWSAccountId": "111122223333",
+            "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
+            "CreationDate": "2022-04-05T14:04:55-07:00",
+            "CustomerMasterKeySpec": "HMAC_384",
+            "Description": "",
+            "Enabled": true,
+            "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
+            "KeyManager": "CUSTOMER",
+            "KeySpec": "HMAC_384",
+            "KeyState": "Enabled",
+            "KeyUsage": "GENERATE_VERIFY_MAC",
+            "MacAlgorithms": [
+              "HMAC_SHA_384"
+            ],
+            "MultiRegion": false,
+            "Origin": "AWS_KMS"
+          }
+        },
+        "comments": {
+          "input": {
+            "KeySpec": "Describes the type of key material in the KMS key.",
+            "KeyUsage": "The cryptographic operations for which you can use the KMS key."
+          },
+          "output": {
+            "KeyMetadata": "Detailed information about the KMS key that this operation creates."
+          }
+        },
+        "description": "This example creates a 384-bit symmetric HMAC KMS key. The GENERATE_VERIFY_MAC key usage value is required even though it's the only valid value for HMAC KMS keys. The key spec and key usage can't be changed after the key is created. ",
+        "id": "to-create-an-hmac-kms-key-1630628752841",
+        "title": "To create an HMAC KMS key"
+      }
+    ],
+    "Decrypt": [
+      {
+        "input": {
+          "CiphertextBlob": "<binary data>",
+          "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
+        },
+        "output": {
+          "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
+          "Plaintext": "<binary data>"
+        },
+        "comments": {
+          "input": {
+            "CiphertextBlob": "The encrypted data (ciphertext).",
+            "KeyId": "A key identifier for the KMS key to use to decrypt the data."
+          },
+          "output": {
+            "KeyId": "The Amazon Resource Name (ARN) of the KMS key that was used to decrypt the data.",
+            "Plaintext": "The decrypted (plaintext) data."
+          }
+        },
+        "description": "The following example decrypts data that was encrypted with a KMS key.",
+        "id": "to-decrypt-data-1478281622886",
+        "title": "To decrypt data"
+      }
+    ],
+    "DeleteAlias": [
+      {
+        "input": {
+          "AliasName": "alias/ExampleAlias"
+        },
+        "comments": {
+          "input": {
+            "AliasName": "The alias to delete."
+          }
+        },
+        "description": "The following example deletes the specified alias.",
+        "id": "to-delete-an-alias-1478285209338",
+        "title": "To delete an alias"
+      }
+    ],
+    "DeleteCustomKeyStore": [
+      {
+        "input": {
+          "CustomKeyStoreId": "cks-1234567890abcdef0"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+            "CustomKeyStoreId": "The ID of the custom key store to be deleted."
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes a custom key store from AWS KMS. This operation does not delete the AWS CloudHSM cluster that was associated with the CloudHSM cluster. This operation doesn't return any data. To verify that the operation was successful, use the DescribeCustomKeyStores operation.  ",
+        "id": "to-delete-a-custom-key-store-from-aws-kms-1628630837145",
+        "title": "To delete a custom key store from AWS KMS"
+      }
+    ],
+    "DeleteImportedKeyMaterial": [
+      {
+        "input": {
+          "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab"
+        },
+        "comments": {
+          "input": {
+            "KeyId": "The identifier of the KMS key whose imported key material you are deleting. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key."
+          }
+        },
+        "description": "The following example deletes the imported key material from the specified KMS key.",
+        "id": "to-delete-imported-key-material-1478561674507",
+        "title": "To delete imported key material"
+      }
+    ],
+    "DescribeCustomKeyStores": [
+      {
+        "input": {
+        },
+        "output": {
+          "CustomKeyStores": [
+
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+            "CustomKeyStores": "Details about each custom key store in the account and Region."
+          }
+        },
+        "description": "This example gets detailed information about all AWS KMS custom key stores in an AWS account and Region. To get all key stores, do not enter a custom key store name or ID.",
+        "id": "to-get-detailed-information-about-custom-key-stores-in-the-account-and-region-1628628556811",
+        "title": "To get detailed information about custom key stores in the account and Region"
+      },
+      {
+        "input": {
+          "CustomKeyStoreName": "ExampleKeyStore"
+        },
+        "output": {
+          "CustomKeyStores": [
+            {
+              "CloudHsmClusterId": "cluster-1a23b4cdefg",
+              "ConnectionState": "CONNECTED",
+              "CreationDate": "1.499288695918E9",
+              "CustomKeyStoreId": "cks-1234567890abcdef0",
+              "CustomKeyStoreName": "ExampleKeyStore",
+              "TrustAnchorCertificate": "<certificate appears here>"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+            "CustomKeyStoreName": "The friendly name of the custom key store."
+          },
+          "output": {
+            "CustomKeyStores": "Detailed information about the specified custom key store."
+          }
+        },
+        "description": "This example gets detailed information about a particular AWS KMS custom key store that is associate with an AWS CloudHSM cluster. To limit the output to a particular custom key store, provide the custom key store name or ID. ",
+        "id": "to-get-detailed-information-about-a-custom-key-store-associated-with-a-cloudhsm-cluster-1628628885843",
+        "title": "To get detailed information about a custom key store associated with a CloudHSM cluster."
+      }
+    ],
+    "DescribeKey": [
+      {
+        "input": {
+          "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab"
+        },
+        "output": {
+          "KeyMetadata": {
+            "AWSAccountId": "111122223333",
+            "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
+            "CreationDate": "2017-07-05T14:04:55-07:00",
+            "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT",
+            "Description": "",
+            "Enabled": true,
+            "EncryptionAlgorithms": [
+              "SYMMETRIC_DEFAULT"
+            ],
+            "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
+            "KeyManager": "CUSTOMER",
+            "KeySpec": "SYMMETRIC_DEFAULT",
+            "KeyState": "Enabled",
+            "KeyUsage": "ENCRYPT_DECRYPT",
+            "MultiRegion": false,
+            "Origin": "AWS_KMS"
+          }
+        },
+        "comments": {
+          "input": {
+            "KeyId": "An identifier for the KMS key. You can use the key ID, key ARN, alias name, alias ARN of the KMS key."
+          },
+          "output": {
+            "KeyMetadata": "An object that contains information about the specified KMS key."
+          }
+        },
+        "description": "The following example gets metadata for a symmetric encryption KMS key.",
+        "id": "get-key-details-1478565820907",
+        "title": "To get details about a KMS key"
+      },
+      {
+        "input": {
+          "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab"
+        },
+        "output": {
+          "KeyMetadata": {
+            "AWSAccountId": "111122223333",
+            "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
+            "CreationDate": 1571767572.317,
+            "CustomerMasterKeySpec": "RSA_2048",
+            "Description": "",
+            "Enabled": false,
+            "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
+            "KeyManager": "CUSTOMER",
+            "KeySpec": "RSA_2048",
+            "KeyState": "Disabled",
+            "KeyUsage": "SIGN_VERIFY",
+            "MultiRegion": false,
+            "Origin": "AWS_KMS",
+            "SigningAlgorithms": [
+              "RSASSA_PKCS1_V1_5_SHA_256",
+              "RSASSA_PKCS1_V1_5_SHA_384",
+              "RSASSA_PKCS1_V1_5_SHA_512",
+              "RSASSA_PSS_SHA_256",
+              "RSASSA_PSS_SHA_384",
+              "RSASSA_PSS_SHA_512"
+            ]
+          }
+        },
+        "comments": {
+          "input": {
+            "KeyId": "An identifier for the KMS key. You can use the key ID, key ARN, alias name, alias ARN of the KMS key."
+          },
+          "output": {
+            "KeyMetadata": "An object that contains information about the specified KMS key."
+          }
+        },
+        "description": "The following example gets metadata for an asymmetric RSA KMS key used for signing and verification.",
+        "id": "to-get-details-about-an-rsa-asymmetric-kms-key-1637971611761",
+        "title": "To get details about an RSA asymmetric KMS key"
+      },
+      {
+        "input": {
+          "KeyId": "arn:aws:kms:ap-northeast-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab"
+        },
+        "output": {
+          "KeyMetadata": {
+            "AWSAccountId": "111122223333",
+            "Arn": "arn:aws:kms:ap-northeast-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab",
+            "CreationDate": 1586329200.918,
+            "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT",
+            "Description": "",
+            "Enabled": true,
+            "EncryptionAlgorithms": [
+              "SYMMETRIC_DEFAULT"
+            ],
+            "KeyId": "mrk-1234abcd12ab34cd56ef1234567890ab",
+            "KeyManager": "CUSTOMER",
+            "KeyState": "Enabled",
+            "KeyUsage": "ENCRYPT_DECRYPT",
+            "MultiRegion": true,
+            "MultiRegionConfiguration": {
+              "MultiRegionKeyType": "PRIMARY",
+              "PrimaryKey": {
+                "Arn": "arn:aws:kms:us-west-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab",
+                "Region": "us-west-2"
+              },
+              "ReplicaKeys": [
+                {
+                  "Arn": "arn:aws:kms:eu-west-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab",
+                  "Region": "eu-west-1"
+                },
+                {
+                  "Arn": "arn:aws:kms:ap-northeast-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab",
+                  "Region": "ap-northeast-1"
+                },
+                {
+                  "Arn": "arn:aws:kms:sa-east-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab",
+                  "Region": "sa-east-1"
+                }
+              ]
+            },
+            "Origin": "AWS_KMS"
+          }
+        },
+        "comments": {
+          "input": {
+            "KeyId": "An identifier for the KMS key. You can use the key ID, key ARN, alias name, alias ARN of the KMS key."
+          },
+          "output": {
+            "KeyMetadata": "An object that contains information about the specified KMS key."
+          }
+        },
+        "description": "The following example gets metadata for a multi-Region replica key. This multi-Region key is a symmetric encryption key. DescribeKey returns information about the primary key and all of its replicas.",
+        "id": "to-get-details-about-a-multi-region-key-1637969624239",
+        "title": "To get details about a multi-Region key"
+      },
+      {
+        "input": {
+          "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
+        },
+        "output": {
+          "KeyMetadata": {
+            "AWSAccountId": "123456789012",
+            "Arn": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab",
+            "CreationDate": 1566160362.664,
+            "CustomerMasterKeySpec": "HMAC_256",
+            "Description": "Development test key",
+            "Enabled": true,
+            "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
+            "KeyManager": "CUSTOMER",
+            "KeyState": "Enabled",
+            "KeyUsage": "GENERATE_VERIFY_MAC",
+            "MacAlgorithms": [
+              "HMAC_SHA_256"
+            ],
+            "MultiRegion": false,
+            "Origin": "AWS_KMS"
+          }
+        },
+        "comments": {
+          "input": {
+            "KeyId": "An identifier for the KMS key. You can use the key ID, key ARN, alias name, alias ARN of the KMS key."
+          },
+          "output": {
+            "KeyMetadata": "An object that contains information about the specified KMS key."
+          }
+        },
+        "description": "The following example gets the metadata of an HMAC KMS key. ",
+        "id": "to-get-details-about-an-hmac-kms-key-1637970472619",
+        "title": "To get details about an HMAC KMS key"
+      }
+    ],
+    "DisableKey": [
+      {
+        "input": {
+          "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab"
+        },
+        "comments": {
+          "input": {
+            "KeyId": "The identifier of the KMS key to disable. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key."
+          }
+        },
+        "description": "The following example disables the specified KMS key.",
+        "id": "to-disable-a-cmk-1478566583659",
+        "title": "To disable a KMS key"
+      }
+    ],
+    "DisableKeyRotation": [
+      {
+        "input": {
+          "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab"
+        },
+        "comments": {
+          "input": {
+            "KeyId": "The identifier of the KMS key whose key material will no longer be rotated. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key."
+          }
+        },
+        "description": "The following example disables automatic annual rotation of the key material for the specified KMS key.",
+        "id": "to-disable-automatic-rotation-of-key-material-1478624396092",
+        "title": "To disable automatic rotation of key material"
+      }
+    ],
+    "DisconnectCustomKeyStore": [
+      {
+        "input": {
+          "CustomKeyStoreId": "cks-1234567890abcdef0"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+            "CustomKeyStoreId": "The ID of the custom key store."
+          },
+          "output": {
+          }
+        },
+        "description": "This example disconnects an AWS KMS custom key store from its AWS CloudHSM cluster. This operation doesn't return any data. To verify that the custom key store is disconnected, use the <code>DescribeCustomKeyStores</code> operation.",
+        "id": "to-disconnect-a-custom-key-store-from-its-cloudhsm-cluster-1628627955156",
+        "title": "To disconnect a custom key store from its CloudHSM cluster"
+      }
+    ],
+    "EnableKey": [
+      {
+        "input": {
+          "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab"
+        },
+        "comments": {
+          "input": {
+            "KeyId": "The identifier of the KMS key to enable. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key."
+          }
+        },
+        "description": "The following example enables the specified KMS key.",
+        "id": "to-enable-a-cmk-1478627501129",
+        "title": "To enable a KMS key"
+      }
+    ],
+    "EnableKeyRotation": [
+      {
+        "input": {
+          "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab"
+        },
+        "comments": {
+          "input": {
+            "KeyId": "The identifier of the KMS key whose key material will be rotated annually. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key."
+          }
+        },
+        "description": "The following example enables automatic annual rotation of the key material for the specified KMS key.",
+        "id": "to-enable-automatic-rotation-of-key-material-1478629109677",
+        "title": "To enable automatic rotation of key material"
+      }
+    ],
+    "Encrypt": [
+      {
+        "input": {
+          "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
+          "Plaintext": "<binary data>"
+        },
+        "output": {
+          "CiphertextBlob": "<binary data>",
+          "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
+        },
+        "comments": {
+          "input": {
+            "KeyId": "The identifier of the KMS key to use for encryption. You can use the key ID or Amazon Resource Name (ARN) of the KMS key, or the name or ARN of an alias that refers to the KMS key.",
+            "Plaintext": "The data to encrypt."
+          },
+          "output": {
+            "CiphertextBlob": "The encrypted data (ciphertext).",
+            "KeyId": "The ARN of the KMS key that was used to encrypt the data."
+          }
+        },
+        "description": "The following example encrypts data with the specified KMS key.",
+        "id": "to-encrypt-data-1478906026012",
+        "title": "To encrypt data"
+      }
+    ],
+    "GenerateDataKey": [
+      {
+        "input": {
+          "KeyId": "alias/ExampleAlias",
+          "KeySpec": "AES_256"
+        },
+        "output": {
+          "CiphertextBlob": "<binary data>",
+          "KeyId": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
+          "Plaintext": "<binary data>"
+        },
+        "comments": {
+          "input": {
+            "KeyId": "The identifier of the KMS key to use to encrypt the data key. You can use the key ID or Amazon Resource Name (ARN) of the KMS key, or the name or ARN of an alias that refers to the KMS key.",
+            "KeySpec": "Specifies the type of data key to return."
+          },
+          "output": {
+            "CiphertextBlob": "The encrypted data key.",
+            "KeyId": "The ARN of the KMS key that was used to encrypt the data key.",
+            "Plaintext": "The unencrypted (plaintext) data key."
+          }
+        },
+        "description": "The following example generates a 256-bit symmetric data encryption key (data key) in two formats. One is the unencrypted (plainext) data key, and the other is the data key encrypted with the specified KMS key.",
+        "id": "to-generate-a-data-key-1478912956062",
+        "title": "To generate a data key"
+      }
+    ],
+    "GenerateDataKeyPair": [
+      {
+        "input": {
+          "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
+          "KeyPairSpec": "RSA_3072"
+        },
+        "output": {
+          "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
+          "KeyPairSpec": "RSA_3072",
+          "PrivateKeyCiphertextBlob": "<binary data>",
+          "PrivateKeyPlaintext": "<binary data>",
+          "PublicKey": "<binary data>"
+        },
+        "comments": {
+          "input": {
+            "KeyId": "The key ID of the symmetric encryption KMS key that encrypts the private RSA key in the data key pair.",
+            "KeyPairSpec": "The requested key spec of the RSA data key pair."
+          },
+          "output": {
+            "KeyId": "The key ARN of the symmetric encryption KMS key that was used to encrypt the private key.",
+            "KeyPairSpec": "The actual key spec of the RSA data key pair.",
+            "PrivateKeyCiphertextBlob": "The encrypted private key of the RSA data key pair.",
+            "PrivateKeyPlaintext": "The plaintext private key of the RSA data key pair.",
+            "PublicKey": "The public key (plaintext) of the RSA data key pair."
+          }
+        },
+        "description": "This example generates an RSA data key pair for encryption and decryption. The operation returns a plaintext public key and private key, and a copy of the private key that is encrypted under a symmetric encryption KMS key that you specify.",
+        "id": "to-generate-an-rsa-key-pair-for-encryption-and-decryption-1628619376878",
+        "title": "To generate an RSA key pair for encryption and decryption"
+      }
+    ],
+    "GenerateDataKeyPairWithoutPlaintext": [
+      {
+        "input": {
+          "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
+          "KeyPairSpec": "ECC_NIST_P521"
+        },
+        "output": {
+          "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
+          "KeyPairSpec": "ECC_NIST_P521",
+          "PrivateKeyCiphertextBlob": "<binary data>",
+          "PublicKey": "<binary data>"
+        },
+        "comments": {
+          "input": {
+            "KeyId": "The symmetric encryption KMS key that encrypts the private key of the ECC data key pair.",
+            "KeyPairSpec": "The requested key spec of the ECC asymmetric data key pair."
+          },
+          "output": {
+            "KeyId": "The key ARN of the symmetric encryption KMS key that encrypted the private key in the ECC asymmetric data key pair.",
+            "KeyPairSpec": "The actual key spec of the ECC asymmetric data key pair.",
+            "PrivateKeyCiphertextBlob": "The encrypted private key of the asymmetric ECC data key pair.",
+            "PublicKey": "The public key (plaintext)."
+          }
+        },
+        "description": "This example returns an asymmetric elliptic curve (ECC) data key pair. The private key is encrypted under the symmetric encryption KMS key that you specify. This operation doesn't return a plaintext (unencrypted) private key.",
+        "id": "to-generate-an-asymmetric-data-key-pair-without-a-plaintext-key-1628620971564",
+        "title": "To generate an asymmetric data key pair without a plaintext key"
+      }
+    ],
+    "GenerateDataKeyWithoutPlaintext": [
+      {
+        "input": {
+          "KeyId": "alias/ExampleAlias",
+          "KeySpec": "AES_256"
+        },
+        "output": {
+          "CiphertextBlob": "<binary data>",
+          "KeyId": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
+        },
+        "comments": {
+          "input": {
+            "KeyId": "The identifier of the KMS key to use to encrypt the data key. You can use the key ID or Amazon Resource Name (ARN) of the KMS key, or the name or ARN of an alias that refers to the KMS key.",
+            "KeySpec": "Specifies the type of data key to return."
+          },
+          "output": {
+            "CiphertextBlob": "The encrypted data key.",
+            "KeyId": "The ARN of the KMS key that was used to encrypt the data key."
+          }
+        },
+        "description": "The following example generates an encrypted copy of a 256-bit symmetric data encryption key (data key). The data key is encrypted with the specified KMS key.",
+        "id": "to-generate-an-encrypted-data-key-1478914121134",
+        "title": "To generate an encrypted data key"
+      }
+    ],
+    "GenerateMac": [
+      {
+        "input": {
+          "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
+          "MacAlgorithm": "HMAC_SHA_384",
+          "Message": "Hello World"
+        },
+        "output": {
+          "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
+          "Mac": "<HMAC_TAG>",
+          "MacAlgorithm": "HMAC_SHA_384"
+        },
+        "comments": {
+          "input": {
+            "KeyId": "The HMAC KMS key input to the HMAC algorithm.",
+            "MacAlgorithm": "The HMAC algorithm requested for the operation.",
+            "Message": "The message input to the HMAC algorithm."
+          },
+          "output": {
+            "KeyId": "The key ARN of the HMAC KMS key used in the operation.",
+            "Mac": "The HMAC tag that results from this operation.",
+            "MacAlgorithm": "The HMAC algorithm used in the operation."
+          }
+        },
+        "description": "This example generates an HMAC for a message, an HMAC KMS key, and a MAC algorithm. The algorithm must be supported by the specified HMAC KMS key.",
+        "id": "to-generate-an-hmac-for-a-message-1631570135665",
+        "title": "To generate an HMAC for a message"
+      }
+    ],
+    "GenerateRandom": [
+      {
+        "input": {
+          "NumberOfBytes": 32
+        },
+        "output": {
+          "Plaintext": "<binary data>"
+        },
+        "comments": {
+          "input": {
+            "NumberOfBytes": "The length of the random data, specified in number of bytes."
+          },
+          "output": {
+            "Plaintext": "The random data."
+          }
+        },
+        "description": "The following example generates 32 bytes of random data.",
+        "id": "to-generate-random-data-1479163645600",
+        "title": "To generate random data"
+      }
+    ],
+    "GetKeyPolicy": [
+      {
+        "input": {
+          "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
+          "PolicyName": "default"
+        },
+        "output": {
+          "Policy": "{\n  \"Version\" : \"2012-10-17\",\n  \"Id\" : \"key-default-1\",\n  \"Statement\" : [ {\n    \"Sid\" : \"Enable IAM User Permissions\",\n    \"Effect\" : \"Allow\",\n    \"Principal\" : {\n      \"AWS\" : \"arn:aws:iam::111122223333:root\"\n    },\n    \"Action\" : \"kms:*\",\n    \"Resource\" : \"*\"\n  } ]\n}"
+        },
+        "comments": {
+          "input": {
+            "KeyId": "The identifier of the KMS key whose key policy you want to retrieve. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key.",
+            "PolicyName": "The name of the key policy to retrieve."
+          },
+          "output": {
+            "Policy": "The key policy document."
+          }
+        },
+        "description": "The following example retrieves the key policy for the specified KMS key.",
+        "id": "to-retrieve-a-key-policy-1479170128325",
+        "title": "To retrieve a key policy"
+      }
+    ],
+    "GetKeyRotationStatus": [
+      {
+        "input": {
+          "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab"
+        },
+        "output": {
+          "KeyRotationEnabled": true
+        },
+        "comments": {
+          "input": {
+            "KeyId": "The identifier of the KMS key whose key material rotation status you want to retrieve. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key."
+          },
+          "output": {
+            "KeyRotationEnabled": "A boolean that indicates the key material rotation status. Returns true when automatic annual rotation of the key material is enabled, or false when it is not."
+          }
+        },
+        "description": "The following example retrieves the status of automatic annual rotation of the key material for the specified KMS key.",
+        "id": "to-retrieve-the-rotation-status-for-a-cmk-1479172287408",
+        "title": "To retrieve the rotation status for a KMS key"
+      }
+    ],
+    "GetParametersForImport": [
+      {
+        "input": {
+          "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
+          "WrappingAlgorithm": "RSAES_OAEP_SHA_1",
+          "WrappingKeySpec": "RSA_2048"
+        },
+        "output": {
+          "ImportToken": "<binary data>",
+          "KeyId": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
+          "ParametersValidTo": "2016-12-01T14:52:17-08:00",
+          "PublicKey": "<binary data>"
+        },
+        "comments": {
+          "input": {
+            "KeyId": "The identifier of the KMS key for which to retrieve the public key and import token. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key.",
+            "WrappingAlgorithm": "The algorithm that you will use to encrypt the key material before importing it.",
+            "WrappingKeySpec": "The type of wrapping key (public key) to return in the response."
+          },
+          "output": {
+            "ImportToken": "The import token to send with a subsequent ImportKeyMaterial request.",
+            "KeyId": "The ARN of the KMS key for which you are retrieving the public key and import token. This is the same KMS key specified in the request.",
+            "ParametersValidTo": "The time at which the import token and public key are no longer valid.",
+            "PublicKey": "The public key to use to encrypt the key material before importing it."
+          }
+        },
+        "description": "The following example retrieves the public key and import token for the specified KMS key.",
+        "id": "to-retrieve-the-public-key-and-import-token-for-a-cmk-1480626483211",
+        "title": "To retrieve the public key and import token for a KMS key"
+      }
+    ],
+    "GetPublicKey": [
+      {
+        "input": {
+          "KeyId": "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321"
+        },
+        "output": {
+          "CustomerMasterKeySpec": "RSA_4096",
+          "EncryptionAlgorithms": [
+            "RSAES_OAEP_SHA_1",
+            "RSAES_OAEP_SHA_256"
+          ],
+          "KeyId": "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321",
+          "KeyUsage": "ENCRYPT_DECRYPT",
+          "PublicKey": "<binary data>"
+        },
+        "comments": {
+          "input": {
+            "KeyId": "The key ARN of the asymmetric KMS key."
+          },
+          "output": {
+            "CustomerMasterKeySpec": "The key spec of the asymmetric KMS key from which the public key was downloaded.",
+            "EncryptionAlgorithms": "The encryption algorithms supported by the asymmetric KMS key that was downloaded.",
+            "KeyId": "The key ARN of the asymmetric KMS key from which the public key was downloaded.",
+            "KeyUsage": "The key usage of the asymmetric KMS key from which the public key was downloaded.",
+            "PublicKey": "The public key (plaintext) of the asymmetric KMS key."
+          }
+        },
+        "description": "This example gets the public key of an asymmetric RSA KMS key used for encryption and decryption. The operation returns the key spec, key usage, and encryption or signing algorithms to help you use the public key correctly outside of AWS KMS.",
+        "id": "to-download-the-public-key-of-an-asymmetric-kms-key-1628621691873",
+        "title": "To download the public key of an asymmetric KMS key"
+      }
+    ],
+    "ImportKeyMaterial": [
+      {
+        "input": {
+          "EncryptedKeyMaterial": "<binary data>",
+          "ExpirationModel": "KEY_MATERIAL_DOES_NOT_EXPIRE",
+          "ImportToken": "<binary data>",
+          "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab"
+        },
+        "comments": {
+          "input": {
+            "EncryptedKeyMaterial": "The encrypted key material to import.",
+            "ExpirationModel": "A value that specifies whether the key material expires.",
+            "ImportToken": "The import token that you received in the response to a previous GetParametersForImport request.",
+            "KeyId": "The identifier of the KMS key to import the key material into. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key."
+          }
+        },
+        "description": "The following example imports key material into the specified KMS key.",
+        "id": "to-import-key-material-into-a-cmk-1480630551969",
+        "title": "To import key material into a KMS key"
+      }
+    ],
+    "ListAliases": [
+      {
+        "output": {
+          "Aliases": [
+            {
+              "AliasArn": "arn:aws:kms:us-east-2:111122223333:alias/aws/acm",
+              "AliasName": "alias/aws/acm",
+              "TargetKeyId": "da03f6f7-d279-427a-9cae-de48d07e5b66"
+            },
+            {
+              "AliasArn": "arn:aws:kms:us-east-2:111122223333:alias/aws/ebs",
+              "AliasName": "alias/aws/ebs",
+              "TargetKeyId": "25a217e7-7170-4b8c-8bf6-045ea5f70e5b"
+            },
+            {
+              "AliasArn": "arn:aws:kms:us-east-2:111122223333:alias/aws/rds",
+              "AliasName": "alias/aws/rds",
+              "TargetKeyId": "7ec3104e-c3f2-4b5c-bf42-bfc4772c6685"
+            },
+            {
+              "AliasArn": "arn:aws:kms:us-east-2:111122223333:alias/aws/redshift",
+              "AliasName": "alias/aws/redshift",
+              "TargetKeyId": "08f7a25a-69e2-4fb5-8f10-393db27326fa"
+            },
+            {
+              "AliasArn": "arn:aws:kms:us-east-2:111122223333:alias/aws/s3",
+              "AliasName": "alias/aws/s3",
+              "TargetKeyId": "d2b0f1a3-580d-4f79-b836-bc983be8cfa5"
+            },
+            {
+              "AliasArn": "arn:aws:kms:us-east-2:111122223333:alias/example1",
+              "AliasName": "alias/example1",
+              "TargetKeyId": "4da1e216-62d0-46c5-a7c0-5f3a3d2f8046"
+            },
+            {
+              "AliasArn": "arn:aws:kms:us-east-2:111122223333:alias/example2",
+              "AliasName": "alias/example2",
+              "TargetKeyId": "f32fef59-2cc2-445b-8573-2d73328acbee"
+            },
+            {
+              "AliasArn": "arn:aws:kms:us-east-2:111122223333:alias/example3",
+              "AliasName": "alias/example3",
+              "TargetKeyId": "1374ef38-d34e-4d5f-b2c9-4e0daee38855"
+            }
+          ],
+          "Truncated": false
+        },
+        "comments": {
+          "output": {
+            "Aliases": "A list of aliases, including the key ID of the KMS key that each alias refers to.",
+            "Truncated": "A boolean that indicates whether there are more items in the list. Returns true when there are more items, or false when there are not."
+          }
+        },
+        "description": "The following example lists aliases.",
+        "id": "to-list-aliases-1480729693349",
+        "title": "To list aliases"
+      }
+    ],
+    "ListGrants": [
+      {
+        "input": {
+          "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab"
+        },
+        "output": {
+          "Grants": [
+            {
+              "CreationDate": "2016-10-25T14:37:41-07:00",
+              "GrantId": "91ad875e49b04a9d1f3bdeb84d821f9db6ea95e1098813f6d47f0c65fbe2a172",
+              "GranteePrincipal": "acm.us-east-2.amazonaws.com",
+              "IssuingAccount": "arn:aws:iam::111122223333:root",
+              "KeyId": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
+              "Operations": [
+                "Encrypt",
+                "ReEncryptFrom",
+                "ReEncryptTo"
+              ],
+              "RetiringPrincipal": "acm.us-east-2.amazonaws.com"
+            },
+            {
+              "CreationDate": "2016-10-25T14:37:41-07:00",
+              "GrantId": "a5d67d3e207a8fc1f4928749ee3e52eb0440493a8b9cf05bbfad91655b056200",
+              "GranteePrincipal": "acm.us-east-2.amazonaws.com",
+              "IssuingAccount": "arn:aws:iam::111122223333:root",
+              "KeyId": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
+              "Operations": [
+                "ReEncryptFrom",
+                "ReEncryptTo"
+              ],
+              "RetiringPrincipal": "acm.us-east-2.amazonaws.com"
+            },
+            {
+              "CreationDate": "2016-10-25T14:37:41-07:00",
+              "GrantId": "c541aaf05d90cb78846a73b346fc43e65be28b7163129488c738e0c9e0628f4f",
+              "GranteePrincipal": "acm.us-east-2.amazonaws.com",
+              "IssuingAccount": "arn:aws:iam::111122223333:root",
+              "KeyId": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
+              "Operations": [
+                "Encrypt",
+                "ReEncryptFrom",
+                "ReEncryptTo"
+              ],
+              "RetiringPrincipal": "acm.us-east-2.amazonaws.com"
+            },
+            {
+              "CreationDate": "2016-10-25T14:37:41-07:00",
+              "GrantId": "dd2052c67b4c76ee45caf1dc6a1e2d24e8dc744a51b36ae2f067dc540ce0105c",
+              "GranteePrincipal": "acm.us-east-2.amazonaws.com",
+              "IssuingAccount": "arn:aws:iam::111122223333:root",
+              "KeyId": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
+              "Operations": [
+                "Encrypt",
+                "ReEncryptFrom",
+                "ReEncryptTo"
+              ],
+              "RetiringPrincipal": "acm.us-east-2.amazonaws.com"
+            }
+          ],
+          "Truncated": true
+        },
+        "comments": {
+          "input": {
+            "KeyId": "The identifier of the KMS key whose grants you want to list. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key."
+          },
+          "output": {
+            "Grants": "A list of grants.",
+            "Truncated": "A boolean that indicates whether there are more items in the list. Returns true when there are more items, or false when there are not."
+          }
+        },
+        "description": "The following example lists grants for the specified KMS key.",
+        "id": "to-list-grants-for-a-cmk-1481067365389",
+        "title": "To list grants for a KMS key"
+      }
+    ],
+    "ListKeyPolicies": [
+      {
+        "input": {
+          "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab"
+        },
+        "output": {
+          "PolicyNames": [
+            "default"
+          ],
+          "Truncated": false
+        },
+        "comments": {
+          "input": {
+            "KeyId": "The identifier of the KMS key whose key policies you want to list. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key."
+          },
+          "output": {
+            "PolicyNames": "A list of key policy names.",
+            "Truncated": "A boolean that indicates whether there are more items in the list. Returns true when there are more items, or false when there are not."
+          }
+        },
+        "description": "The following example lists key policies for the specified KMS key.",
+        "id": "to-list-key-policies-for-a-cmk-1481069780998",
+        "title": "To list key policies for a KMS key"
+      }
+    ],
+    "ListKeys": [
+      {
+        "output": {
+          "Keys": [
+            {
+              "KeyArn": "arn:aws:kms:us-east-2:111122223333:key/0d990263-018e-4e65-a703-eff731de951e",
+              "KeyId": "0d990263-018e-4e65-a703-eff731de951e"
+            },
+            {
+              "KeyArn": "arn:aws:kms:us-east-2:111122223333:key/144be297-0ae1-44ac-9c8f-93cd8c82f841",
+              "KeyId": "144be297-0ae1-44ac-9c8f-93cd8c82f841"
+            },
+            {
+              "KeyArn": "arn:aws:kms:us-east-2:111122223333:key/21184251-b765-428e-b852-2c7353e72571",
+              "KeyId": "21184251-b765-428e-b852-2c7353e72571"
+            },
+            {
+              "KeyArn": "arn:aws:kms:us-east-2:111122223333:key/214fe92f-5b03-4ae1-b350-db2a45dbe10c",
+              "KeyId": "214fe92f-5b03-4ae1-b350-db2a45dbe10c"
+            },
+            {
+              "KeyArn": "arn:aws:kms:us-east-2:111122223333:key/339963f2-e523-49d3-af24-a0fe752aa458",
+              "KeyId": "339963f2-e523-49d3-af24-a0fe752aa458"
+            },
+            {
+              "KeyArn": "arn:aws:kms:us-east-2:111122223333:key/b776a44b-df37-4438-9be4-a27494e4271a",
+              "KeyId": "b776a44b-df37-4438-9be4-a27494e4271a"
+            },
+            {
+              "KeyArn": "arn:aws:kms:us-east-2:111122223333:key/deaf6c9e-cf2c-46a6-bf6d-0b6d487cffbb",
+              "KeyId": "deaf6c9e-cf2c-46a6-bf6d-0b6d487cffbb"
+            }
+          ],
+          "Truncated": false
+        },
+        "comments": {
+          "output": {
+            "Keys": "A list of KMS keys, including the key ID and Amazon Resource Name (ARN) of each one.",
+            "Truncated": "A boolean that indicates whether there are more items in the list. Returns true when there are more items, or false when there are not."
+          }
+        },
+        "description": "The following example lists KMS keys.",
+        "id": "to-list-cmks-1481071643069",
+        "title": "To list KMS keys"
+      }
+    ],
+    "ListResourceTags": [
+      {
+        "input": {
+          "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab"
+        },
+        "output": {
+          "Tags": [
+            {
+              "TagKey": "CostCenter",
+              "TagValue": "87654"
+            },
+            {
+              "TagKey": "CreatedBy",
+              "TagValue": "ExampleUser"
+            },
+            {
+              "TagKey": "Purpose",
+              "TagValue": "Test"
+            }
+          ],
+          "Truncated": false
+        },
+        "comments": {
+          "input": {
+            "KeyId": "The identifier of the KMS key whose tags you are listing. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key."
+          },
+          "output": {
+            "Tags": "A list of tags.",
+            "Truncated": "A boolean that indicates whether there are more items in the list. Returns true when there are more items, or false when there are not."
+          }
+        },
+        "description": "The following example lists tags for a KMS key.",
+        "id": "to-list-tags-for-a-cmk-1483996855796",
+        "title": "To list tags for a KMS key"
+      }
+    ],
+    "ListRetirableGrants": [
+      {
+        "input": {
+          "RetiringPrincipal": "arn:aws:iam::111122223333:role/ExampleRole"
+        },
+        "output": {
+          "Grants": [
+            {
+              "CreationDate": "2016-12-07T11:09:35-08:00",
+              "GrantId": "0c237476b39f8bc44e45212e08498fbe3151305030726c0590dd8d3e9f3d6a60",
+              "GranteePrincipal": "arn:aws:iam::111122223333:role/ExampleRole",
+              "IssuingAccount": "arn:aws:iam::444455556666:root",
+              "KeyId": "arn:aws:kms:us-east-2:444455556666:key/1234abcd-12ab-34cd-56ef-1234567890ab",
+              "Operations": [
+                "Decrypt",
+                "Encrypt"
+              ],
+              "RetiringPrincipal": "arn:aws:iam::111122223333:role/ExampleRole"
+            }
+          ],
+          "Truncated": false
+        },
+        "comments": {
+          "input": {
+            "RetiringPrincipal": "The retiring principal whose grants you want to list. Use the Amazon Resource Name (ARN) of a principal such as an AWS account (root), IAM user, federated user, or assumed role user."
+          },
+          "output": {
+            "Grants": "A list of grants that the specified principal can retire.",
+            "Truncated": "A boolean that indicates whether there are more items in the list. Returns true when there are more items, or false when there are not."
+          }
+        },
+        "description": "The following example lists the grants that the specified principal (identity) can retire.",
+        "id": "to-list-grants-that-the-specified-principal-can-retire-1481140499620",
+        "title": "To list grants that the specified principal can retire"
+      }
+    ],
+    "PutKeyPolicy": [
+      {
+        "input": {
+          "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
+          "Policy": "{\n    \"Version\": \"2012-10-17\",\n    \"Id\": \"custom-policy-2016-12-07\",\n    \"Statement\": [\n        {\n            \"Sid\": \"Enable IAM User Permissions\",\n            \"Effect\": \"Allow\",\n            \"Principal\": {\n                \"AWS\": \"arn:aws:iam::111122223333:root\"\n            },\n            \"Action\": \"kms:*\",\n            \"Resource\": \"*\"\n        },\n        {\n            \"Sid\": \"Allow access for Key Administrators\",\n            \"Effect\": \"Allow\",\n            \"Principal\": {\n                \"AWS\": [\n                    \"arn:aws:iam::111122223333:user/ExampleAdminUser\",\n                    \"arn:aws:iam::111122223333:role/ExampleAdminRole\"\n                ]\n            },\n            \"Action\": [\n                \"kms:Create*\",\n                \"kms:Describe*\",\n                \"kms:Enable*\",\n                \"kms:List*\",\n                \"kms:Put*\",\n                \"kms:Update*\",\n                \"kms:Revoke*\",\n                \"kms:Disable*\",\n                \"kms:Get*\",\n                \"kms:Delete*\",\n                \"kms:ScheduleKeyDeletion\",\n                \"kms:CancelKeyDeletion\"\n            ],\n            \"Resource\": \"*\"\n        },\n        {\n            \"Sid\": \"Allow use of the key\",\n            \"Effect\": \"Allow\",\n            \"Principal\": {\n                \"AWS\": \"arn:aws:iam::111122223333:role/ExamplePowerUserRole\"\n            },\n            \"Action\": [\n                \"kms:Encrypt\",\n                \"kms:Decrypt\",\n                \"kms:ReEncrypt*\",\n                \"kms:GenerateDataKey*\",\n                \"kms:DescribeKey\"\n            ],\n            \"Resource\": \"*\"\n        },\n        {\n            \"Sid\": \"Allow attachment of persistent resources\",\n            \"Effect\": \"Allow\",\n            \"Principal\": {\n                \"AWS\": \"arn:aws:iam::111122223333:role/ExamplePowerUserRole\"\n            },\n            \"Action\": [\n                \"kms:CreateGrant\",\n                \"kms:ListGrants\",\n                \"kms:RevokeGrant\"\n            ],\n            \"Resource\": \"*\",\n            \"Condition\": {\n                \"Bool\": {\n                    \"kms:GrantIsForAWSResource\": \"true\"\n                }\n            }\n        }\n    ]\n}\n",
+          "PolicyName": "default"
+        },
+        "comments": {
+          "input": {
+            "KeyId": "The identifier of the KMS key to attach the key policy to. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key.",
+            "Policy": "The key policy document.",
+            "PolicyName": "The name of the key policy."
+          }
+        },
+        "description": "The following example attaches a key policy to the specified KMS key.",
+        "id": "to-attach-a-key-policy-to-a-cmk-1481147345018",
+        "title": "To attach a key policy to a KMS key"
+      }
+    ],
+    "ReEncrypt": [
+      {
+        "input": {
+          "CiphertextBlob": "<binary data>",
+          "DestinationKeyId": "0987dcba-09fe-87dc-65ba-ab0987654321"
+        },
+        "output": {
+          "CiphertextBlob": "<binary data>",
+          "KeyId": "arn:aws:kms:us-east-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321",
+          "SourceKeyId": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
+        },
+        "comments": {
+          "input": {
+            "CiphertextBlob": "The data to reencrypt.",
+            "DestinationKeyId": "The identifier of the KMS key to use to reencrypt the data. You can use any valid key identifier.",
+            "SourceKeyId": "The identifier of the KMS key to use to decrypt the data. You can use any valid key identifier."
+          },
+          "output": {
+            "CiphertextBlob": "The reencrypted data.",
+            "KeyId": "The ARN of the KMS key that was used to reencrypt the data.",
+            "SourceKeyId": "The ARN of the KMS key that was originally used to encrypt the data."
+          }
+        },
+        "description": "The following example reencrypts data with the specified KMS key.",
+        "id": "to-reencrypt-data-1481230358001",
+        "title": "To reencrypt data"
+      }
+    ],
+    "ReplicateKey": [
+      {
+        "input": {
+          "KeyId": "arn:aws:kms:us-east-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab",
+          "ReplicaRegion": "us-west-2"
+        },
+        "output": {
+          "ReplicaKeyMetadata": {
+            "AWSAccountId": "111122223333",
+            "Arn": "arn:aws:kms:us-west-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab",
+            "CreationDate": 1607472987.918,
+            "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT",
+            "Description": "",
+            "Enabled": true,
+            "EncryptionAlgorithms": [
+              "SYMMETRIC_DEFAULT"
+            ],
+            "KeyId": "mrk-1234abcd12ab34cd56ef1234567890ab",
+            "KeyManager": "CUSTOMER",
+            "KeyState": "Enabled",
+            "KeyUsage": "ENCRYPT_DECRYPT",
+            "MultiRegion": true,
+            "MultiRegionConfiguration": {
+              "MultiRegionKeyType": "REPLICA",
+              "PrimaryKey": {
+                "Arn": "arn:aws:kms:us-east-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab",
+                "Region": "us-east-1"
+              },
+              "ReplicaKeys": [
+                {
+                  "Arn": "arn:aws:kms:us-west-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab",
+                  "Region": "us-west-2"
+                }
+              ]
+            },
+            "Origin": "AWS_KMS"
+          },
+          "ReplicaPolicy": "{\n  \"Version\" : \"2012-10-17\",\n  \"Id\" : \"key-default-1\",...}",
+          "ReplicaTags": [
+
+          ]
+        },
+        "comments": {
+          "input": {
+            "KeyId": "The key ID or key ARN of the multi-Region primary key",
+            "ReplicaRegion": "The Region of the new replica."
+          },
+          "output": {
+            "ReplicaKeyMetadata": "An object that displays detailed information about the replica key.",
+            "ReplicaPolicy": "The key policy of the replica key. If you don't specify a key policy, the replica key gets the default key policy for a KMS key.",
+            "ReplicaTags": "The tags on the replica key, if any."
+          }
+        },
+        "description": "This example creates a multi-Region replica key in us-west-2 of a multi-Region primary key in us-east-1. ",
+        "id": "to-replicate-a-multi-region-key-in-a-different-aws-region-1628622402887",
+        "title": "To replicate a multi-Region key in a different AWS Region"
+      }
+    ],
+    "RetireGrant": [
+      {
+        "input": {
+          "GrantId": "0c237476b39f8bc44e45212e08498fbe3151305030726c0590dd8d3e9f3d6a60",
+          "KeyId": "arn:aws:kms:us-east-2:444455556666:key/1234abcd-12ab-34cd-56ef-1234567890ab"
+        },
+        "comments": {
+          "input": {
+            "GrantId": "The identifier of the grant to retire.",
+            "KeyId": "The Amazon Resource Name (ARN) of the KMS key associated with the grant."
+          }
+        },
+        "description": "The following example retires a grant.",
+        "id": "to-retire-a-grant-1481327028297",
+        "title": "To retire a grant"
+      }
+    ],
+    "RevokeGrant": [
+      {
+        "input": {
+          "GrantId": "0c237476b39f8bc44e45212e08498fbe3151305030726c0590dd8d3e9f3d6a60",
+          "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab"
+        },
+        "comments": {
+          "input": {
+            "GrantId": "The identifier of the grant to revoke.",
+            "KeyId": "The identifier of the KMS key associated with the grant. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key."
+          }
+        },
+        "description": "The following example revokes a grant.",
+        "id": "to-revoke-a-grant-1481329549302",
+        "title": "To revoke a grant"
+      }
+    ],
+    "ScheduleKeyDeletion": [
+      {
+        "input": {
+          "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
+          "PendingWindowInDays": 7
+        },
+        "output": {
+          "DeletionDate": "2016-12-17T16:00:00-08:00",
+          "KeyId": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
+        },
+        "comments": {
+          "input": {
+            "KeyId": "The identifier of the KMS key to schedule for deletion. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key.",
+            "PendingWindowInDays": "The waiting period, specified in number of days. After the waiting period ends, KMS deletes the KMS key."
+          },
+          "output": {
+            "DeletionDate": "The date and time after which KMS deletes the KMS key.",
+            "KeyId": "The ARN of the KMS key that is scheduled for deletion."
+          }
+        },
+        "description": "The following example schedules the specified KMS key for deletion.",
+        "id": "to-schedule-a-cmk-for-deletion-1481331111094",
+        "title": "To schedule a KMS key for deletion"
+      }
+    ],
+    "Sign": [
+      {
+        "input": {
+          "KeyId": "alias/ECC_signing_key",
+          "Message": "<message to be signed>",
+          "MessageType": "RAW",
+          "SigningAlgorithm": "ECDSA_SHA_384"
+        },
+        "output": {
+          "KeyId": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
+          "Signature": "<binary data>",
+          "SigningAlgorithm": "ECDSA_SHA_384"
+        },
+        "comments": {
+          "input": {
+            "KeyId": "The asymmetric KMS key to be used to generate the digital signature. This example uses an alias of the KMS key.",
+            "Message": "Message to be signed. Use Base-64 for the CLI.",
+            "MessageType": "Indicates whether the message is RAW or a DIGEST.",
+            "SigningAlgorithm": "The requested signing algorithm. This must be an algorithm that the KMS key supports."
+          },
+          "output": {
+            "KeyId": "The key ARN of the asymmetric KMS key that was used to sign the message.",
+            "Signature": "The digital signature of the message.",
+            "SigningAlgorithm": "The actual signing algorithm that was used to generate the signature."
+          }
+        },
+        "description": "This operation uses the private key in an asymmetric elliptic curve (ECC) KMS key to generate a digital signature for a given message.",
+        "id": "to-digitally-sign-a-message-with-an-asymmetric-kms-key-1628631433832",
+        "title": "To digitally sign a message with an asymmetric KMS key."
+      }
+    ],
+    "TagResource": [
+      {
+        "input": {
+          "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
+          "Tags": [
+            {
+              "TagKey": "Purpose",
+              "TagValue": "Test"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+            "KeyId": "The identifier of the KMS key you are tagging. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key.",
+            "Tags": "A list of tags."
+          }
+        },
+        "description": "The following example tags a KMS key.",
+        "id": "to-tag-a-cmk-1483997246518",
+        "title": "To tag a KMS key"
+      }
+    ],
+    "UntagResource": [
+      {
+        "input": {
+          "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
+          "TagKeys": [
+            "Purpose",
+            "CostCenter"
+          ]
+        },
+        "comments": {
+          "input": {
+            "KeyId": "The identifier of the KMS key whose tags you are removing.",
+            "TagKeys": "A list of tag keys. Provide only the tag keys, not the tag values."
+          }
+        },
+        "description": "The following example removes tags from a KMS key.",
+        "id": "to-remove-tags-from-a-cmk-1483997590962",
+        "title": "To remove tags from a KMS key"
+      }
+    ],
+    "UpdateAlias": [
+      {
+        "input": {
+          "AliasName": "alias/ExampleAlias",
+          "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab"
+        },
+        "comments": {
+          "input": {
+            "AliasName": "The alias to update.",
+            "TargetKeyId": "The identifier of the KMS key that the alias will refer to after this operation succeeds. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key."
+          }
+        },
+        "description": "The following example updates the specified alias to refer to the specified KMS key.",
+        "id": "to-update-an-alias-1481572726920",
+        "title": "To update an alias"
+      }
+    ],
+    "UpdateCustomKeyStore": [
+      {
+        "input": {
+          "CustomKeyStoreId": "cks-1234567890abcdef0",
+          "KeyStorePassword": "ExamplePassword"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+            "CustomKeyStoreId": "The ID of the custom key store that you are updating.",
+            "KeyStorePassword": "The password for the kmsuser crypto user in the CloudHSM cluster."
+          },
+          "output": {
+          }
+        },
+        "description": "This example tells KMS the password for the kmsuser crypto user in the AWS CloudHSM cluster that is associated with the AWS KMS custom key store. (It does not change the password in the CloudHSM cluster.) This operation does not return any data.",
+        "id": "to-edit-the-properties-of-a-custom-key-store-1628629851834",
+        "title": "To edit the password of a custom key store"
+      },
+      {
+        "input": {
+          "CustomKeyStoreId": "cks-1234567890abcdef0",
+          "NewCustomKeyStoreName": "DevelopmentKeys"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+            "CustomKeyStoreId": "The ID of the custom key store that you are updating.",
+            "NewCustomKeyStoreName": "A new friendly name for the custom key store."
+          },
+          "output": {
+          }
+        },
+        "description": "This example changes the friendly name of the AWS KMS custom key store to the name that you specify. This operation does not return any data. To verify that the operation worked, use the DescribeCustomKeyStores operation.",
+        "id": "to-edit-the-friendly-name-of-a-custom-key-store-1630451340904",
+        "title": "To edit the friendly name of a custom key store"
+      },
+      {
+        "input": {
+          "CloudHsmClusterId": "cluster-1a23b4cdefg",
+          "CustomKeyStoreId": "cks-1234567890abcdef0"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+            "CloudHsmClusterId": "The ID of the AWS CloudHSM cluster that you want to associate with the custom key store. This cluster must be related to the original CloudHSM cluster for this key store.",
+            "CustomKeyStoreId": "The ID of the custom key store that you are updating."
+          },
+          "output": {
+          }
+        },
+        "description": "This example changes the cluster that is associated with a custom key store to a related cluster, such as a different backup of the same cluster. This operation does not return any data. To verify that the operation worked, use the DescribeCustomKeyStores operation.",
+        "id": "to-associate-the-custom-key-store-with-a-different-but-related-aws-cloudhsm-cluster-1630451842438",
+        "title": "To associate the custom key store with a different, but related, AWS CloudHSM cluster."
+      }
+    ],
+    "UpdateKeyDescription": [
+      {
+        "input": {
+          "Description": "Example description that indicates the intended use of this KMS key.",
+          "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab"
+        },
+        "comments": {
+          "input": {
+            "Description": "The updated description.",
+            "KeyId": "The identifier of the KMS key whose description you are updating. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key."
+          }
+        },
+        "description": "The following example updates the description of the specified KMS key.",
+        "id": "to-update-the-description-of-a-cmk-1481574808619",
+        "title": "To update the description of a KMS key"
+      }
+    ],
+    "Verify": [
+      {
+        "input": {
+          "KeyId": "alias/ECC_signing_key",
+          "Message": "<message to be verified>",
+          "MessageType": "RAW",
+          "Signature": "<binary data>",
+          "SigningAlgorithm": "ECDSA_SHA_384"
+        },
+        "output": {
+          "KeyId": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
+          "SignatureValid": true,
+          "SigningAlgorithm": "ECDSA_SHA_384"
+        },
+        "comments": {
+          "input": {
+            "KeyId": "The asymmetric KMS key to be used to verify the digital signature. This example uses an alias to identify the KMS key.",
+            "Message": "The message that was signed.",
+            "MessageType": "Indicates whether the message is RAW or a DIGEST.",
+            "Signature": "The signature to be verified.",
+            "SigningAlgorithm": "The signing algorithm to be used to verify the signature."
+          },
+          "output": {
+            "KeyId": "The key ARN of the asymmetric KMS key that was used to verify the digital signature.",
+            "SignatureValid": "A value of 'true' Indicates that the signature was verified. If verification fails, the call to Verify fails.",
+            "SigningAlgorithm": "The signing algorithm that was used to verify the signature."
+          }
+        },
+        "description": "This operation uses the public key in an elliptic curve (ECC) asymmetric key to verify a digital signature within AWS KMS. ",
+        "id": "to-use-an-asymmetric-kms-key-to-verify-a-digital-signature-1628633365663",
+        "title": "To use an asymmetric KMS key to verify a digital signature"
+      }
+    ],
+    "VerifyMac": [
+      {
+        "input": {
+          "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
+          "Mac": "<HMAC_TAG>",
+          "MacAlgorithm": "HMAC_SHA_384",
+          "Message": "Hello World"
+        },
+        "output": {
+          "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
+          "MacAlgorithm": "HMAC_SHA_384",
+          "MacValid": true
+        },
+        "comments": {
+          "input": {
+            "KeyId": "The HMAC KMS key input to the HMAC algorithm.",
+            "Mac": "The HMAC to be verified.",
+            "MacAlgorithm": "The HMAC algorithm requested for the operation.",
+            "Message": "The message input to the HMAC algorithm."
+          },
+          "output": {
+            "KeyId": "The key ARN of the HMAC key used in the operation.",
+            "MacAlgorithm": "The HMAC algorithm used in the operation.",
+            "MacValid": "A value of 'true' indicates that verification succeeded. If verification fails, the call to VerifyMac fails."
+          }
+        },
+        "description": "This example verifies an HMAC for a particular message, HMAC KMS keys, and MAC algorithm. A value of 'true' in the MacValid value in the response indicates that the HMAC is valid.",
+        "id": "to-verify-an-hmac-1631570863401",
+        "title": "To verify an HMAC"
+      }
+    ]
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/kms/2014-11-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/kms/2014-11-01/paginators-1.json
new file mode 100644
index 00000000..0c48130a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kms/2014-11-01/paginators-1.json
@@ -0,0 +1,60 @@
+{
+  "pagination": {
+    "ListAliases": {
+      "limit_key": "Limit",
+      "input_token": "Marker",
+      "output_token": "NextMarker",
+      "more_results": "Truncated",
+      "result_key": "Aliases"
+    },
+    "ListGrants": {
+      "limit_key": "Limit",
+      "input_token": "Marker",
+      "output_token": "NextMarker",
+      "more_results": "Truncated",
+      "result_key": "Grants"
+    },
+    "ListKeyPolicies": {
+      "limit_key": "Limit",
+      "input_token": "Marker",
+      "output_token": "NextMarker",
+      "more_results": "Truncated",
+      "result_key": "PolicyNames"
+    },
+    "ListKeys": {
+      "limit_key": "Limit",
+      "input_token": "Marker",
+      "output_token": "NextMarker",
+      "more_results": "Truncated",
+      "result_key": "Keys"
+    },
+    "DescribeCustomKeyStores": {
+      "input_token": "Marker",
+      "limit_key": "Limit",
+      "more_results": "Truncated",
+      "output_token": "NextMarker",
+      "result_key": "CustomKeyStores"
+    },
+    "ListResourceTags": {
+      "input_token": "Marker",
+      "limit_key": "Limit",
+      "more_results": "Truncated",
+      "output_token": "NextMarker",
+      "result_key": "Tags"
+    },
+    "ListRetirableGrants": {
+      "input_token": "Marker",
+      "limit_key": "Limit",
+      "more_results": "Truncated",
+      "output_token": "NextMarker",
+      "result_key": "Grants"
+    },
+    "ListKeyRotations": {
+      "input_token": "Marker",
+      "limit_key": "Limit",
+      "more_results": "Truncated",
+      "output_token": "NextMarker",
+      "result_key": "Rotations"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/kms/2014-11-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/kms/2014-11-01/service-2.json.gz
new file mode 100644
index 00000000..2e96be07
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/kms/2014-11-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/lakeformation/2017-03-31/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/lakeformation/2017-03-31/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..ae31f752
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/lakeformation/2017-03-31/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/lakeformation/2017-03-31/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/lakeformation/2017-03-31/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/lakeformation/2017-03-31/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/lakeformation/2017-03-31/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/lakeformation/2017-03-31/paginators-1.json
new file mode 100644
index 00000000..5970057b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/lakeformation/2017-03-31/paginators-1.json
@@ -0,0 +1,40 @@
+{
+  "pagination": {
+    "GetWorkUnits": {
+      "input_token": "NextToken",
+      "limit_key": "PageSize",
+      "output_token": "NextToken",
+      "result_key": "WorkUnitRanges"
+    },
+    "ListDataCellsFilter": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "DataCellsFilters"
+    },
+    "ListLFTags": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "LFTags"
+    },
+    "SearchDatabasesByLFTags": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "DatabaseList"
+    },
+    "SearchTablesByLFTags": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "TableList"
+    },
+    "ListLFTagExpressions": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "LFTagExpressions"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/lakeformation/2017-03-31/paginators-1.sdk-extras.json b/.venv/lib/python3.12/site-packages/botocore/data/lakeformation/2017-03-31/paginators-1.sdk-extras.json
new file mode 100644
index 00000000..aea980d6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/lakeformation/2017-03-31/paginators-1.sdk-extras.json
@@ -0,0 +1,12 @@
+{
+  "version": 1.0,
+  "merge": {
+    "pagination": {
+      "GetWorkUnits": {
+        "non_aggregate_keys": [
+          "QueryId"
+        ]
+      }
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/lakeformation/2017-03-31/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/lakeformation/2017-03-31/service-2.json.gz
new file mode 100644
index 00000000..00bd737a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/lakeformation/2017-03-31/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/lambda/2014-11-11/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/lambda/2014-11-11/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..343b3b06
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/lambda/2014-11-11/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/lambda/2014-11-11/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/lambda/2014-11-11/service-2.json.gz
new file mode 100644
index 00000000..8aa96928
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/lambda/2014-11-11/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/lambda/2015-03-31/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/lambda/2015-03-31/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..4e0d52de
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/lambda/2015-03-31/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/lambda/2015-03-31/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/lambda/2015-03-31/examples-1.json
new file mode 100644
index 00000000..c33c1bbe
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/lambda/2015-03-31/examples-1.json
@@ -0,0 +1,1513 @@
+{
+  "version": "1.0",
+  "examples": {
+    "AddLayerVersionPermission": [
+      {
+        "input": {
+          "Action": "lambda:GetLayerVersion",
+          "LayerName": "my-layer",
+          "Principal": "223456789012",
+          "StatementId": "xaccount",
+          "VersionNumber": 1
+        },
+        "output": {
+          "RevisionId": "35d87451-f796-4a3f-a618-95a3671b0a0c",
+          "Statement": "{\"Sid\":\"xaccount\",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::223456789012:root\"},\"Action\":\"lambda:GetLayerVersion\",\"Resource\":\"arn:aws:lambda:us-east-2:123456789012:layer:my-layer:1\"}"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example grants permission for the account 223456789012 to use version 1 of a layer named my-layer.",
+        "id": "to-add-permissions-to-a-layer-version-1586479797163",
+        "title": "To add permissions to a layer version"
+      }
+    ],
+    "AddPermission": [
+      {
+        "input": {
+          "Action": "lambda:InvokeFunction",
+          "FunctionName": "my-function",
+          "Principal": "s3.amazonaws.com",
+          "SourceAccount": "123456789012",
+          "SourceArn": "arn:aws:s3:::my-bucket-1xpuxmplzrlbh/*",
+          "StatementId": "s3"
+        },
+        "output": {
+          "Statement": "{\"Sid\":\"s3\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"s3.amazonaws.com\"},\"Action\":\"lambda:InvokeFunction\",\"Resource\":\"arn:aws:lambda:us-east-2:123456789012:function:my-function\",\"Condition\":{\"StringEquals\":{\"AWS:SourceAccount\":\"123456789012\"},\"ArnLike\":{\"AWS:SourceArn\":\"arn:aws:s3:::my-bucket-1xpuxmplzrlbh\"}}}"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example adds permission for Amazon S3 to invoke a Lambda function named my-function for notifications from a bucket named my-bucket-1xpuxmplzrlbh in account 123456789012.",
+        "id": "add-permission-1474651469455",
+        "title": "To grant Amazon S3 permission to invoke a function"
+      },
+      {
+        "input": {
+          "Action": "lambda:InvokeFunction",
+          "FunctionName": "my-function",
+          "Principal": "223456789012",
+          "StatementId": "xaccount"
+        },
+        "output": {
+          "Statement": "{\"Sid\":\"xaccount\",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::223456789012:root\"},\"Action\":\"lambda:InvokeFunction\",\"Resource\":\"arn:aws:lambda:us-east-2:123456789012:function:my-function\"}"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example adds permission for account 223456789012 invoke a Lambda function named my-function.",
+        "id": "add-permission-1474651469456",
+        "title": "To grant another account permission to invoke a function"
+      }
+    ],
+    "CreateAlias": [
+      {
+        "input": {
+          "Description": "alias for live version of function",
+          "FunctionName": "my-function",
+          "FunctionVersion": "1",
+          "Name": "LIVE"
+        },
+        "output": {
+          "AliasArn": "arn:aws:lambda:us-east-2:123456789012:function:my-function:LIVE",
+          "Description": "alias for live version of function",
+          "FunctionVersion": "1",
+          "Name": "LIVE",
+          "RevisionId": "873282ed-xmpl-4dc8-a069-d0c647e470c6"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example creates an alias named LIVE that points to version 1 of the my-function Lambda function.",
+        "id": "to-create-an-alias-for-a-lambda-function-1586480324259",
+        "title": "To create an alias for a Lambda function"
+      }
+    ],
+    "CreateEventSourceMapping": [
+      {
+        "input": {
+          "BatchSize": 5,
+          "EventSourceArn": "arn:aws:sqs:us-west-2:123456789012:my-queue",
+          "FunctionName": "my-function"
+        },
+        "output": {
+          "BatchSize": 5,
+          "EventSourceArn": "arn:aws:sqs:us-west-2:123456789012:my-queue",
+          "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function",
+          "LastModified": 1569284520.333,
+          "State": "Creating",
+          "StateTransitionReason": "USER_INITIATED",
+          "UUID": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example creates a mapping between an SQS queue and the my-function Lambda function.",
+        "id": "to-create-a-mapping-between-an-event-source-and-an-aws-lambda-function-1586480555467",
+        "title": "To create a mapping between an event source and an AWS Lambda function"
+      }
+    ],
+    "CreateFunction": [
+      {
+        "input": {
+          "Code": {
+            "S3Bucket": "my-bucket-1xpuxmplzrlbh",
+            "S3Key": "function.zip"
+          },
+          "Description": "Process image objects from Amazon S3.",
+          "Environment": {
+            "Variables": {
+              "BUCKET": "my-bucket-1xpuxmplzrlbh",
+              "PREFIX": "inbound"
+            }
+          },
+          "FunctionName": "my-function",
+          "Handler": "index.handler",
+          "KMSKeyArn": "arn:aws:kms:us-west-2:123456789012:key/b0844d6c-xmpl-4463-97a4-d49f50839966",
+          "MemorySize": 256,
+          "Publish": true,
+          "Role": "arn:aws:iam::123456789012:role/lambda-role",
+          "Runtime": "nodejs12.x",
+          "Tags": {
+            "DEPARTMENT": "Assets"
+          },
+          "Timeout": 15,
+          "TracingConfig": {
+            "Mode": "Active"
+          }
+        },
+        "output": {
+          "CodeSha256": "YFgDgEKG3ugvF1+pX64gV6tu9qNuIYNUdgJm8nCxsm4=",
+          "CodeSize": 5797206,
+          "Description": "Process image objects from Amazon S3.",
+          "Environment": {
+            "Variables": {
+              "BUCKET": "my-bucket-1xpuxmplzrlbh",
+              "PREFIX": "inbound"
+            }
+          },
+          "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function",
+          "FunctionName": "my-function",
+          "Handler": "index.handler",
+          "KMSKeyArn": "arn:aws:kms:us-west-2:123456789012:key/b0844d6c-xmpl-4463-97a4-d49f50839966",
+          "LastModified": "2020-04-10T19:06:32.563+0000",
+          "LastUpdateStatus": "Successful",
+          "MemorySize": 256,
+          "RevisionId": "b75dcd81-xmpl-48a8-a75a-93ba8b5b9727",
+          "Role": "arn:aws:iam::123456789012:role/lambda-role",
+          "Runtime": "nodejs12.x",
+          "State": "Active",
+          "Timeout": 15,
+          "TracingConfig": {
+            "Mode": "Active"
+          },
+          "Version": "1"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example creates a function with a deployment package in Amazon S3 and enables X-Ray tracing and environment variable encryption.",
+        "id": "to-create-a-function-1586492061186",
+        "title": "To create a function"
+      }
+    ],
+    "DeleteAlias": [
+      {
+        "input": {
+          "FunctionName": "my-function",
+          "Name": "BLUE"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes an alias named BLUE from a function named my-function",
+        "id": "to-delete-a-lambda-function-alias-1481660370804",
+        "title": "To delete a Lambda function alias"
+      }
+    ],
+    "DeleteEventSourceMapping": [
+      {
+        "input": {
+          "UUID": "14e0db71-xmpl-4eb5-b481-8945cf9d10c2"
+        },
+        "output": {
+          "BatchSize": 5,
+          "EventSourceArn": "arn:aws:sqs:us-west-2:123456789012:my-queue",
+          "FunctionArn": "arn:aws:lambda:us-east-2:123456789012:function:my-function",
+          "LastModified": "2016-11-21T19:49:20.006+0000",
+          "State": "Enabled",
+          "StateTransitionReason": "USER_INITIATED",
+          "UUID": "14e0db71-xmpl-4eb5-b481-8945cf9d10c2"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes an event source mapping. To get a mapping's UUID, use ListEventSourceMappings.",
+        "id": "to-delete-a-lambda-function-event-source-mapping-1481658973862",
+        "title": "To delete a Lambda function event source mapping"
+      }
+    ],
+    "DeleteFunction": [
+      {
+        "input": {
+          "FunctionName": "my-function",
+          "Qualifier": "1"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes version 1 of a Lambda function named my-function.",
+        "id": "to-delete-a-lambda-function-1481648553696",
+        "title": "To delete a version of a Lambda function"
+      }
+    ],
+    "DeleteFunctionConcurrency": [
+      {
+        "input": {
+          "FunctionName": "my-function"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes the reserved concurrent execution limit from a function named my-function.",
+        "id": "to-remove-the-reserved-concurrent-execution-limit-from-a-function-1586480714680",
+        "title": "To remove the reserved concurrent execution limit from a function"
+      }
+    ],
+    "DeleteFunctionEventInvokeConfig": [
+      {
+        "input": {
+          "FunctionName": "my-function",
+          "Qualifier": "GREEN"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes the asynchronous invocation configuration for the GREEN alias of a function named my-function.",
+        "id": "to-delete-an-asynchronous-invocation-configuration-1586481102187",
+        "title": "To delete an asynchronous invocation configuration"
+      }
+    ],
+    "DeleteLayerVersion": [
+      {
+        "input": {
+          "LayerName": "my-layer",
+          "VersionNumber": 2
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes version 2 of a layer named my-layer.",
+        "id": "to-delete-a-version-of-a-lambda-layer-1586481157547",
+        "title": "To delete a version of a Lambda layer"
+      }
+    ],
+    "DeleteProvisionedConcurrencyConfig": [
+      {
+        "input": {
+          "FunctionName": "my-function",
+          "Qualifier": "GREEN"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes the provisioned concurrency configuration for the GREEN alias of a function named my-function.",
+        "id": "to-delete-a-provisioned-concurrency-configuration-1586481032551",
+        "title": "To delete a provisioned concurrency configuration"
+      }
+    ],
+    "GetAccountSettings": [
+      {
+        "input": {
+        },
+        "output": {
+          "AccountLimit": {
+            "CodeSizeUnzipped": 262144000,
+            "CodeSizeZipped": 52428800,
+            "ConcurrentExecutions": 1000,
+            "TotalCodeSize": 80530636800,
+            "UnreservedConcurrentExecutions": 1000
+          },
+          "AccountUsage": {
+            "FunctionCount": 4,
+            "TotalCodeSize": 9426
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This operation takes no parameters and returns details about storage and concurrency quotas in the current Region.",
+        "id": "to-get-account-settings-1481657495274",
+        "title": "To get account settings"
+      }
+    ],
+    "GetAlias": [
+      {
+        "input": {
+          "FunctionName": "my-function",
+          "Name": "BLUE"
+        },
+        "output": {
+          "AliasArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function:BLUE",
+          "Description": "Production environment BLUE.",
+          "FunctionVersion": "3",
+          "Name": "BLUE",
+          "RevisionId": "594f41fb-xmpl-4c20-95c7-6ca5f2a92c93"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns details about an alias named BLUE for a function named my-function",
+        "id": "to-retrieve-a-lambda-function-alias-1481648742254",
+        "title": "To get a Lambda function alias"
+      }
+    ],
+    "GetEventSourceMapping": [
+      {
+        "input": {
+          "UUID": "14e0db71-xmpl-4eb5-b481-8945cf9d10c2"
+        },
+        "output": {
+          "BatchSize": 500,
+          "BisectBatchOnFunctionError": false,
+          "DestinationConfig": {
+          },
+          "EventSourceArn": "arn:aws:sqs:us-east-2:123456789012:mySQSqueue",
+          "FunctionArn": "arn:aws:lambda:us-east-2:123456789012:function:myFunction",
+          "LastModified": "2016-11-21T19:49:20.006+0000",
+          "LastProcessingResult": "No records processed",
+          "MaximumRecordAgeInSeconds": 604800,
+          "MaximumRetryAttempts": 10000,
+          "State": "Creating",
+          "StateTransitionReason": "User action",
+          "UUID": "14e0db71-xmpl-4eb5-b481-8945cf9d10c2"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns details about an event source mapping. To get a mapping's UUID, use ListEventSourceMappings.",
+        "id": "to-get-a-lambda-functions-event-source-mapping-1481661622799",
+        "title": "To get a Lambda function's event source mapping"
+      }
+    ],
+    "GetFunction": [
+      {
+        "input": {
+          "FunctionName": "my-function",
+          "Qualifier": "1"
+        },
+        "output": {
+          "Code": {
+            "Location": "https://awslambda-us-west-2-tasks.s3.us-west-2.amazonaws.com/snapshots/123456789012/my-function-e7d9d1ed-xmpl-4f79-904a-4b87f2681f30?versionId=sH3TQwBOaUy...",
+            "RepositoryType": "S3"
+          },
+          "Configuration": {
+            "CodeSha256": "YFgDgEKG3ugvF1+pX64gV6tu9qNuIYNUdgJm8nCxsm4=",
+            "CodeSize": 5797206,
+            "Description": "Process image objects from Amazon S3.",
+            "Environment": {
+              "Variables": {
+                "BUCKET": "my-bucket-1xpuxmplzrlbh",
+                "PREFIX": "inbound"
+              }
+            },
+            "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function",
+            "FunctionName": "my-function",
+            "Handler": "index.handler",
+            "KMSKeyArn": "arn:aws:kms:us-west-2:123456789012:key/b0844d6c-xmpl-4463-97a4-d49f50839966",
+            "LastModified": "2020-04-10T19:06:32.563+0000",
+            "LastUpdateStatus": "Successful",
+            "MemorySize": 256,
+            "RevisionId": "b75dcd81-xmpl-48a8-a75a-93ba8b5b9727",
+            "Role": "arn:aws:iam::123456789012:role/lambda-role",
+            "Runtime": "nodejs12.x",
+            "State": "Active",
+            "Timeout": 15,
+            "TracingConfig": {
+              "Mode": "Active"
+            },
+            "Version": "$LATEST"
+          },
+          "Tags": {
+            "DEPARTMENT": "Assets"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns code and configuration details for version 1 of a function named my-function.",
+        "id": "to-get-a-lambda-function-1481661622799",
+        "title": "To get a Lambda function"
+      }
+    ],
+    "GetFunctionConcurrency": [
+      {
+        "input": {
+          "FunctionName": "my-function"
+        },
+        "output": {
+          "ReservedConcurrentExecutions": 250
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns the reserved concurrency setting for a function named my-function.",
+        "id": "to-get-the-reserved-concurrency-setting-for-a-function-1586481279992",
+        "title": "To get the reserved concurrency setting for a function"
+      }
+    ],
+    "GetFunctionConfiguration": [
+      {
+        "input": {
+          "FunctionName": "my-function",
+          "Qualifier": "1"
+        },
+        "output": {
+          "CodeSha256": "YFgDgEKG3ugvF1+pX64gV6tu9qNuIYNUdgJm8nCxsm4=",
+          "CodeSize": 5797206,
+          "Description": "Process image objects from Amazon S3.",
+          "Environment": {
+            "Variables": {
+              "BUCKET": "my-bucket-1xpuxmplzrlbh",
+              "PREFIX": "inbound"
+            }
+          },
+          "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function",
+          "FunctionName": "my-function",
+          "Handler": "index.handler",
+          "KMSKeyArn": "arn:aws:kms:us-west-2:123456789012:key/b0844d6c-xmpl-4463-97a4-d49f50839966",
+          "LastModified": "2020-04-10T19:06:32.563+0000",
+          "LastUpdateStatus": "Successful",
+          "MemorySize": 256,
+          "RevisionId": "b75dcd81-xmpl-48a8-a75a-93ba8b5b9727",
+          "Role": "arn:aws:iam::123456789012:role/lambda-role",
+          "Runtime": "nodejs12.x",
+          "State": "Active",
+          "Timeout": 15,
+          "TracingConfig": {
+            "Mode": "Active"
+          },
+          "Version": "$LATEST"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns and configuration details for version 1 of a function named my-function.",
+        "id": "to-get-a-lambda-functions-event-source-mapping-1481661622799",
+        "title": "To get a Lambda function's event source mapping"
+      }
+    ],
+    "GetFunctionEventInvokeConfig": [
+      {
+        "input": {
+          "FunctionName": "my-function",
+          "Qualifier": "BLUE"
+        },
+        "output": {
+          "DestinationConfig": {
+            "OnFailure": {
+              "Destination": "arn:aws:sqs:us-east-2:123456789012:failed-invocations"
+            },
+            "OnSuccess": {
+            }
+          },
+          "FunctionArn": "arn:aws:lambda:us-east-2:123456789012:function:my-function:BLUE",
+          "LastModified": "2016-11-21T19:49:20.006+0000",
+          "MaximumEventAgeInSeconds": 3600,
+          "MaximumRetryAttempts": 0
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns the asynchronous invocation configuration for the BLUE alias of a function named my-function.",
+        "id": "to-get-an-asynchronous-invocation-configuration-1586481338463",
+        "title": "To get an asynchronous invocation configuration"
+      }
+    ],
+    "GetLayerVersion": [
+      {
+        "input": {
+          "LayerName": "my-layer",
+          "VersionNumber": 1
+        },
+        "output": {
+          "CompatibleRuntimes": [
+            "python3.6",
+            "python3.7"
+          ],
+          "Content": {
+            "CodeSha256": "tv9jJO+rPbXUUXuRKi7CwHzKtLDkDRJLB3cC3Z/ouXo=",
+            "CodeSize": 169,
+            "Location": "https://awslambda-us-east-2-layers.s3.us-east-2.amazonaws.com/snapshots/123456789012/my-layer-4aaa2fbb-ff77-4b0a-ad92-5b78a716a96a?versionId=27iWyA73cCAYqyH..."
+          },
+          "CreatedDate": "2018-11-14T23:03:52.894+0000",
+          "Description": "My Python layer",
+          "LayerArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer",
+          "LayerVersionArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer:1",
+          "LicenseInfo": "MIT",
+          "Version": 1
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns information for version 1 of a layer named my-layer.",
+        "id": "to-get-information-about-a-lambda-layer-version-1586481457839",
+        "title": "To get information about a Lambda layer version"
+      }
+    ],
+    "GetLayerVersionByArn": [
+      {
+        "input": {
+          "Arn": "arn:aws:lambda:ca-central-1:123456789012:layer:blank-python-lib:3"
+        },
+        "output": {
+          "CompatibleRuntimes": [
+            "python3.8"
+          ],
+          "Content": {
+            "CodeSha256": "6x+xmpl/M3BnQUk7gS9sGmfeFsR/npojXoA3fZUv4eU=",
+            "CodeSize": 9529009,
+            "Location": "https://awslambda-us-east-2-layers.s3.us-east-2.amazonaws.com/snapshots/123456789012/blank-python-lib-e5212378-xmpl-44ee-8398-9d8ec5113949?versionId=WbZnvf..."
+          },
+          "CreatedDate": "2020-03-31T00:35:18.949+0000",
+          "Description": "Dependencies for the blank-python sample app.",
+          "LayerArn": "arn:aws:lambda:us-east-2:123456789012:layer:blank-python-lib",
+          "LayerVersionArn": "arn:aws:lambda:us-east-2:123456789012:layer:blank-python-lib:3",
+          "Version": 3
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns information about the layer version with the specified Amazon Resource Name (ARN).",
+        "id": "to-get-information-about-a-lambda-layer-version-1586481457839",
+        "title": "To get information about a Lambda layer version"
+      }
+    ],
+    "GetPolicy": [
+      {
+        "input": {
+          "FunctionName": "my-function",
+          "Qualifier": "1"
+        },
+        "output": {
+          "Policy": "{\"Version\":\"2012-10-17\",\"Id\":\"default\",\"Statement\":[{\"Sid\":\"xaccount\",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::123456789012:root\"},\"Action\":\"lambda:InvokeFunction\",\"Resource\":\"arn:aws:lambda:us-east-2:123456789012:function:my-function:1\"}]}",
+          "RevisionId": "4843f2f6-7c59-4fda-b484-afd0bc0e22b8"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns the resource-based policy for version 1 of a Lambda function named my-function.",
+        "id": "to-retrieve-a-lambda-function-policy-1481649319053",
+        "title": "To retrieve a Lambda function policy"
+      }
+    ],
+    "GetProvisionedConcurrencyConfig": [
+      {
+        "input": {
+          "FunctionName": "my-function",
+          "Qualifier": "BLUE"
+        },
+        "output": {
+          "AllocatedProvisionedConcurrentExecutions": 100,
+          "AvailableProvisionedConcurrentExecutions": 100,
+          "LastModified": "2019-12-31T20:28:49+0000",
+          "RequestedProvisionedConcurrentExecutions": 100,
+          "Status": "READY"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns details for the provisioned concurrency configuration for the BLUE alias of the specified function.",
+        "id": "to-get-a-provisioned-concurrency-configuration-1586490192690",
+        "title": "To get a provisioned concurrency configuration"
+      },
+      {
+        "input": {
+          "FunctionName": "my-function",
+          "Qualifier": "BLUE"
+        },
+        "output": {
+          "AllocatedProvisionedConcurrentExecutions": 100,
+          "AvailableProvisionedConcurrentExecutions": 100,
+          "LastModified": "2019-12-31T20:28:49+0000",
+          "RequestedProvisionedConcurrentExecutions": 100,
+          "Status": "READY"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example displays details for the provisioned concurrency configuration for the BLUE alias of the specified function.",
+        "id": "to-view-a-provisioned-concurrency-configuration-1586490192690",
+        "title": "To view a provisioned concurrency configuration"
+      }
+    ],
+    "Invoke": [
+      {
+        "input": {
+          "FunctionName": "my-function",
+          "Payload": "{}",
+          "Qualifier": "1"
+        },
+        "output": {
+          "Payload": "200 SUCCESS",
+          "StatusCode": 200
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example invokes version 1 of a function named my-function with an empty event payload.",
+        "id": "to-invoke-a-lambda-function-1481659683915",
+        "title": "To invoke a Lambda function"
+      },
+      {
+        "input": {
+          "FunctionName": "my-function",
+          "InvocationType": "Event",
+          "Payload": "{}",
+          "Qualifier": "1"
+        },
+        "output": {
+          "Payload": "",
+          "StatusCode": 202
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example invokes version 1 of a function named my-function asynchronously.",
+        "id": "to-invoke-a-lambda-function-async-1481659683915",
+        "title": "To invoke a Lambda function asynchronously"
+      }
+    ],
+    "InvokeAsync": [
+      {
+        "input": {
+          "FunctionName": "my-function",
+          "InvokeArgs": "{}"
+        },
+        "output": {
+          "Status": 202
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example invokes a Lambda function asynchronously",
+        "id": "to-invoke-a-lambda-function-asynchronously-1481649694923",
+        "title": "To invoke a Lambda function asynchronously"
+      }
+    ],
+    "ListAliases": [
+      {
+        "input": {
+          "FunctionName": "my-function"
+        },
+        "output": {
+          "Aliases": [
+            {
+              "AliasArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function:BETA",
+              "Description": "Production environment BLUE.",
+              "FunctionVersion": "2",
+              "Name": "BLUE",
+              "RevisionId": "a410117f-xmpl-494e-8035-7e204bb7933b",
+              "RoutingConfig": {
+                "AdditionalVersionWeights": {
+                  "1": 0.7
+                }
+              }
+            },
+            {
+              "AliasArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function:LIVE",
+              "Description": "Production environment GREEN.",
+              "FunctionVersion": "1",
+              "Name": "GREEN",
+              "RevisionId": "21d40116-xmpl-40ba-9360-3ea284da1bb5"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns a list of aliases for a function named my-function.",
+        "id": "to-list-a-functions-aliases-1481650199732",
+        "title": "To list a function's aliases"
+      }
+    ],
+    "ListEventSourceMappings": [
+      {
+        "input": {
+          "FunctionName": "my-function"
+        },
+        "output": {
+          "EventSourceMappings": [
+            {
+              "BatchSize": 5,
+              "EventSourceArn": "arn:aws:sqs:us-west-2:123456789012:mySQSqueue",
+              "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function",
+              "LastModified": 1569284520.333,
+              "State": "Enabled",
+              "StateTransitionReason": "USER_INITIATED",
+              "UUID": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns a list of the event source mappings for a function named my-function.",
+        "id": "to-list-the-event-source-mappings-for-a-function-1586490285906",
+        "title": "To list the event source mappings for a function"
+      }
+    ],
+    "ListFunctionEventInvokeConfigs": [
+      {
+        "input": {
+          "FunctionName": "my-function"
+        },
+        "output": {
+          "FunctionEventInvokeConfigs": [
+            {
+              "FunctionArn": "arn:aws:lambda:us-east-2:123456789012:function:my-function:GREEN",
+              "LastModified": 1577824406.719,
+              "MaximumEventAgeInSeconds": 1800,
+              "MaximumRetryAttempts": 2
+            },
+            {
+              "FunctionArn": "arn:aws:lambda:us-east-2:123456789012:function:my-function:BLUE",
+              "LastModified": 1577824396.653,
+              "MaximumEventAgeInSeconds": 3600,
+              "MaximumRetryAttempts": 0
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns a list of asynchronous invocation configurations for a function named my-function.",
+        "id": "to-view-a-list-of-asynchronous-invocation-configurations-1586490355611",
+        "title": "To view a list of asynchronous invocation configurations"
+      }
+    ],
+    "ListFunctions": [
+      {
+        "input": {
+        },
+        "output": {
+          "Functions": [
+            {
+              "CodeSha256": "dBG9m8SGdmlEjw/JYXlhhvCrAv5TxvXsbL/RMr0fT/I=",
+              "CodeSize": 294,
+              "Description": "",
+              "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:helloworld",
+              "FunctionName": "helloworld",
+              "Handler": "helloworld.handler",
+              "LastModified": "2019-09-23T18:32:33.857+0000",
+              "MemorySize": 128,
+              "RevisionId": "1718e831-badf-4253-9518-d0644210af7b",
+              "Role": "arn:aws:iam::123456789012:role/service-role/MyTestFunction-role-zgur6bf4",
+              "Runtime": "nodejs10.x",
+              "Timeout": 3,
+              "TracingConfig": {
+                "Mode": "PassThrough"
+              },
+              "Version": "$LATEST"
+            },
+            {
+              "CodeSha256": "sU0cJ2/hOZevwV/lTxCuQqK3gDZP3i8gUoqUUVRmY6E=",
+              "CodeSize": 266,
+              "Description": "",
+              "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function",
+              "FunctionName": "my-function",
+              "Handler": "index.handler",
+              "LastModified": "2019-10-01T16:47:28.490+0000",
+              "MemorySize": 256,
+              "RevisionId": "93017fc9-59cb-41dc-901b-4845ce4bf668",
+              "Role": "arn:aws:iam::123456789012:role/service-role/helloWorldPython-role-uy3l9qyq",
+              "Runtime": "nodejs10.x",
+              "Timeout": 3,
+              "TracingConfig": {
+                "Mode": "PassThrough"
+              },
+              "Version": "$LATEST",
+              "VpcConfig": {
+                "SecurityGroupIds": [
+
+                ],
+                "SubnetIds": [
+
+                ],
+                "VpcId": ""
+              }
+            }
+          ],
+          "NextMarker": ""
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This operation returns a list of Lambda functions.",
+        "id": "to-get-a-list-of-lambda-functions-1481650507425",
+        "title": "To get a list of Lambda functions"
+      }
+    ],
+    "ListLayerVersions": [
+      {
+        "input": {
+          "LayerName": "blank-java-lib"
+        },
+        "output": {
+          "LayerVersions": [
+            {
+              "CompatibleRuntimes": [
+                "java8"
+              ],
+              "CreatedDate": "2020-03-18T23:38:42.284+0000",
+              "Description": "Dependencies for the blank-java sample app.",
+              "LayerVersionArn": "arn:aws:lambda:us-east-2:123456789012:layer:blank-java-lib:7",
+              "Version": 7
+            },
+            {
+              "CompatibleRuntimes": [
+                "java8"
+              ],
+              "CreatedDate": "2020-03-17T07:24:21.960+0000",
+              "Description": "Dependencies for the blank-java sample app.",
+              "LayerVersionArn": "arn:aws:lambda:us-east-2:123456789012:layer:blank-java-lib:6",
+              "Version": 6
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example displays information about the versions for the layer named blank-java-lib",
+        "id": "to-list-versions-of-a-layer-1586490857297",
+        "title": "To list versions of a layer"
+      }
+    ],
+    "ListLayers": [
+      {
+        "input": {
+          "CompatibleRuntime": "python3.7"
+        },
+        "output": {
+          "Layers": [
+            {
+              "LatestMatchingVersion": {
+                "CompatibleRuntimes": [
+                  "python3.6",
+                  "python3.7"
+                ],
+                "CreatedDate": "2018-11-15T00:37:46.592+0000",
+                "Description": "My layer",
+                "LayerVersionArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer:2",
+                "Version": 2
+              },
+              "LayerArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer",
+              "LayerName": "my-layer"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns information about layers that are compatible with the Python 3.7 runtime.",
+        "id": "to-list-the-layers-that-are-compatible-with-your-functions-runtime-1586490857297",
+        "title": "To list the layers that are compatible with your function's runtime"
+      }
+    ],
+    "ListProvisionedConcurrencyConfigs": [
+      {
+        "input": {
+          "FunctionName": "my-function"
+        },
+        "output": {
+          "ProvisionedConcurrencyConfigs": [
+            {
+              "AllocatedProvisionedConcurrentExecutions": 100,
+              "AvailableProvisionedConcurrentExecutions": 100,
+              "FunctionArn": "arn:aws:lambda:us-east-2:123456789012:function:my-function:GREEN",
+              "LastModified": "2019-12-31T20:29:00+0000",
+              "RequestedProvisionedConcurrentExecutions": 100,
+              "Status": "READY"
+            },
+            {
+              "AllocatedProvisionedConcurrentExecutions": 100,
+              "AvailableProvisionedConcurrentExecutions": 100,
+              "FunctionArn": "arn:aws:lambda:us-east-2:123456789012:function:my-function:BLUE",
+              "LastModified": "2019-12-31T20:28:49+0000",
+              "RequestedProvisionedConcurrentExecutions": 100,
+              "Status": "READY"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns a list of provisioned concurrency configurations for a function named my-function.",
+        "id": "to-get-a-list-of-provisioned-concurrency-configurations-1586491032592",
+        "title": "To get a list of provisioned concurrency configurations"
+      }
+    ],
+    "ListTags": [
+      {
+        "input": {
+          "Resource": "arn:aws:lambda:us-west-2:123456789012:function:my-function"
+        },
+        "output": {
+          "Tags": {
+            "Category": "Web Tools",
+            "Department": "Sales"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example displays the tags attached to the my-function Lambda function.",
+        "id": "to-retrieve-the-list-of-tags-for-a-lambda-function-1586491111498",
+        "title": "To retrieve the list of tags for a Lambda function"
+      }
+    ],
+    "ListVersionsByFunction": [
+      {
+        "input": {
+          "FunctionName": "my-function"
+        },
+        "output": {
+          "Versions": [
+            {
+              "CodeSha256": "YFgDgEKG3ugvF1+pX64gV6tu9qNuIYNUdgJm8nCxsm4=",
+              "CodeSize": 5797206,
+              "Description": "Process image objects from Amazon S3.",
+              "Environment": {
+                "Variables": {
+                  "BUCKET": "my-bucket-1xpuxmplzrlbh",
+                  "PREFIX": "inbound"
+                }
+              },
+              "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function",
+              "FunctionName": "my-function",
+              "Handler": "index.handler",
+              "KMSKeyArn": "arn:aws:kms:us-west-2:123456789012:key/b0844d6c-xmpl-4463-97a4-d49f50839966",
+              "LastModified": "2020-04-10T19:06:32.563+0000",
+              "MemorySize": 256,
+              "RevisionId": "850ca006-2d98-4ff4-86db-8766e9d32fe9",
+              "Role": "arn:aws:iam::123456789012:role/lambda-role",
+              "Runtime": "nodejs12.x",
+              "Timeout": 15,
+              "TracingConfig": {
+                "Mode": "Active"
+              },
+              "Version": "$LATEST"
+            },
+            {
+              "CodeSha256": "YFgDgEKG3ugvF1+pX64gV6tu9qNuIYNUdgJm8nCxsm4=",
+              "CodeSize": 5797206,
+              "Description": "Process image objects from Amazon S3.",
+              "Environment": {
+                "Variables": {
+                  "BUCKET": "my-bucket-1xpuxmplzrlbh",
+                  "PREFIX": "inbound"
+                }
+              },
+              "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function",
+              "FunctionName": "my-function",
+              "Handler": "index.handler",
+              "KMSKeyArn": "arn:aws:kms:us-west-2:123456789012:key/b0844d6c-xmpl-4463-97a4-d49f50839966",
+              "LastModified": "2020-04-10T19:06:32.563+0000",
+              "MemorySize": 256,
+              "RevisionId": "b75dcd81-xmpl-48a8-a75a-93ba8b5b9727",
+              "Role": "arn:aws:iam::123456789012:role/lambda-role",
+              "Runtime": "nodejs12.x",
+              "Timeout": 5,
+              "TracingConfig": {
+                "Mode": "Active"
+              },
+              "Version": "1"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns a list of versions of a function named my-function",
+        "id": "to-list-versions-1481650603750",
+        "title": "To list versions of a function"
+      }
+    ],
+    "PublishLayerVersion": [
+      {
+        "input": {
+          "CompatibleRuntimes": [
+            "python3.6",
+            "python3.7"
+          ],
+          "Content": {
+            "S3Bucket": "lambda-layers-us-west-2-123456789012",
+            "S3Key": "layer.zip"
+          },
+          "Description": "My Python layer",
+          "LayerName": "my-layer",
+          "LicenseInfo": "MIT"
+        },
+        "output": {
+          "CompatibleRuntimes": [
+            "python3.6",
+            "python3.7"
+          ],
+          "Content": {
+            "CodeSha256": "tv9jJO+rPbXUUXuRKi7CwHzKtLDkDRJLB3cC3Z/ouXo=",
+            "CodeSize": 169,
+            "Location": "https://awslambda-us-west-2-layers.s3.us-west-2.amazonaws.com/snapshots/123456789012/my-layer-4aaa2fbb-ff77-4b0a-ad92-5b78a716a96a?versionId=27iWyA73cCAYqyH..."
+          },
+          "CreatedDate": "2018-11-14T23:03:52.894+0000",
+          "Description": "My Python layer",
+          "LayerArn": "arn:aws:lambda:us-west-2:123456789012:layer:my-layer",
+          "LayerVersionArn": "arn:aws:lambda:us-west-2:123456789012:layer:my-layer:1",
+          "LicenseInfo": "MIT",
+          "Version": 1
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example creates a new Python library layer version. The command retrieves the layer content a file named layer.zip in the specified S3 bucket.",
+        "id": "to-create-a-lambda-layer-version-1586491213595",
+        "title": "To create a Lambda layer version"
+      }
+    ],
+    "PublishVersion": [
+      {
+        "input": {
+          "CodeSha256": "",
+          "Description": "",
+          "FunctionName": "myFunction"
+        },
+        "output": {
+          "CodeSha256": "YFgDgEKG3ugvF1+pX64gV6tu9qNuIYNUdgJm8nCxsm4=",
+          "CodeSize": 5797206,
+          "Description": "Process image objects from Amazon S3.",
+          "Environment": {
+            "Variables": {
+              "BUCKET": "my-bucket-1xpuxmplzrlbh",
+              "PREFIX": "inbound"
+            }
+          },
+          "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function",
+          "FunctionName": "my-function",
+          "Handler": "index.handler",
+          "KMSKeyArn": "arn:aws:kms:us-west-2:123456789012:key/b0844d6c-xmpl-4463-97a4-d49f50839966",
+          "LastModified": "2020-04-10T19:06:32.563+0000",
+          "LastUpdateStatus": "Successful",
+          "MemorySize": 256,
+          "RevisionId": "b75dcd81-xmpl-48a8-a75a-93ba8b5b9727",
+          "Role": "arn:aws:iam::123456789012:role/lambda-role",
+          "Runtime": "nodejs12.x",
+          "State": "Active",
+          "Timeout": 5,
+          "TracingConfig": {
+            "Mode": "Active"
+          },
+          "Version": "1"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This operation publishes a version of a Lambda function",
+        "id": "to-publish-a-version-of-a-lambda-function-1481650704986",
+        "title": "To publish a version of a Lambda function"
+      }
+    ],
+    "PutFunctionConcurrency": [
+      {
+        "input": {
+          "FunctionName": "my-function",
+          "ReservedConcurrentExecutions": 100
+        },
+        "output": {
+          "ReservedConcurrentExecutions": 100
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example configures 100 reserved concurrent executions for the my-function function.",
+        "id": "to-configure-a-reserved-concurrency-limit-for-a-function-1586491405956",
+        "title": "To configure a reserved concurrency limit for a function"
+      }
+    ],
+    "PutFunctionEventInvokeConfig": [
+      {
+        "input": {
+          "FunctionName": "my-function",
+          "MaximumEventAgeInSeconds": 3600,
+          "MaximumRetryAttempts": 0
+        },
+        "output": {
+          "DestinationConfig": {
+            "OnFailure": {
+            },
+            "OnSuccess": {
+            }
+          },
+          "FunctionArn": "arn:aws:lambda:us-east-2:123456789012:function:my-function:$LATEST",
+          "LastModified": "2016-11-21T19:49:20.006+0000",
+          "MaximumEventAgeInSeconds": 3600,
+          "MaximumRetryAttempts": 0
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example sets a maximum event age of one hour and disables retries for the specified function.",
+        "id": "to-configure-error-handling-for-asynchronous-invocation-1586491524021",
+        "title": "To configure error handling for asynchronous invocation"
+      }
+    ],
+    "PutProvisionedConcurrencyConfig": [
+      {
+        "input": {
+          "FunctionName": "my-function",
+          "ProvisionedConcurrentExecutions": 100,
+          "Qualifier": "BLUE"
+        },
+        "output": {
+          "AllocatedProvisionedConcurrentExecutions": 0,
+          "LastModified": "2019-11-21T19:32:12+0000",
+          "RequestedProvisionedConcurrentExecutions": 100,
+          "Status": "IN_PROGRESS"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example allocates 100 provisioned concurrency for the BLUE alias of the specified function.",
+        "id": "to-allocate-provisioned-concurrency-1586491651377",
+        "title": "To allocate provisioned concurrency"
+      }
+    ],
+    "RemoveLayerVersionPermission": [
+      {
+        "input": {
+          "LayerName": "my-layer",
+          "StatementId": "xaccount",
+          "VersionNumber": 1
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes permission for an account to configure a layer version.",
+        "id": "to-delete-layer-version-permissions-1586491829416",
+        "title": "To delete layer-version permissions"
+      }
+    ],
+    "RemovePermission": [
+      {
+        "input": {
+          "FunctionName": "my-function",
+          "Qualifier": "PROD",
+          "StatementId": "xaccount"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example removes a permissions statement named xaccount from the PROD alias of a function named my-function.",
+        "id": "to-remove-a-lambda-functions-permissions-1481661337021",
+        "title": "To remove a Lambda function's permissions"
+      }
+    ],
+    "TagResource": [
+      {
+        "input": {
+          "Resource": "arn:aws:lambda:us-west-2:123456789012:function:my-function",
+          "Tags": {
+            "DEPARTMENT": "Department A"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example adds a tag with the key name DEPARTMENT and a value of 'Department A' to the specified Lambda function.",
+        "id": "to-add-tags-to-an-existing-lambda-function-1586491890446",
+        "title": "To add tags to an existing Lambda function"
+      }
+    ],
+    "UntagResource": [
+      {
+        "input": {
+          "Resource": "arn:aws:lambda:us-west-2:123456789012:function:my-function",
+          "TagKeys": [
+            "DEPARTMENT"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example removes the tag with the key name DEPARTMENT tag from the my-function Lambda function.",
+        "id": "to-remove-tags-from-an-existing-lambda-function-1586491956425",
+        "title": "To remove tags from an existing Lambda function"
+      }
+    ],
+    "UpdateAlias": [
+      {
+        "input": {
+          "FunctionName": "my-function",
+          "FunctionVersion": "2",
+          "Name": "BLUE",
+          "RoutingConfig": {
+            "AdditionalVersionWeights": {
+              "1": 0.7
+            }
+          }
+        },
+        "output": {
+          "AliasArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function:BLUE",
+          "Description": "Production environment BLUE.",
+          "FunctionVersion": "2",
+          "Name": "BLUE",
+          "RevisionId": "594f41fb-xmpl-4c20-95c7-6ca5f2a92c93",
+          "RoutingConfig": {
+            "AdditionalVersionWeights": {
+              "1": 0.7
+            }
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example updates the alias named BLUE to send 30% of traffic to version 2 and 70% to version 1.",
+        "id": "to-update-a-function-alias-1481650817950",
+        "title": "To update a function alias"
+      }
+    ],
+    "UpdateEventSourceMapping": [
+      {
+        "input": {
+          "BatchSize": 123,
+          "Enabled": true,
+          "FunctionName": "myFunction",
+          "UUID": "1234xCy789012"
+        },
+        "output": {
+          "BatchSize": 123,
+          "EventSourceArn": "arn:aws:s3:::examplebucket/*",
+          "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:myFunction",
+          "LastModified": "2016-11-21T19:49:20.006+0000",
+          "LastProcessingResult": "",
+          "State": "",
+          "StateTransitionReason": "",
+          "UUID": "1234xCy789012"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This operation updates a Lambda function event source mapping",
+        "id": "to-update-a-lambda-function-event-source-mapping-1481650907413",
+        "title": "To update a Lambda function event source mapping"
+      }
+    ],
+    "UpdateFunctionCode": [
+      {
+        "input": {
+          "FunctionName": "my-function",
+          "S3Bucket": "my-bucket-1xpuxmplzrlbh",
+          "S3Key": "function.zip"
+        },
+        "output": {
+          "CodeSha256": "PFn4S+er27qk+UuZSTKEQfNKG/XNn7QJs90mJgq6oH8=",
+          "CodeSize": 308,
+          "Description": "",
+          "FunctionArn": "arn:aws:lambda:us-east-2:123456789012:function:my-function",
+          "FunctionName": "my-function",
+          "Handler": "index.handler",
+          "LastModified": "2019-08-14T22:26:11.234+0000",
+          "MemorySize": 128,
+          "RevisionId": "873282ed-xmpl-4dc8-a069-d0c647e470c6",
+          "Role": "arn:aws:iam::123456789012:role/lambda-role",
+          "Runtime": "nodejs12.x",
+          "Timeout": 3,
+          "TracingConfig": {
+            "Mode": "PassThrough"
+          },
+          "Version": "$LATEST"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example replaces the code of the unpublished ($LATEST) version of a function named my-function with the contents of the specified zip file in Amazon S3.",
+        "id": "to-update-a-lambda-functions-code-1481650992672",
+        "title": "To update a Lambda function's code"
+      }
+    ],
+    "UpdateFunctionConfiguration": [
+      {
+        "input": {
+          "FunctionName": "my-function",
+          "MemorySize": 256
+        },
+        "output": {
+          "CodeSha256": "PFn4S+er27qk+UuZSTKEQfNKG/XNn7QJs90mJgq6oH8=",
+          "CodeSize": 308,
+          "Description": "",
+          "FunctionArn": "arn:aws:lambda:us-east-2:123456789012:function:my-function",
+          "FunctionName": "my-function",
+          "Handler": "index.handler",
+          "LastModified": "2019-08-14T22:26:11.234+0000",
+          "MemorySize": 256,
+          "RevisionId": "873282ed-xmpl-4dc8-a069-d0c647e470c6",
+          "Role": "arn:aws:iam::123456789012:role/lambda-role",
+          "Runtime": "nodejs12.x",
+          "Timeout": 3,
+          "TracingConfig": {
+            "Mode": "PassThrough"
+          },
+          "Version": "$LATEST"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example modifies the memory size to be 256 MB for the unpublished ($LATEST) version of a function named my-function.",
+        "id": "to-update-a-lambda-functions-configuration-1481651096447",
+        "title": "To update a Lambda function's configuration"
+      }
+    ],
+    "UpdateFunctionEventInvokeConfig": [
+      {
+        "input": {
+          "DestinationConfig": {
+            "OnFailure": {
+              "Destination": "arn:aws:sqs:us-east-2:123456789012:destination"
+            }
+          },
+          "FunctionName": "my-function"
+        },
+        "output": {
+          "DestinationConfig": {
+            "OnFailure": {
+              "Destination": "arn:aws:sqs:us-east-2:123456789012:destination"
+            },
+            "OnSuccess": {
+            }
+          },
+          "FunctionArn": "arn:aws:lambda:us-east-2:123456789012:function:my-function:$LATEST",
+          "LastModified": 1573687896.493,
+          "MaximumEventAgeInSeconds": 3600,
+          "MaximumRetryAttempts": 0
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example adds an on-failure destination to the existing asynchronous invocation configuration for a function named my-function.",
+        "id": "to-update-an-asynchronous-invocation-configuration-1586492061186",
+        "title": "To update an asynchronous invocation configuration"
+      }
+    ]
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/lambda/2015-03-31/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/lambda/2015-03-31/paginators-1.json
new file mode 100644
index 00000000..7ae81bfd
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/lambda/2015-03-31/paginators-1.json
@@ -0,0 +1,70 @@
+{
+  "pagination": {
+    "ListEventSourceMappings": {
+      "input_token": "Marker",
+      "output_token": "NextMarker",
+      "limit_key": "MaxItems",
+      "result_key": "EventSourceMappings"
+    },
+    "ListFunctions": {
+      "input_token": "Marker",
+      "output_token": "NextMarker",
+      "limit_key": "MaxItems",
+      "result_key": "Functions"
+    },
+    "ListAliases": {
+      "input_token": "Marker",
+      "output_token": "NextMarker",
+      "limit_key": "MaxItems",
+      "result_key": "Aliases"
+    },
+    "ListLayerVersions": {
+      "input_token": "Marker",
+      "limit_key": "MaxItems",
+      "output_token": "NextMarker",
+      "result_key": "LayerVersions"
+    },
+    "ListLayers": {
+      "input_token": "Marker",
+      "limit_key": "MaxItems",
+      "output_token": "NextMarker",
+      "result_key": "Layers"
+    },
+    "ListVersionsByFunction": {
+      "input_token": "Marker",
+      "limit_key": "MaxItems",
+      "output_token": "NextMarker",
+      "result_key": "Versions"
+    },
+    "ListFunctionEventInvokeConfigs": {
+      "input_token": "Marker",
+      "limit_key": "MaxItems",
+      "output_token": "NextMarker",
+      "result_key": "FunctionEventInvokeConfigs"
+    },
+    "ListProvisionedConcurrencyConfigs": {
+      "input_token": "Marker",
+      "limit_key": "MaxItems",
+      "output_token": "NextMarker",
+      "result_key": "ProvisionedConcurrencyConfigs"
+    },
+    "ListCodeSigningConfigs": {
+      "input_token": "Marker",
+      "limit_key": "MaxItems",
+      "output_token": "NextMarker",
+      "result_key": "CodeSigningConfigs"
+    },
+    "ListFunctionsByCodeSigningConfig": {
+      "input_token": "Marker",
+      "limit_key": "MaxItems",
+      "output_token": "NextMarker",
+      "result_key": "FunctionArns"
+    },
+    "ListFunctionUrlConfigs": {
+      "input_token": "Marker",
+      "limit_key": "MaxItems",
+      "output_token": "NextMarker",
+      "result_key": "FunctionUrlConfigs"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/lambda/2015-03-31/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/lambda/2015-03-31/service-2.json.gz
new file mode 100644
index 00000000..a0dc2b6e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/lambda/2015-03-31/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/lambda/2015-03-31/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/lambda/2015-03-31/waiters-2.json
new file mode 100644
index 00000000..86e24b0c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/lambda/2015-03-31/waiters-2.json
@@ -0,0 +1,152 @@
+{
+  "version": 2,
+  "waiters": {
+    "FunctionExists": {
+      "delay": 1,
+      "operation": "GetFunction",
+      "maxAttempts": 20,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "status",
+          "expected": 200
+        },
+        {
+          "state": "retry",
+          "matcher": "error",
+          "expected": "ResourceNotFoundException"
+        }
+      ]
+    },
+    "FunctionActive": {
+      "delay": 5,
+      "maxAttempts": 60,
+      "operation": "GetFunctionConfiguration",
+      "description": "Waits for the function's State to be Active. This waiter uses GetFunctionConfiguration API. This should be used after new function creation.",
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "path",
+          "argument": "State",
+          "expected": "Active"
+        },
+        {
+          "state": "failure",
+          "matcher": "path",
+          "argument": "State",
+          "expected": "Failed"
+        },
+        {
+          "state": "retry",
+          "matcher": "path",
+          "argument": "State",
+          "expected": "Pending"
+        }
+      ]
+    },
+    "FunctionUpdated": {
+      "delay": 5,
+      "maxAttempts": 60,
+      "operation": "GetFunctionConfiguration",
+      "description": "Waits for the function's LastUpdateStatus to be Successful. This waiter uses GetFunctionConfiguration API. This should be used after function updates.",
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "path",
+          "argument": "LastUpdateStatus",
+          "expected": "Successful"
+        },
+        {
+          "state": "failure",
+          "matcher": "path",
+          "argument": "LastUpdateStatus",
+          "expected": "Failed"
+        },
+        {
+          "state": "retry",
+          "matcher": "path",
+          "argument": "LastUpdateStatus",
+          "expected": "InProgress"
+        }
+      ]
+    },
+    "FunctionActiveV2": {
+      "delay": 1,
+      "maxAttempts": 300,
+      "operation": "GetFunction",
+      "description": "Waits for the function's State to be Active. This waiter uses GetFunction API. This should be used after new function creation.",
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "path",
+          "argument": "Configuration.State",
+          "expected": "Active"
+        },
+        {
+          "state": "failure",
+          "matcher": "path",
+          "argument": "Configuration.State",
+          "expected": "Failed"
+        },
+        {
+          "state": "retry",
+          "matcher": "path",
+          "argument": "Configuration.State",
+          "expected": "Pending"
+        }
+      ]
+    },
+    "FunctionUpdatedV2": {
+      "delay": 1,
+      "maxAttempts": 300,
+      "operation": "GetFunction",
+      "description": "Waits for the function's LastUpdateStatus to be Successful. This waiter uses GetFunction API. This should be used after function updates.",
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "path",
+          "argument": "Configuration.LastUpdateStatus",
+          "expected": "Successful"
+        },
+        {
+          "state": "failure",
+          "matcher": "path",
+          "argument": "Configuration.LastUpdateStatus",
+          "expected": "Failed"
+        },
+        {
+          "state": "retry",
+          "matcher": "path",
+          "argument": "Configuration.LastUpdateStatus",
+          "expected": "InProgress"
+        }
+      ]
+    },
+    "PublishedVersionActive": {
+      "delay": 5,
+      "maxAttempts": 312,
+      "operation": "GetFunctionConfiguration",
+      "description": "Waits for the published version's State to be Active. This waiter uses GetFunctionConfiguration API. This should be used after new version is published.",
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "path",
+          "argument": "State",
+          "expected": "Active"
+        },
+        {
+          "state": "failure",
+          "matcher": "path",
+          "argument": "State",
+          "expected": "Failed"
+        },
+        {
+          "state": "retry",
+          "matcher": "path",
+          "argument": "State",
+          "expected": "Pending"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/launch-wizard/2018-05-10/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/launch-wizard/2018-05-10/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..05d05357
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/launch-wizard/2018-05-10/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/launch-wizard/2018-05-10/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/launch-wizard/2018-05-10/paginators-1.json
new file mode 100644
index 00000000..7f610953
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/launch-wizard/2018-05-10/paginators-1.json
@@ -0,0 +1,28 @@
+{
+  "pagination": {
+    "ListDeploymentEvents": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "deploymentEvents"
+    },
+    "ListDeployments": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "deployments"
+    },
+    "ListWorkloadDeploymentPatterns": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "workloadDeploymentPatterns"
+    },
+    "ListWorkloads": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "workloads"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/launch-wizard/2018-05-10/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/launch-wizard/2018-05-10/service-2.json.gz
new file mode 100644
index 00000000..fabf3b38
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/launch-wizard/2018-05-10/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/lex-models/2017-04-19/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/lex-models/2017-04-19/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..ccac24d4
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/lex-models/2017-04-19/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/lex-models/2017-04-19/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/lex-models/2017-04-19/examples-1.json
new file mode 100644
index 00000000..0982d973
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/lex-models/2017-04-19/examples-1.json
@@ -0,0 +1,758 @@
+{
+  "version": "1.0",
+  "examples": {
+    "GetBot": [
+      {
+        "input": {
+          "name": "DocOrderPizza",
+          "versionOrAlias": "$LATEST"
+        },
+        "output": {
+          "version": "$LATEST",
+          "name": "DocOrderPizzaBot",
+          "abortStatement": {
+            "messages": [
+              {
+                "content": "I don't understand. Can you try again?",
+                "contentType": "PlainText"
+              },
+              {
+                "content": "I'm sorry, I don't understand.",
+                "contentType": "PlainText"
+              }
+            ]
+          },
+          "checksum": "20172ee3-fa06-49b2-bbc5-667c090303e9",
+          "childDirected": true,
+          "clarificationPrompt": {
+            "maxAttempts": 1,
+            "messages": [
+              {
+                "content": "I'm sorry, I didn't hear that. Can you repeate what you just said?",
+                "contentType": "PlainText"
+              },
+              {
+                "content": "Can you say that again?",
+                "contentType": "PlainText"
+              }
+            ]
+          },
+          "createdDate": 1494360160.133,
+          "description": "Orders a pizza from a local pizzeria.",
+          "idleSessionTTLInSeconds": 300,
+          "intents": [
+            {
+              "intentName": "DocOrderPizza",
+              "intentVersion": "$LATEST"
+            }
+          ],
+          "lastUpdatedDate": 1494360160.133,
+          "locale": "en-US",
+          "status": "NOT_BUILT"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example shows how to get configuration information for a bot.",
+        "id": "to-get-information-about-a-bot-1494431724188",
+        "title": "To get information about a bot"
+      }
+    ],
+    "GetBots": [
+      {
+        "input": {
+          "maxResults": 5,
+          "nextToken": ""
+        },
+        "output": {
+          "bots": [
+            {
+              "version": "$LATEST",
+              "name": "DocOrderPizzaBot",
+              "createdDate": 1494360160.133,
+              "description": "Orders a pizza from a local pizzeria.",
+              "lastUpdatedDate": 1494360160.133,
+              "status": "NOT_BUILT"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example shows how to get a list of all of the bots in your account.",
+        "id": "to-get-a-list-of-bots-1494432220036",
+        "title": "To get a list of bots"
+      }
+    ],
+    "GetIntent": [
+      {
+        "input": {
+          "version": "$LATEST",
+          "name": "DocOrderPizza"
+        },
+        "output": {
+          "version": "$LATEST",
+          "name": "DocOrderPizza",
+          "checksum": "ca9bc13d-afc8-4706-bbaf-091f7a5935d6",
+          "conclusionStatement": {
+            "messages": [
+              {
+                "content": "All right, I ordered  you a {Crust} crust {Type} pizza with {Sauce} sauce.",
+                "contentType": "PlainText"
+              },
+              {
+                "content": "OK, your {Crust} crust {Type} pizza with {Sauce} sauce is on the way.",
+                "contentType": "PlainText"
+              }
+            ],
+            "responseCard": "foo"
+          },
+          "confirmationPrompt": {
+            "maxAttempts": 1,
+            "messages": [
+              {
+                "content": "Should I order  your {Crust} crust {Type} pizza with {Sauce} sauce?",
+                "contentType": "PlainText"
+              }
+            ]
+          },
+          "createdDate": 1494359783.453,
+          "description": "Order a pizza from a local pizzeria.",
+          "fulfillmentActivity": {
+            "type": "ReturnIntent"
+          },
+          "lastUpdatedDate": 1494359783.453,
+          "rejectionStatement": {
+            "messages": [
+              {
+                "content": "Ok, I'll cancel your order.",
+                "contentType": "PlainText"
+              },
+              {
+                "content": "I cancelled your order.",
+                "contentType": "PlainText"
+              }
+            ]
+          },
+          "sampleUtterances": [
+            "Order me a pizza.",
+            "Order me a {Type} pizza.",
+            "I want a {Crust} crust {Type} pizza",
+            "I want a {Crust} crust {Type} pizza with {Sauce} sauce."
+          ],
+          "slots": [
+            {
+              "name": "Type",
+              "description": "The type of pizza to order.",
+              "priority": 1,
+              "sampleUtterances": [
+                "Get me a {Type} pizza.",
+                "A {Type} pizza please.",
+                "I'd like a {Type} pizza."
+              ],
+              "slotConstraint": "Required",
+              "slotType": "DocPizzaType",
+              "slotTypeVersion": "$LATEST",
+              "valueElicitationPrompt": {
+                "maxAttempts": 1,
+                "messages": [
+                  {
+                    "content": "What type of pizza would you like?",
+                    "contentType": "PlainText"
+                  },
+                  {
+                    "content": "Vegie or cheese pizza?",
+                    "contentType": "PlainText"
+                  },
+                  {
+                    "content": "I can get you a vegie or a cheese pizza.",
+                    "contentType": "PlainText"
+                  }
+                ]
+              }
+            },
+            {
+              "name": "Crust",
+              "description": "The type of pizza crust to order.",
+              "priority": 2,
+              "sampleUtterances": [
+                "Make it a {Crust} crust.",
+                "I'd like a {Crust} crust."
+              ],
+              "slotConstraint": "Required",
+              "slotType": "DocPizzaCrustType",
+              "slotTypeVersion": "$LATEST",
+              "valueElicitationPrompt": {
+                "maxAttempts": 1,
+                "messages": [
+                  {
+                    "content": "What type of crust would you like?",
+                    "contentType": "PlainText"
+                  },
+                  {
+                    "content": "Thick or thin crust?",
+                    "contentType": "PlainText"
+                  }
+                ]
+              }
+            },
+            {
+              "name": "Sauce",
+              "description": "The type of sauce to use on the pizza.",
+              "priority": 3,
+              "sampleUtterances": [
+                "Make it {Sauce} sauce.",
+                "I'd like {Sauce} sauce."
+              ],
+              "slotConstraint": "Required",
+              "slotType": "DocPizzaSauceType",
+              "slotTypeVersion": "$LATEST",
+              "valueElicitationPrompt": {
+                "maxAttempts": 1,
+                "messages": [
+                  {
+                    "content": "White or red sauce?",
+                    "contentType": "PlainText"
+                  },
+                  {
+                    "content": "Garlic or tomato sauce?",
+                    "contentType": "PlainText"
+                  }
+                ]
+              }
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example shows how to get information about an intent.",
+        "id": "to-get-a-information-about-an-intent-1494432574147",
+        "title": "To get a information about an intent"
+      }
+    ],
+    "GetIntents": [
+      {
+        "input": {
+          "maxResults": 10,
+          "nextToken": ""
+        },
+        "output": {
+          "intents": [
+            {
+              "version": "$LATEST",
+              "name": "DocOrderPizza",
+              "createdDate": 1494359783.453,
+              "description": "Order a pizza from a local pizzeria.",
+              "lastUpdatedDate": 1494359783.453
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example shows how to get a list of all of the intents in your account.",
+        "id": "to-get-a-list-of-intents-1494432416363",
+        "title": "To get a list of intents"
+      }
+    ],
+    "GetSlotType": [
+      {
+        "input": {
+          "version": "$LATEST",
+          "name": "DocPizzaCrustType"
+        },
+        "output": {
+          "version": "$LATEST",
+          "name": "DocPizzaCrustType",
+          "checksum": "210b3d5a-90a3-4b22-ac7e-f50c2c71095f",
+          "createdDate": 1494359274.403,
+          "description": "Available crust types",
+          "enumerationValues": [
+            {
+              "value": "thick"
+            },
+            {
+              "value": "thin"
+            }
+          ],
+          "lastUpdatedDate": 1494359274.403
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example shows how to get information about a slot type.",
+        "id": "to-get-information-about-a-slot-type-1494432961004",
+        "title": "To get information about a slot type"
+      }
+    ],
+    "GetSlotTypes": [
+      {
+        "input": {
+          "maxResults": 10,
+          "nextToken": ""
+        },
+        "output": {
+          "slotTypes": [
+            {
+              "version": "$LATEST",
+              "name": "DocPizzaCrustType",
+              "createdDate": 1494359274.403,
+              "description": "Available crust types",
+              "lastUpdatedDate": 1494359274.403
+            },
+            {
+              "version": "$LATEST",
+              "name": "DocPizzaSauceType",
+              "createdDate": 1494356442.23,
+              "description": "Available pizza sauces",
+              "lastUpdatedDate": 1494356442.23
+            },
+            {
+              "version": "$LATEST",
+              "name": "DocPizzaType",
+              "createdDate": 1494359198.656,
+              "description": "Available pizzas",
+              "lastUpdatedDate": 1494359198.656
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example shows how to get a list of all of the slot types in your account.",
+        "id": "to-get-a-list-of-slot-types-1494432757458",
+        "title": "To get a list of slot types"
+      }
+    ],
+    "PutBot": [
+      {
+        "input": {
+          "name": "DocOrderPizzaBot",
+          "abortStatement": {
+            "messages": [
+              {
+                "content": "I don't understand. Can you try again?",
+                "contentType": "PlainText"
+              },
+              {
+                "content": "I'm sorry, I don't understand.",
+                "contentType": "PlainText"
+              }
+            ]
+          },
+          "childDirected": true,
+          "clarificationPrompt": {
+            "maxAttempts": 1,
+            "messages": [
+              {
+                "content": "I'm sorry, I didn't hear that. Can you repeat what you just said?",
+                "contentType": "PlainText"
+              },
+              {
+                "content": "Can you say that again?",
+                "contentType": "PlainText"
+              }
+            ]
+          },
+          "description": "Orders a pizza from a local pizzeria.",
+          "idleSessionTTLInSeconds": 300,
+          "intents": [
+            {
+              "intentName": "DocOrderPizza",
+              "intentVersion": "$LATEST"
+            }
+          ],
+          "locale": "en-US",
+          "processBehavior": "SAVE"
+        },
+        "output": {
+          "version": "$LATEST",
+          "name": "DocOrderPizzaBot",
+          "abortStatement": {
+            "messages": [
+              {
+                "content": "I don't understand. Can you try again?",
+                "contentType": "PlainText"
+              },
+              {
+                "content": "I'm sorry, I don't understand.",
+                "contentType": "PlainText"
+              }
+            ]
+          },
+          "checksum": "20172ee3-fa06-49b2-bbc5-667c090303e9",
+          "childDirected": true,
+          "clarificationPrompt": {
+            "maxAttempts": 1,
+            "messages": [
+              {
+                "content": "I'm sorry, I didn't hear that. Can you repeate what you just said?",
+                "contentType": "PlainText"
+              },
+              {
+                "content": "Can you say that again?",
+                "contentType": "PlainText"
+              }
+            ]
+          },
+          "createdDate": 1494360160.133,
+          "description": "Orders a pizza from a local pizzeria.",
+          "idleSessionTTLInSeconds": 300,
+          "intents": [
+            {
+              "intentName": "DocOrderPizza",
+              "intentVersion": "$LATEST"
+            }
+          ],
+          "lastUpdatedDate": 1494360160.133,
+          "locale": "en-US",
+          "status": "NOT_BUILT"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example shows how to create a bot for ordering pizzas.",
+        "id": "to-create-a-bot-1494360003886",
+        "title": "To create a bot"
+      }
+    ],
+    "PutIntent": [
+      {
+        "input": {
+          "name": "DocOrderPizza",
+          "conclusionStatement": {
+            "messages": [
+              {
+                "content": "All right, I ordered  you a {Crust} crust {Type} pizza with {Sauce} sauce.",
+                "contentType": "PlainText"
+              },
+              {
+                "content": "OK, your {Crust} crust {Type} pizza with {Sauce} sauce is on the way.",
+                "contentType": "PlainText"
+              }
+            ],
+            "responseCard": "foo"
+          },
+          "confirmationPrompt": {
+            "maxAttempts": 1,
+            "messages": [
+              {
+                "content": "Should I order  your {Crust} crust {Type} pizza with {Sauce} sauce?",
+                "contentType": "PlainText"
+              }
+            ]
+          },
+          "description": "Order a pizza from a local pizzeria.",
+          "fulfillmentActivity": {
+            "type": "ReturnIntent"
+          },
+          "rejectionStatement": {
+            "messages": [
+              {
+                "content": "Ok, I'll cancel your order.",
+                "contentType": "PlainText"
+              },
+              {
+                "content": "I cancelled your order.",
+                "contentType": "PlainText"
+              }
+            ]
+          },
+          "sampleUtterances": [
+            "Order me a pizza.",
+            "Order me a {Type} pizza.",
+            "I want a {Crust} crust {Type} pizza",
+            "I want a {Crust} crust {Type} pizza with {Sauce} sauce."
+          ],
+          "slots": [
+            {
+              "name": "Type",
+              "description": "The type of pizza to order.",
+              "priority": 1,
+              "sampleUtterances": [
+                "Get me a {Type} pizza.",
+                "A {Type} pizza please.",
+                "I'd like a {Type} pizza."
+              ],
+              "slotConstraint": "Required",
+              "slotType": "DocPizzaType",
+              "slotTypeVersion": "$LATEST",
+              "valueElicitationPrompt": {
+                "maxAttempts": 1,
+                "messages": [
+                  {
+                    "content": "What type of pizza would you like?",
+                    "contentType": "PlainText"
+                  },
+                  {
+                    "content": "Vegie or cheese pizza?",
+                    "contentType": "PlainText"
+                  },
+                  {
+                    "content": "I can get you a vegie or a cheese pizza.",
+                    "contentType": "PlainText"
+                  }
+                ]
+              }
+            },
+            {
+              "name": "Crust",
+              "description": "The type of pizza crust to order.",
+              "priority": 2,
+              "sampleUtterances": [
+                "Make it a {Crust} crust.",
+                "I'd like a {Crust} crust."
+              ],
+              "slotConstraint": "Required",
+              "slotType": "DocPizzaCrustType",
+              "slotTypeVersion": "$LATEST",
+              "valueElicitationPrompt": {
+                "maxAttempts": 1,
+                "messages": [
+                  {
+                    "content": "What type of crust would you like?",
+                    "contentType": "PlainText"
+                  },
+                  {
+                    "content": "Thick or thin crust?",
+                    "contentType": "PlainText"
+                  }
+                ]
+              }
+            },
+            {
+              "name": "Sauce",
+              "description": "The type of sauce to use on the pizza.",
+              "priority": 3,
+              "sampleUtterances": [
+                "Make it {Sauce} sauce.",
+                "I'd like {Sauce} sauce."
+              ],
+              "slotConstraint": "Required",
+              "slotType": "DocPizzaSauceType",
+              "slotTypeVersion": "$LATEST",
+              "valueElicitationPrompt": {
+                "maxAttempts": 1,
+                "messages": [
+                  {
+                    "content": "White or red sauce?",
+                    "contentType": "PlainText"
+                  },
+                  {
+                    "content": "Garlic or tomato sauce?",
+                    "contentType": "PlainText"
+                  }
+                ]
+              }
+            }
+          ]
+        },
+        "output": {
+          "version": "$LATEST",
+          "name": "DocOrderPizza",
+          "checksum": "ca9bc13d-afc8-4706-bbaf-091f7a5935d6",
+          "conclusionStatement": {
+            "messages": [
+              {
+                "content": "All right, I ordered  you a {Crust} crust {Type} pizza with {Sauce} sauce.",
+                "contentType": "PlainText"
+              },
+              {
+                "content": "OK, your {Crust} crust {Type} pizza with {Sauce} sauce is on the way.",
+                "contentType": "PlainText"
+              }
+            ],
+            "responseCard": "foo"
+          },
+          "confirmationPrompt": {
+            "maxAttempts": 1,
+            "messages": [
+              {
+                "content": "Should I order  your {Crust} crust {Type} pizza with {Sauce} sauce?",
+                "contentType": "PlainText"
+              }
+            ]
+          },
+          "createdDate": 1494359783.453,
+          "description": "Order a pizza from a local pizzeria.",
+          "fulfillmentActivity": {
+            "type": "ReturnIntent"
+          },
+          "lastUpdatedDate": 1494359783.453,
+          "rejectionStatement": {
+            "messages": [
+              {
+                "content": "Ok, I'll cancel your order.",
+                "contentType": "PlainText"
+              },
+              {
+                "content": "I cancelled your order.",
+                "contentType": "PlainText"
+              }
+            ]
+          },
+          "sampleUtterances": [
+            "Order me a pizza.",
+            "Order me a {Type} pizza.",
+            "I want a {Crust} crust {Type} pizza",
+            "I want a {Crust} crust {Type} pizza with {Sauce} sauce."
+          ],
+          "slots": [
+            {
+              "name": "Sauce",
+              "description": "The type of sauce to use on the pizza.",
+              "priority": 3,
+              "sampleUtterances": [
+                "Make it {Sauce} sauce.",
+                "I'd like {Sauce} sauce."
+              ],
+              "slotConstraint": "Required",
+              "slotType": "DocPizzaSauceType",
+              "slotTypeVersion": "$LATEST",
+              "valueElicitationPrompt": {
+                "maxAttempts": 1,
+                "messages": [
+                  {
+                    "content": "White or red sauce?",
+                    "contentType": "PlainText"
+                  },
+                  {
+                    "content": "Garlic or tomato sauce?",
+                    "contentType": "PlainText"
+                  }
+                ]
+              }
+            },
+            {
+              "name": "Type",
+              "description": "The type of pizza to order.",
+              "priority": 1,
+              "sampleUtterances": [
+                "Get me a {Type} pizza.",
+                "A {Type} pizza please.",
+                "I'd like a {Type} pizza."
+              ],
+              "slotConstraint": "Required",
+              "slotType": "DocPizzaType",
+              "slotTypeVersion": "$LATEST",
+              "valueElicitationPrompt": {
+                "maxAttempts": 1,
+                "messages": [
+                  {
+                    "content": "What type of pizza would you like?",
+                    "contentType": "PlainText"
+                  },
+                  {
+                    "content": "Vegie or cheese pizza?",
+                    "contentType": "PlainText"
+                  },
+                  {
+                    "content": "I can get you a vegie or a cheese pizza.",
+                    "contentType": "PlainText"
+                  }
+                ]
+              }
+            },
+            {
+              "name": "Crust",
+              "description": "The type of pizza crust to order.",
+              "priority": 2,
+              "sampleUtterances": [
+                "Make it a {Crust} crust.",
+                "I'd like a {Crust} crust."
+              ],
+              "slotConstraint": "Required",
+              "slotType": "DocPizzaCrustType",
+              "slotTypeVersion": "$LATEST",
+              "valueElicitationPrompt": {
+                "maxAttempts": 1,
+                "messages": [
+                  {
+                    "content": "What type of crust would you like?",
+                    "contentType": "PlainText"
+                  },
+                  {
+                    "content": "Thick or thin crust?",
+                    "contentType": "PlainText"
+                  }
+                ]
+              }
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example shows how to create an intent for ordering pizzas.",
+        "id": "to-create-an-intent-1494358144659",
+        "title": "To create an intent"
+      }
+    ],
+    "PutSlotType": [
+      {
+        "input": {
+          "name": "PizzaSauceType",
+          "description": "Available pizza sauces",
+          "enumerationValues": [
+            {
+              "value": "red"
+            },
+            {
+              "value": "white"
+            }
+          ]
+        },
+        "output": {
+          "version": "$LATEST",
+          "name": "DocPizzaSauceType",
+          "checksum": "cfd00ed1-775d-4357-947c-aca7e73b44ba",
+          "createdDate": 1494356442.23,
+          "description": "Available pizza sauces",
+          "enumerationValues": [
+            {
+              "value": "red"
+            },
+            {
+              "value": "white"
+            }
+          ],
+          "lastUpdatedDate": 1494356442.23
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example shows how to create a slot type that describes pizza sauces.",
+        "id": "to-create-a-slot-type-1494357262258",
+        "title": "To Create a Slot Type"
+      }
+    ]
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/lex-models/2017-04-19/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/lex-models/2017-04-19/paginators-1.json
new file mode 100644
index 00000000..02d23082
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/lex-models/2017-04-19/paginators-1.json
@@ -0,0 +1,64 @@
+{
+  "pagination": {
+    "GetSlotTypeVersions": {
+      "result_key": "slotTypes",
+      "output_token": "nextToken",
+      "input_token": "nextToken",
+      "limit_key": "maxResults"
+    },
+    "GetSlotTypes": {
+      "result_key": "slotTypes",
+      "output_token": "nextToken",
+      "input_token": "nextToken",
+      "limit_key": "maxResults"
+    },
+    "GetIntents": {
+      "result_key": "intents",
+      "output_token": "nextToken",
+      "input_token": "nextToken",
+      "limit_key": "maxResults"
+    },
+    "GetBotChannelAssociations": {
+      "result_key": "botChannelAssociations",
+      "output_token": "nextToken",
+      "input_token": "nextToken",
+      "limit_key": "maxResults"
+    },
+    "GetBots": {
+      "result_key": "bots",
+      "output_token": "nextToken",
+      "input_token": "nextToken",
+      "limit_key": "maxResults"
+    },
+    "GetBuiltinSlotTypes": {
+      "result_key": "slotTypes",
+      "output_token": "nextToken",
+      "input_token": "nextToken",
+      "limit_key": "maxResults"
+    },
+    "GetIntentVersions": {
+      "result_key": "intents",
+      "output_token": "nextToken",
+      "input_token": "nextToken",
+      "limit_key": "maxResults"
+    },
+    "GetBotAliases": {
+      "result_key": "BotAliases",
+      "output_token": "nextToken",
+      "input_token": "nextToken",
+      "limit_key": "maxResults"
+    },
+    "GetBuiltinIntents": {
+      "result_key": "intents",
+      "output_token": "nextToken",
+      "input_token": "nextToken",
+      "limit_key": "maxResults"
+    },
+    "GetBotVersions": {
+      "result_key": "bots",
+      "output_token": "nextToken",
+      "input_token": "nextToken",
+      "limit_key": "maxResults"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/lex-models/2017-04-19/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/lex-models/2017-04-19/service-2.json.gz
new file mode 100644
index 00000000..0f5ed37e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/lex-models/2017-04-19/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/lex-runtime/2016-11-28/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/lex-runtime/2016-11-28/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..cfcd6fdb
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/lex-runtime/2016-11-28/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/lex-runtime/2016-11-28/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/lex-runtime/2016-11-28/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/lex-runtime/2016-11-28/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/lex-runtime/2016-11-28/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/lex-runtime/2016-11-28/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/lex-runtime/2016-11-28/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/lex-runtime/2016-11-28/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/lex-runtime/2016-11-28/service-2.json.gz
new file mode 100644
index 00000000..3c924e5e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/lex-runtime/2016-11-28/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/lexv2-models/2020-08-07/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/lexv2-models/2020-08-07/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..d13aa43e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/lexv2-models/2020-08-07/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/lexv2-models/2020-08-07/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/lexv2-models/2020-08-07/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/lexv2-models/2020-08-07/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/lexv2-models/2020-08-07/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/lexv2-models/2020-08-07/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/lexv2-models/2020-08-07/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/lexv2-models/2020-08-07/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/lexv2-models/2020-08-07/service-2.json.gz
new file mode 100644
index 00000000..6fd8efb9
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/lexv2-models/2020-08-07/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/lexv2-models/2020-08-07/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/lexv2-models/2020-08-07/waiters-2.json
new file mode 100644
index 00000000..1ec96048
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/lexv2-models/2020-08-07/waiters-2.json
@@ -0,0 +1,255 @@
+{
+   "version":2,
+   "waiters":{
+      "BotAvailable":{
+         "delay":10,
+         "operation":"DescribeBot",
+         "maxAttempts":35,
+         "description":"Wait until a bot is available",
+         "acceptors":[
+            {
+               "expected":"Available",
+               "matcher":"path",
+               "state":"success",
+               "argument":"botStatus"
+            },
+            {
+               "expected":"Deleting",
+               "matcher":"path",
+               "state":"failure",
+               "argument":"botStatus"
+            },
+            {
+               "expected":"Failed",
+               "matcher":"path",
+               "state":"failure",
+               "argument":"botStatus"
+            },
+            {
+               "expected":"Inactive",
+               "matcher":"path",
+               "state":"failure",
+               "argument":"botStatus"
+            }
+         ]
+      },
+      "BotAliasAvailable":{
+         "delay":10,
+         "operation":"DescribeBotAlias",
+         "maxAttempts":35,
+         "description":"Wait until a bot alias is available",
+         "acceptors":[
+            {
+               "expected":"Available",
+               "matcher":"path",
+               "state":"success",
+               "argument":"botAliasStatus"
+            },
+            {
+               "expected":"Failed",
+               "matcher":"path",
+               "state":"failure",
+               "argument":"botAliasStatus"
+            },
+            {
+               "expected":"Deleting",
+               "matcher":"path",
+               "state":"failure",
+               "argument":"botAliasStatus"
+            }
+         ]
+      },
+      "BotExportCompleted":{
+         "delay":10,
+         "operation":"DescribeExport",
+         "maxAttempts":35,
+         "description":"Wait until a bot has been exported",
+         "acceptors":[
+            {
+               "expected":"Completed",
+               "matcher":"path",
+               "state":"success",
+               "argument":"exportStatus"
+            },
+            {
+               "expected":"Deleting",
+               "matcher":"path",
+               "state":"failure",
+               "argument":"exportStatus"
+            },
+            {
+               "expected":"Failed",
+               "matcher":"path",
+               "state":"failure",
+               "argument":"exportStatus"
+            }
+         ]
+      },
+      "BotImportCompleted":{
+         "delay":10,
+         "operation":"DescribeImport",
+         "maxAttempts":35,
+         "description":"Wait until a bot has been imported",
+         "acceptors":[
+            {
+               "expected":"Completed",
+               "matcher":"path",
+               "state":"success",
+               "argument":"importStatus"
+            },
+            {
+               "expected":"Deleting",
+               "matcher":"path",
+               "state":"failure",
+               "argument":"importStatus"
+            },
+            {
+               "expected":"Failed",
+               "matcher":"path",
+               "state":"failure",
+               "argument":"importStatus"
+            }
+         ]
+      },
+      "BotLocaleBuilt":{
+         "delay":10,
+         "operation":"DescribeBotLocale",
+         "maxAttempts":35,
+         "description":"Wait until a bot locale is built",
+         "acceptors":[
+            {
+               "expected":"Built",
+               "matcher":"path",
+               "state":"success",
+               "argument":"botLocaleStatus"
+            },
+            {
+               "expected":"Deleting",
+               "matcher":"path",
+               "state":"failure",
+               "argument":"botLocaleStatus"
+            },
+            {
+               "expected":"Failed",
+               "matcher":"path",
+               "state":"failure",
+               "argument":"botLocaleStatus"
+            },
+            {
+               "expected":"NotBuilt",
+               "matcher":"path",
+               "state":"failure",
+               "argument":"botLocaleStatus"
+            }
+         ]
+      },
+      "BotLocaleExpressTestingAvailable":{
+         "delay":10,
+         "operation":"DescribeBotLocale",
+         "maxAttempts":35,
+         "description":"Wait until a bot locale build is ready for express testing",
+         "acceptors":[
+            {
+               "expected":"Built",
+               "matcher":"path",
+               "state":"success",
+               "argument":"botLocaleStatus"
+            },
+            {
+               "expected":"ReadyExpressTesting",
+               "matcher":"path",
+               "state":"success",
+               "argument":"botLocaleStatus"
+            },
+            {
+               "expected":"Deleting",
+               "matcher":"path",
+               "state":"failure",
+               "argument":"botLocaleStatus"
+            },
+            {
+               "expected":"Failed",
+               "matcher":"path",
+               "state":"failure",
+               "argument":"botLocaleStatus"
+            },
+            {
+               "expected":"NotBuilt",
+               "matcher":"path",
+               "state":"failure",
+               "argument":"botLocaleStatus"
+            }
+         ]
+      },
+      "BotVersionAvailable":{
+         "delay":10,
+         "operation":"DescribeBotVersion",
+         "maxAttempts":35,
+         "description":"Wait until a bot version is available",
+         "acceptors":[
+            {
+               "expected":"Available",
+               "matcher":"path",
+               "state":"success",
+               "argument":"botStatus"
+            },
+            {
+               "expected":"Deleting",
+               "matcher":"path",
+               "state":"failure",
+               "argument":"botStatus"
+            },
+            {
+               "expected":"Failed",
+               "matcher":"path",
+               "state":"failure",
+               "argument":"botStatus"
+            },
+            {
+               "state":"retry",
+               "matcher":"status",
+               "expected":404
+            }
+         ]
+      },
+      "BotLocaleCreated":{
+         "delay":10,
+         "operation":"DescribeBotLocale",
+         "maxAttempts":35,
+         "description":"Wait unit a bot locale is created",
+         "acceptors":[
+            {
+               "expected":"Built",
+               "matcher":"path",
+               "state":"success",
+               "argument":"botLocaleStatus"
+            },
+            {
+               "expected":"ReadyExpressTesting",
+               "matcher":"path",
+               "state":"success",
+               "argument":"botLocaleStatus"
+            },
+            {
+               "expected":"NotBuilt",
+               "matcher":"path",
+               "state":"success",
+               "argument":"botLocaleStatus"
+            },
+            {
+               "expected":"Deleting",
+               "matcher":"path",
+               "state":"failure",
+               "argument":"botLocaleStatus"
+            },
+            {
+               "expected":"Failed",
+               "matcher":"path",
+               "state":"failure",
+               "argument":"botLocaleStatus"
+            }
+         ]
+      }
+   }
+}
+
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/lexv2-runtime/2020-08-07/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/lexv2-runtime/2020-08-07/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..9055070b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/lexv2-runtime/2020-08-07/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/lexv2-runtime/2020-08-07/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/lexv2-runtime/2020-08-07/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/lexv2-runtime/2020-08-07/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/lexv2-runtime/2020-08-07/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/lexv2-runtime/2020-08-07/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/lexv2-runtime/2020-08-07/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/lexv2-runtime/2020-08-07/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/lexv2-runtime/2020-08-07/service-2.json.gz
new file mode 100644
index 00000000..84b185c9
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/lexv2-runtime/2020-08-07/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/license-manager-linux-subscriptions/2018-05-10/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/license-manager-linux-subscriptions/2018-05-10/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..f172e4b9
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/license-manager-linux-subscriptions/2018-05-10/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/license-manager-linux-subscriptions/2018-05-10/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/license-manager-linux-subscriptions/2018-05-10/paginators-1.json
new file mode 100644
index 00000000..6d74d22e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/license-manager-linux-subscriptions/2018-05-10/paginators-1.json
@@ -0,0 +1,22 @@
+{
+  "pagination": {
+    "ListLinuxSubscriptionInstances": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Instances"
+    },
+    "ListLinuxSubscriptions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Subscriptions"
+    },
+    "ListRegisteredSubscriptionProviders": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "RegisteredSubscriptionProviders"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/license-manager-linux-subscriptions/2018-05-10/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/license-manager-linux-subscriptions/2018-05-10/service-2.json.gz
new file mode 100644
index 00000000..8ace08f5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/license-manager-linux-subscriptions/2018-05-10/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/license-manager-user-subscriptions/2018-05-10/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/license-manager-user-subscriptions/2018-05-10/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..66ab1d16
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/license-manager-user-subscriptions/2018-05-10/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/license-manager-user-subscriptions/2018-05-10/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/license-manager-user-subscriptions/2018-05-10/paginators-1.json
new file mode 100644
index 00000000..413006e5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/license-manager-user-subscriptions/2018-05-10/paginators-1.json
@@ -0,0 +1,34 @@
+{
+  "pagination": {
+    "ListIdentityProviders": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "IdentityProviderSummaries"
+    },
+    "ListInstances": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "InstanceSummaries"
+    },
+    "ListProductSubscriptions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ProductUserSummaries"
+    },
+    "ListUserAssociations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "InstanceUserSummaries"
+    },
+    "ListLicenseServerEndpoints": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "LicenseServerEndpoints"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/license-manager-user-subscriptions/2018-05-10/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/license-manager-user-subscriptions/2018-05-10/service-2.json.gz
new file mode 100644
index 00000000..28c4a879
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/license-manager-user-subscriptions/2018-05-10/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/license-manager/2018-08-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/license-manager/2018-08-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..f5937378
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/license-manager/2018-08-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/license-manager/2018-08-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/license-manager/2018-08-01/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/license-manager/2018-08-01/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/license-manager/2018-08-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/license-manager/2018-08-01/paginators-1.json
new file mode 100644
index 00000000..03a3ca4d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/license-manager/2018-08-01/paginators-1.json
@@ -0,0 +1,34 @@
+{
+  "pagination": {
+    "ListAssociationsForLicenseConfiguration": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "LicenseConfigurationAssociations"
+    },
+    "ListLicenseConfigurations": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "LicenseConfigurations"
+    },
+    "ListLicenseSpecificationsForResource": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "LicenseSpecifications"
+    },
+    "ListResourceInventory": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ResourceInventoryList"
+    },
+    "ListUsageForLicenseConfiguration": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "LicenseConfigurationUsageList"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/license-manager/2018-08-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/license-manager/2018-08-01/service-2.json.gz
new file mode 100644
index 00000000..1c0b63bd
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/license-manager/2018-08-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/lightsail/2016-11-28/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/lightsail/2016-11-28/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..15e00426
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/lightsail/2016-11-28/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/lightsail/2016-11-28/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/lightsail/2016-11-28/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/lightsail/2016-11-28/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/lightsail/2016-11-28/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/lightsail/2016-11-28/paginators-1.json
new file mode 100644
index 00000000..fbea9383
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/lightsail/2016-11-28/paginators-1.json
@@ -0,0 +1,104 @@
+{
+  "pagination": {
+    "GetActiveNames": {
+      "input_token": "pageToken",
+      "output_token": "nextPageToken",
+      "result_key": "activeNames"
+    },
+    "GetBlueprints": {
+      "input_token": "pageToken",
+      "output_token": "nextPageToken",
+      "result_key": "blueprints"
+    },
+    "GetBundles": {
+      "input_token": "pageToken",
+      "output_token": "nextPageToken",
+      "result_key": "bundles"
+    },
+    "GetDomains": {
+      "input_token": "pageToken",
+      "output_token": "nextPageToken",
+      "result_key": "domains"
+    },
+    "GetInstanceSnapshots": {
+      "input_token": "pageToken",
+      "output_token": "nextPageToken",
+      "result_key": "instanceSnapshots"
+    },
+    "GetInstances": {
+      "input_token": "pageToken",
+      "output_token": "nextPageToken",
+      "result_key": "instances"
+    },
+    "GetKeyPairs": {
+      "input_token": "pageToken",
+      "output_token": "nextPageToken",
+      "result_key": "keyPairs"
+    },
+    "GetOperations": {
+      "input_token": "pageToken",
+      "output_token": "nextPageToken",
+      "result_key": "operations"
+    },
+    "GetStaticIps": {
+      "input_token": "pageToken",
+      "output_token": "nextPageToken",
+      "result_key": "staticIps"
+    },
+    "GetCloudFormationStackRecords": {
+      "input_token": "pageToken",
+      "output_token": "nextPageToken",
+      "result_key": "cloudFormationStackRecords"
+    },
+    "GetDiskSnapshots": {
+      "input_token": "pageToken",
+      "output_token": "nextPageToken",
+      "result_key": "diskSnapshots"
+    },
+    "GetDisks": {
+      "input_token": "pageToken",
+      "output_token": "nextPageToken",
+      "result_key": "disks"
+    },
+    "GetExportSnapshotRecords": {
+      "input_token": "pageToken",
+      "output_token": "nextPageToken",
+      "result_key": "exportSnapshotRecords"
+    },
+    "GetLoadBalancers": {
+      "input_token": "pageToken",
+      "output_token": "nextPageToken",
+      "result_key": "loadBalancers"
+    },
+    "GetRelationalDatabaseBlueprints": {
+      "input_token": "pageToken",
+      "output_token": "nextPageToken",
+      "result_key": "blueprints"
+    },
+    "GetRelationalDatabaseBundles": {
+      "input_token": "pageToken",
+      "output_token": "nextPageToken",
+      "result_key": "bundles"
+    },
+    "GetRelationalDatabaseEvents": {
+      "input_token": "pageToken",
+      "output_token": "nextPageToken",
+      "result_key": "relationalDatabaseEvents"
+    },
+    "GetRelationalDatabaseParameters": {
+      "input_token": "pageToken",
+      "output_token": "nextPageToken",
+      "result_key": "parameters"
+    },
+    "GetRelationalDatabaseSnapshots": {
+      "input_token": "pageToken",
+      "output_token": "nextPageToken",
+      "result_key": "relationalDatabaseSnapshots"
+    },
+    "GetRelationalDatabases": {
+      "input_token": "pageToken",
+      "output_token": "nextPageToken",
+      "result_key": "relationalDatabases"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/lightsail/2016-11-28/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/lightsail/2016-11-28/service-2.json.gz
new file mode 100644
index 00000000..e33854f0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/lightsail/2016-11-28/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/location/2020-11-19/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/location/2020-11-19/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..f1e021ac
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/location/2020-11-19/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/location/2020-11-19/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/location/2020-11-19/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/location/2020-11-19/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/location/2020-11-19/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/location/2020-11-19/paginators-1.json
new file mode 100644
index 00000000..55e77c93
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/location/2020-11-19/paginators-1.json
@@ -0,0 +1,70 @@
+{
+  "pagination": {
+    "GetDevicePositionHistory": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "DevicePositions",
+      "limit_key": "MaxResults"
+    },
+    "ListGeofenceCollections": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Entries"
+    },
+    "ListGeofences": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "Entries",
+      "limit_key": "MaxResults"
+    },
+    "ListMaps": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Entries"
+    },
+    "ListPlaceIndexes": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Entries"
+    },
+    "ListTrackerConsumers": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ConsumerArns"
+    },
+    "ListTrackers": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Entries"
+    },
+    "ListDevicePositions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Entries"
+    },
+    "ListRouteCalculators": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Entries"
+    },
+    "ListKeys": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Entries"
+    },
+    "ForecastGeofenceEvents": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ForecastedEvents"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/location/2020-11-19/paginators-1.sdk-extras.json b/.venv/lib/python3.12/site-packages/botocore/data/location/2020-11-19/paginators-1.sdk-extras.json
new file mode 100644
index 00000000..2aba0bfb
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/location/2020-11-19/paginators-1.sdk-extras.json
@@ -0,0 +1,13 @@
+{
+  "version": 1.0,
+  "merge": {
+    "pagination": {
+      "ForecastGeofenceEvents": {
+        "non_aggregate_keys": [
+          "DistanceUnit",
+          "SpeedUnit"
+        ]
+      }
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/location/2020-11-19/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/location/2020-11-19/service-2.json.gz
new file mode 100644
index 00000000..8fbd43de
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/location/2020-11-19/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/logs/2014-03-28/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/logs/2014-03-28/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..99edd81b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/logs/2014-03-28/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/logs/2014-03-28/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/logs/2014-03-28/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/logs/2014-03-28/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/logs/2014-03-28/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/logs/2014-03-28/paginators-1.json
new file mode 100644
index 00000000..3f07c725
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/logs/2014-03-28/paginators-1.json
@@ -0,0 +1,103 @@
+{
+  "pagination": {
+    "DescribeDestinations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "limit",
+      "result_key": "destinations"
+    },
+    "DescribeLogGroups": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "limit",
+      "result_key": "logGroups"
+    },
+    "DescribeLogStreams": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "limit",
+      "result_key": "logStreams"
+    },
+    "DescribeMetricFilters": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "limit",
+      "result_key": "metricFilters"
+    },
+    "DescribeSubscriptionFilters": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "limit",
+      "result_key": "subscriptionFilters"
+    },
+    "FilterLogEvents": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "limit",
+      "result_key": [
+        "events",
+        "searchedLogStreams"
+      ]
+    },
+    "DescribeExportTasks": {
+      "input_token": "nextToken",
+      "limit_key": "limit",
+      "output_token": "nextToken",
+      "result_key": "exportTasks"
+    },
+    "DescribeQueries": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "queries"
+    },
+    "DescribeResourcePolicies": {
+      "input_token": "nextToken",
+      "limit_key": "limit",
+      "output_token": "nextToken",
+      "result_key": "resourcePolicies"
+    },
+    "DescribeDeliveries": {
+      "input_token": "nextToken",
+      "limit_key": "limit",
+      "output_token": "nextToken",
+      "result_key": "deliveries"
+    },
+    "DescribeDeliveryDestinations": {
+      "input_token": "nextToken",
+      "limit_key": "limit",
+      "output_token": "nextToken",
+      "result_key": "deliveryDestinations"
+    },
+    "DescribeDeliverySources": {
+      "input_token": "nextToken",
+      "limit_key": "limit",
+      "output_token": "nextToken",
+      "result_key": "deliverySources"
+    },
+    "ListAnomalies": {
+      "input_token": "nextToken",
+      "limit_key": "limit",
+      "output_token": "nextToken",
+      "result_key": "anomalies"
+    },
+    "ListLogAnomalyDetectors": {
+      "input_token": "nextToken",
+      "limit_key": "limit",
+      "output_token": "nextToken",
+      "result_key": "anomalyDetectors"
+    },
+    "DescribeConfigurationTemplates": {
+      "input_token": "nextToken",
+      "limit_key": "limit",
+      "output_token": "nextToken",
+      "result_key": "configurationTemplates"
+    },
+    "ListLogGroupsForQuery": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "logGroupIdentifiers"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/logs/2014-03-28/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/logs/2014-03-28/service-2.json.gz
new file mode 100644
index 00000000..edc2bad2
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/logs/2014-03-28/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/lookoutequipment/2020-12-15/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/lookoutequipment/2020-12-15/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..84533020
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/lookoutequipment/2020-12-15/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/lookoutequipment/2020-12-15/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/lookoutequipment/2020-12-15/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/lookoutequipment/2020-12-15/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/lookoutequipment/2020-12-15/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/lookoutequipment/2020-12-15/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/lookoutequipment/2020-12-15/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/lookoutequipment/2020-12-15/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/lookoutequipment/2020-12-15/service-2.json.gz
new file mode 100644
index 00000000..0cedefbb
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/lookoutequipment/2020-12-15/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/lookoutmetrics/2017-07-25/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/lookoutmetrics/2017-07-25/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..89d84616
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/lookoutmetrics/2017-07-25/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/lookoutmetrics/2017-07-25/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/lookoutmetrics/2017-07-25/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/lookoutmetrics/2017-07-25/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/lookoutmetrics/2017-07-25/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/lookoutmetrics/2017-07-25/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/lookoutmetrics/2017-07-25/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/lookoutmetrics/2017-07-25/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/lookoutmetrics/2017-07-25/service-2.json.gz
new file mode 100644
index 00000000..ef7a976d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/lookoutmetrics/2017-07-25/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/lookoutvision/2020-11-20/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/lookoutvision/2020-11-20/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..1e228178
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/lookoutvision/2020-11-20/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/lookoutvision/2020-11-20/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/lookoutvision/2020-11-20/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/lookoutvision/2020-11-20/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/lookoutvision/2020-11-20/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/lookoutvision/2020-11-20/paginators-1.json
new file mode 100644
index 00000000..14c4ce73
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/lookoutvision/2020-11-20/paginators-1.json
@@ -0,0 +1,28 @@
+{
+  "pagination": {
+    "ListDatasetEntries": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "DatasetEntries"
+    },
+    "ListModels": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Models"
+    },
+    "ListProjects": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Projects"
+    },
+    "ListModelPackagingJobs": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ModelPackagingJobs"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/lookoutvision/2020-11-20/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/lookoutvision/2020-11-20/service-2.json.gz
new file mode 100644
index 00000000..666e6825
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/lookoutvision/2020-11-20/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/m2/2021-04-28/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/m2/2021-04-28/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..c2035ce7
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/m2/2021-04-28/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/m2/2021-04-28/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/m2/2021-04-28/paginators-1.json
new file mode 100644
index 00000000..e7cd269f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/m2/2021-04-28/paginators-1.json
@@ -0,0 +1,58 @@
+{
+  "pagination": {
+    "ListApplicationVersions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "applicationVersions"
+    },
+    "ListApplications": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "applications"
+    },
+    "ListBatchJobDefinitions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "batchJobDefinitions"
+    },
+    "ListBatchJobExecutions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "batchJobExecutions"
+    },
+    "ListDataSetImportHistory": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "dataSetImportTasks"
+    },
+    "ListDataSets": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "dataSets"
+    },
+    "ListDeployments": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "deployments"
+    },
+    "ListEngineVersions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "engineVersions"
+    },
+    "ListEnvironments": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "environments"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/m2/2021-04-28/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/m2/2021-04-28/service-2.json.gz
new file mode 100644
index 00000000..4cf402ef
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/m2/2021-04-28/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/machinelearning/2014-12-12/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/machinelearning/2014-12-12/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..f80367cd
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/machinelearning/2014-12-12/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/machinelearning/2014-12-12/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/machinelearning/2014-12-12/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/machinelearning/2014-12-12/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/machinelearning/2014-12-12/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/machinelearning/2014-12-12/paginators-1.json
new file mode 100644
index 00000000..c13ce65a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/machinelearning/2014-12-12/paginators-1.json
@@ -0,0 +1,28 @@
+{
+  "pagination": {
+    "DescribeBatchPredictions": {
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "result_key": "Results"
+    },
+    "DescribeDataSources": {
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "result_key": "Results"
+    },
+    "DescribeEvaluations": {
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "result_key": "Results"
+    },
+    "DescribeMLModels": {
+      "limit_key": "Limit",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "result_key": "Results"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/machinelearning/2014-12-12/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/machinelearning/2014-12-12/service-2.json.gz
new file mode 100644
index 00000000..04d0bcb2
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/machinelearning/2014-12-12/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/machinelearning/2014-12-12/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/machinelearning/2014-12-12/waiters-2.json
new file mode 100644
index 00000000..da6b1c95
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/machinelearning/2014-12-12/waiters-2.json
@@ -0,0 +1,81 @@
+{
+  "version": 2,
+  "waiters": {
+    "DataSourceAvailable": {
+      "delay": 30,
+      "operation": "DescribeDataSources",
+      "maxAttempts": 60,
+      "acceptors": [
+        {
+          "expected": "COMPLETED",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Results[].Status"
+        },
+        {
+          "expected": "FAILED",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Results[].Status"
+        }
+      ]
+    },
+    "MLModelAvailable": {
+      "delay": 30,
+      "operation": "DescribeMLModels",
+      "maxAttempts": 60,
+      "acceptors": [
+        {
+          "expected": "COMPLETED",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Results[].Status"
+        },
+        {
+          "expected": "FAILED",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Results[].Status"
+        }
+      ]
+    },
+    "EvaluationAvailable": {
+      "delay": 30,
+      "operation": "DescribeEvaluations",
+      "maxAttempts": 60,
+      "acceptors": [
+        {
+          "expected": "COMPLETED",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Results[].Status"
+        },
+        {
+          "expected": "FAILED",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Results[].Status"
+        }
+      ]
+    },
+    "BatchPredictionAvailable": {
+      "delay": 30,
+      "operation": "DescribeBatchPredictions",
+      "maxAttempts": 60,
+      "acceptors": [
+        {
+          "expected": "COMPLETED",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Results[].Status"
+        },
+        {
+          "expected": "FAILED",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Results[].Status"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/macie2/2020-01-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/macie2/2020-01-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..c5782900
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/macie2/2020-01-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/macie2/2020-01-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/macie2/2020-01-01/paginators-1.json
new file mode 100644
index 00000000..8037ac75
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/macie2/2020-01-01/paginators-1.json
@@ -0,0 +1,106 @@
+{
+  "pagination": {
+    "DescribeBuckets": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "buckets"
+    },
+    "GetUsageStatistics": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "records",
+      "non_aggregate_keys": [
+        "timeRange"
+      ]
+    },
+    "ListClassificationJobs": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListCustomDataIdentifiers": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListFindings": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "findingIds"
+    },
+    "ListFindingsFilters": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "findingsFilterListItems"
+    },
+    "ListInvitations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "invitations"
+    },
+    "ListMembers": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "members"
+    },
+    "ListOrganizationAdminAccounts": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "adminAccounts"
+    },
+    "SearchResources": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "matchingResources"
+    },
+    "ListClassificationScopes": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "classificationScopes"
+    },
+    "ListAllowLists": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "allowLists"
+    },
+    "ListManagedDataIdentifiers": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "items"
+    },
+    "ListResourceProfileDetections": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "detections"
+    },
+    "ListSensitivityInspectionTemplates": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "sensitivityInspectionTemplates"
+    },
+    "ListResourceProfileArtifacts": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "artifacts"
+    },
+    "ListAutomatedDiscoveryAccounts": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/macie2/2020-01-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/macie2/2020-01-01/service-2.json.gz
new file mode 100644
index 00000000..c4064288
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/macie2/2020-01-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/macie2/2020-01-01/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/macie2/2020-01-01/waiters-2.json
new file mode 100644
index 00000000..12c4a4a8
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/macie2/2020-01-01/waiters-2.json
@@ -0,0 +1,25 @@
+{
+  "version": 2,
+  "waiters": {
+    "FindingRevealed": {
+      "description": "Wait until the sensitive data occurrences are ready.",
+      "delay": 2,
+      "maxAttempts": 60,
+      "operation": "GetSensitiveDataOccurrences",
+      "acceptors": [
+        {
+          "matcher": "path",
+          "argument": "status",
+          "state": "success",
+          "expected": "SUCCESS"
+        },
+        {
+          "matcher": "path",
+          "argument": "status",
+          "state": "success",
+          "expected": "ERROR"
+        }
+      ]
+    }
+  }
+}
\ No newline at end of file
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/mailmanager/2023-10-17/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/mailmanager/2023-10-17/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..8aade794
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mailmanager/2023-10-17/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/mailmanager/2023-10-17/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/mailmanager/2023-10-17/paginators-1.json
new file mode 100644
index 00000000..a87e9682
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mailmanager/2023-10-17/paginators-1.json
@@ -0,0 +1,76 @@
+{
+  "pagination": {
+    "ListAddonInstances": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "PageSize",
+      "result_key": "AddonInstances"
+    },
+    "ListAddonSubscriptions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "PageSize",
+      "result_key": "AddonSubscriptions"
+    },
+    "ListArchiveExports": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "PageSize",
+      "result_key": "Exports"
+    },
+    "ListArchiveSearches": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "PageSize",
+      "result_key": "Searches"
+    },
+    "ListArchives": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "PageSize",
+      "result_key": "Archives"
+    },
+    "ListIngressPoints": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "PageSize",
+      "result_key": "IngressPoints"
+    },
+    "ListRelays": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "PageSize",
+      "result_key": "Relays"
+    },
+    "ListRuleSets": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "PageSize",
+      "result_key": "RuleSets"
+    },
+    "ListTrafficPolicies": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "PageSize",
+      "result_key": "TrafficPolicies"
+    },
+    "ListAddressListImportJobs": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "PageSize",
+      "result_key": "ImportJobs"
+    },
+    "ListAddressLists": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "PageSize",
+      "result_key": "AddressLists"
+    },
+    "ListMembersOfAddressList": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "PageSize",
+      "result_key": "Addresses"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/mailmanager/2023-10-17/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/mailmanager/2023-10-17/service-2.json.gz
new file mode 100644
index 00000000..51a2d308
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mailmanager/2023-10-17/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/managedblockchain-query/2023-05-04/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/managedblockchain-query/2023-05-04/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..55929424
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/managedblockchain-query/2023-05-04/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/managedblockchain-query/2023-05-04/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/managedblockchain-query/2023-05-04/paginators-1.json
new file mode 100644
index 00000000..61eb5919
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/managedblockchain-query/2023-05-04/paginators-1.json
@@ -0,0 +1,34 @@
+{
+  "pagination": {
+    "ListTokenBalances": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "tokenBalances"
+    },
+    "ListTransactionEvents": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "events"
+    },
+    "ListTransactions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "transactions"
+    },
+    "ListAssetContracts": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "contracts"
+    },
+    "ListFilteredTransactionEvents": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "events"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/managedblockchain-query/2023-05-04/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/managedblockchain-query/2023-05-04/service-2.json.gz
new file mode 100644
index 00000000..9e892a47
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/managedblockchain-query/2023-05-04/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/managedblockchain-query/2023-05-04/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/managedblockchain-query/2023-05-04/waiters-2.json
new file mode 100644
index 00000000..13f60ee6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/managedblockchain-query/2023-05-04/waiters-2.json
@@ -0,0 +1,5 @@
+{
+  "version": 2,
+  "waiters": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/managedblockchain/2018-09-24/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/managedblockchain/2018-09-24/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..0b453b6f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/managedblockchain/2018-09-24/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/managedblockchain/2018-09-24/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/managedblockchain/2018-09-24/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/managedblockchain/2018-09-24/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/managedblockchain/2018-09-24/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/managedblockchain/2018-09-24/paginators-1.json
new file mode 100644
index 00000000..8d30a03f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/managedblockchain/2018-09-24/paginators-1.json
@@ -0,0 +1,10 @@
+{
+  "pagination": {
+    "ListAccessors": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Accessors"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/managedblockchain/2018-09-24/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/managedblockchain/2018-09-24/service-2.json.gz
new file mode 100644
index 00000000..9266411b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/managedblockchain/2018-09-24/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/marketplace-agreement/2020-03-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/marketplace-agreement/2020-03-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..033a1731
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/marketplace-agreement/2020-03-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/marketplace-agreement/2020-03-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/marketplace-agreement/2020-03-01/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/marketplace-agreement/2020-03-01/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/marketplace-agreement/2020-03-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/marketplace-agreement/2020-03-01/service-2.json.gz
new file mode 100644
index 00000000..e4b155e8
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/marketplace-agreement/2020-03-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/marketplace-catalog/2018-09-17/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/marketplace-catalog/2018-09-17/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..b03d7dc6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/marketplace-catalog/2018-09-17/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/marketplace-catalog/2018-09-17/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/marketplace-catalog/2018-09-17/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/marketplace-catalog/2018-09-17/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/marketplace-catalog/2018-09-17/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/marketplace-catalog/2018-09-17/paginators-1.json
new file mode 100644
index 00000000..8bbef968
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/marketplace-catalog/2018-09-17/paginators-1.json
@@ -0,0 +1,16 @@
+{
+  "pagination": {
+    "ListChangeSets": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ChangeSetSummaryList"
+    },
+    "ListEntities": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "EntitySummaryList"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/marketplace-catalog/2018-09-17/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/marketplace-catalog/2018-09-17/service-2.json.gz
new file mode 100644
index 00000000..161298af
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/marketplace-catalog/2018-09-17/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/marketplace-deployment/2023-01-25/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/marketplace-deployment/2023-01-25/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..c29295e8
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/marketplace-deployment/2023-01-25/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/marketplace-deployment/2023-01-25/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/marketplace-deployment/2023-01-25/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/marketplace-deployment/2023-01-25/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/marketplace-deployment/2023-01-25/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/marketplace-deployment/2023-01-25/service-2.json.gz
new file mode 100644
index 00000000..2e843e5c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/marketplace-deployment/2023-01-25/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/marketplace-entitlement/2017-01-11/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/marketplace-entitlement/2017-01-11/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..bffa263a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/marketplace-entitlement/2017-01-11/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/marketplace-entitlement/2017-01-11/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/marketplace-entitlement/2017-01-11/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/marketplace-entitlement/2017-01-11/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/marketplace-entitlement/2017-01-11/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/marketplace-entitlement/2017-01-11/paginators-1.json
new file mode 100644
index 00000000..8dbf525e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/marketplace-entitlement/2017-01-11/paginators-1.json
@@ -0,0 +1,10 @@
+{
+  "pagination": {
+    "GetEntitlements": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Entitlements"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/marketplace-entitlement/2017-01-11/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/marketplace-entitlement/2017-01-11/service-2.json.gz
new file mode 100644
index 00000000..f0e83433
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/marketplace-entitlement/2017-01-11/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/marketplace-reporting/2018-05-10/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/marketplace-reporting/2018-05-10/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..9a450091
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/marketplace-reporting/2018-05-10/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/marketplace-reporting/2018-05-10/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/marketplace-reporting/2018-05-10/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/marketplace-reporting/2018-05-10/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/marketplace-reporting/2018-05-10/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/marketplace-reporting/2018-05-10/service-2.json.gz
new file mode 100644
index 00000000..85467a74
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/marketplace-reporting/2018-05-10/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/marketplace-reporting/2018-05-10/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/marketplace-reporting/2018-05-10/waiters-2.json
new file mode 100644
index 00000000..13f60ee6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/marketplace-reporting/2018-05-10/waiters-2.json
@@ -0,0 +1,5 @@
+{
+  "version": 2,
+  "waiters": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/marketplacecommerceanalytics/2015-07-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/marketplacecommerceanalytics/2015-07-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..efea8e3e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/marketplacecommerceanalytics/2015-07-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/marketplacecommerceanalytics/2015-07-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/marketplacecommerceanalytics/2015-07-01/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/marketplacecommerceanalytics/2015-07-01/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/marketplacecommerceanalytics/2015-07-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/marketplacecommerceanalytics/2015-07-01/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/marketplacecommerceanalytics/2015-07-01/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/marketplacecommerceanalytics/2015-07-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/marketplacecommerceanalytics/2015-07-01/service-2.json.gz
new file mode 100644
index 00000000..6cfa3abf
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/marketplacecommerceanalytics/2015-07-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/mediaconnect/2018-11-14/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/mediaconnect/2018-11-14/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..ada657ef
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mediaconnect/2018-11-14/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/mediaconnect/2018-11-14/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/mediaconnect/2018-11-14/paginators-1.json
new file mode 100644
index 00000000..65df623e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mediaconnect/2018-11-14/paginators-1.json
@@ -0,0 +1,46 @@
+{
+  "pagination": {
+    "ListFlows": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Flows"
+    },
+    "ListEntitlements": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Entitlements"
+    },
+    "ListOfferings": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Offerings"
+    },
+    "ListReservations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Reservations"
+    },
+    "ListBridges": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Bridges"
+    },
+    "ListGatewayInstances": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Instances"
+    },
+    "ListGateways": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Gateways"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/mediaconnect/2018-11-14/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/mediaconnect/2018-11-14/service-2.json.gz
new file mode 100644
index 00000000..8013c09a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mediaconnect/2018-11-14/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/mediaconnect/2018-11-14/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/mediaconnect/2018-11-14/waiters-2.json
new file mode 100644
index 00000000..0f4968ad
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mediaconnect/2018-11-14/waiters-2.json
@@ -0,0 +1,104 @@
+{
+  "version" : 2,
+  "waiters" : {
+    "FlowActive" : {
+      "description" : "Wait until a flow is active",
+      "delay" : 3,
+      "maxAttempts" : 40,
+      "operation" : "DescribeFlow",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "Flow.Status",
+        "state" : "success",
+        "expected" : "ACTIVE"
+      }, {
+        "matcher" : "path",
+        "argument" : "Flow.Status",
+        "state" : "retry",
+        "expected" : "STARTING"
+      }, {
+        "matcher" : "path",
+        "argument" : "Flow.Status",
+        "state" : "retry",
+        "expected" : "UPDATING"
+      }, {
+        "matcher" : "error",
+        "state" : "retry",
+        "expected" : "InternalServerErrorException"
+      }, {
+        "matcher" : "error",
+        "state" : "retry",
+        "expected" : "ServiceUnavailableException"
+      }, {
+        "matcher" : "path",
+        "argument" : "Flow.Status",
+        "state" : "failure",
+        "expected" : "STANDBY"
+      }, {
+        "matcher" : "path",
+        "argument" : "Flow.Status",
+        "state" : "failure",
+        "expected" : "ERROR"
+      } ]
+    },
+    "FlowDeleted" : {
+      "description" : "Wait until a flow is deleted",
+      "delay" : 3,
+      "maxAttempts" : 40,
+      "operation" : "DescribeFlow",
+      "acceptors" : [ {
+        "matcher" : "error",
+        "state" : "success",
+        "expected" : "NotFoundException"
+      }, {
+        "matcher" : "path",
+        "argument" : "Flow.Status",
+        "state" : "retry",
+        "expected" : "DELETING"
+      }, {
+        "matcher" : "error",
+        "state" : "retry",
+        "expected" : "InternalServerErrorException"
+      }, {
+        "matcher" : "error",
+        "state" : "retry",
+        "expected" : "ServiceUnavailableException"
+      }, {
+        "matcher" : "path",
+        "argument" : "Flow.Status",
+        "state" : "failure",
+        "expected" : "ERROR"
+      } ]
+    },
+    "FlowStandby" : {
+      "description" : "Wait until a flow is in standby mode",
+      "delay" : 3,
+      "maxAttempts" : 40,
+      "operation" : "DescribeFlow",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "Flow.Status",
+        "state" : "success",
+        "expected" : "STANDBY"
+      }, {
+        "matcher" : "path",
+        "argument" : "Flow.Status",
+        "state" : "retry",
+        "expected" : "STOPPING"
+      }, {
+        "matcher" : "error",
+        "state" : "retry",
+        "expected" : "InternalServerErrorException"
+      }, {
+        "matcher" : "error",
+        "state" : "retry",
+        "expected" : "ServiceUnavailableException"
+      }, {
+        "matcher" : "path",
+        "argument" : "Flow.Status",
+        "state" : "failure",
+        "expected" : "ERROR"
+      } ]
+    }
+  }
+}
\ No newline at end of file
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/mediaconvert/2017-08-29/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/mediaconvert/2017-08-29/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..e84e591c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mediaconvert/2017-08-29/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/mediaconvert/2017-08-29/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/mediaconvert/2017-08-29/paginators-1.json
new file mode 100644
index 00000000..1f93efd8
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mediaconvert/2017-08-29/paginators-1.json
@@ -0,0 +1,46 @@
+{
+  "pagination": {
+    "DescribeEndpoints": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Endpoints"
+    },
+    "ListJobs": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Jobs"
+    },
+    "ListPresets": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Presets"
+    },
+    "ListJobTemplates": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "JobTemplates"
+    },
+    "ListQueues": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Queues"
+    },
+    "SearchJobs": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Jobs"
+    },
+    "ListVersions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Versions"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/mediaconvert/2017-08-29/paginators-1.sdk-extras.json b/.venv/lib/python3.12/site-packages/botocore/data/mediaconvert/2017-08-29/paginators-1.sdk-extras.json
new file mode 100644
index 00000000..c1219900
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mediaconvert/2017-08-29/paginators-1.sdk-extras.json
@@ -0,0 +1,13 @@
+{
+  "version": 1.0,
+  "merge": {
+    "pagination": {
+      "ListQueues": {
+        "non_aggregate_keys": [
+          "TotalConcurrentJobs",
+          "UnallocatedConcurrentJobs"
+        ]
+      }
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/mediaconvert/2017-08-29/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/mediaconvert/2017-08-29/service-2.json.gz
new file mode 100644
index 00000000..33203edf
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mediaconvert/2017-08-29/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/medialive/2017-10-14/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/medialive/2017-10-14/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..8740469e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/medialive/2017-10-14/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/medialive/2017-10-14/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/medialive/2017-10-14/paginators-1.json
new file mode 100644
index 00000000..2b141883
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/medialive/2017-10-14/paginators-1.json
@@ -0,0 +1,118 @@
+{
+  "pagination": {
+    "ListInputs": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Inputs"
+    },
+    "ListChannels": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Channels"
+    },
+    "ListInputSecurityGroups": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "InputSecurityGroups"
+    },
+    "ListOfferings": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Offerings"
+    },
+    "ListReservations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Reservations"
+    },
+    "DescribeSchedule": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ScheduleActions"
+    },
+    "ListMultiplexPrograms": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "MultiplexPrograms"
+    },
+    "ListMultiplexes": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Multiplexes"
+    },
+    "ListInputDevices": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "InputDevices"
+    },
+    "ListInputDeviceTransfers": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "InputDeviceTransfers"
+    },
+    "ListSignalMaps": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "SignalMaps"
+    },
+    "ListCloudWatchAlarmTemplates": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "CloudWatchAlarmTemplates"
+    },
+    "ListCloudWatchAlarmTemplateGroups": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "CloudWatchAlarmTemplateGroups"
+    },
+    "ListEventBridgeRuleTemplates": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "EventBridgeRuleTemplates"
+    },
+    "ListEventBridgeRuleTemplateGroups": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "EventBridgeRuleTemplateGroups"
+    },
+    "ListNodes": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Nodes"
+    },
+    "ListClusters": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Clusters"
+    },
+    "ListChannelPlacementGroups": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ChannelPlacementGroups"
+    },
+    "ListNetworks": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Networks"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/medialive/2017-10-14/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/medialive/2017-10-14/service-2.json.gz
new file mode 100644
index 00000000..eb693b6c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/medialive/2017-10-14/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/medialive/2017-10-14/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/medialive/2017-10-14/waiters-2.json
new file mode 100644
index 00000000..d95e09ab
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/medialive/2017-10-14/waiters-2.json
@@ -0,0 +1,624 @@
+{
+  "version": 2,
+  "waiters": {
+    "ChannelCreated": {
+      "description": "Wait until a channel has been created",
+      "operation": "DescribeChannel",
+      "delay": 3,
+      "maxAttempts": 5,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "path",
+          "argument": "State",
+          "expected": "IDLE"
+        },
+        {
+          "state": "retry",
+          "matcher": "path",
+          "argument": "State",
+          "expected": "CREATING"
+        },
+        {
+          "state": "retry",
+          "matcher": "status",
+          "expected": 500
+        },
+        {
+          "state": "failure",
+          "matcher": "path",
+          "argument": "State",
+          "expected": "CREATE_FAILED"
+        }
+      ]
+    },
+    "ChannelRunning": {
+      "description": "Wait until a channel is running",
+      "operation": "DescribeChannel",
+      "delay": 5,
+      "maxAttempts": 120,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "path",
+          "argument": "State",
+          "expected": "RUNNING"
+        },
+        {
+          "state": "retry",
+          "matcher": "path",
+          "argument": "State",
+          "expected": "STARTING"
+        },
+        {
+          "state": "retry",
+          "matcher": "status",
+          "expected": 500
+        }
+      ]
+    },
+    "ChannelStopped": {
+      "description": "Wait until a channel has is stopped",
+      "operation": "DescribeChannel",
+      "delay": 5,
+      "maxAttempts": 60,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "path",
+          "argument": "State",
+          "expected": "IDLE"
+        },
+        {
+          "state": "retry",
+          "matcher": "path",
+          "argument": "State",
+          "expected": "STOPPING"
+        },
+        {
+          "state": "retry",
+          "matcher": "status",
+          "expected": 500
+        }
+      ]
+    },
+    "ChannelDeleted": {
+      "description": "Wait until a channel has been deleted",
+      "operation": "DescribeChannel",
+      "delay": 5,
+      "maxAttempts": 84,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "path",
+          "argument": "State",
+          "expected": "DELETED"
+        },
+        {
+          "state": "retry",
+          "matcher": "path",
+          "argument": "State",
+          "expected": "DELETING"
+        },
+        {
+          "state": "retry",
+          "matcher": "status",
+          "expected": 500
+        }
+      ]
+    },
+    "InputAttached": {
+      "description": "Wait until an input has been attached",
+      "operation": "DescribeInput",
+      "delay": 5,
+      "maxAttempts": 20,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "path",
+          "argument": "State",
+          "expected": "ATTACHED"
+        },
+        {
+          "state": "retry",
+          "matcher": "path",
+          "argument": "State",
+          "expected": "DETACHED"
+        },
+        {
+          "state": "retry",
+          "matcher": "status",
+          "expected": 500
+        }
+      ]
+    },
+    "InputDetached": {
+      "description": "Wait until an input has been detached",
+      "operation": "DescribeInput",
+      "delay": 5,
+      "maxAttempts": 84,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "path",
+          "argument": "State",
+          "expected": "DETACHED"
+        },
+        {
+          "state": "retry",
+          "matcher": "path",
+          "argument": "State",
+          "expected": "CREATING"
+        },
+        {
+          "state": "retry",
+          "matcher": "path",
+          "argument": "State",
+          "expected": "ATTACHED"
+        },
+        {
+          "state": "retry",
+          "matcher": "status",
+          "expected": 500
+        }
+      ]
+    },
+    "InputDeleted": {
+      "description": "Wait until an input has been deleted",
+      "operation": "DescribeInput",
+      "delay": 5,
+      "maxAttempts": 20,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "path",
+          "argument": "State",
+          "expected": "DELETED"
+        },
+        {
+          "state": "retry",
+          "matcher": "path",
+          "argument": "State",
+          "expected": "DELETING"
+        },
+        {
+          "state": "retry",
+          "matcher": "status",
+          "expected": 500
+        }
+      ]
+    },
+    "MultiplexCreated": {
+      "description": "Wait until a multiplex has been created",
+      "operation": "DescribeMultiplex",
+      "delay": 3,
+      "maxAttempts": 5,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "path",
+          "argument": "State",
+          "expected": "IDLE"
+        },
+        {
+          "state": "retry",
+          "matcher": "path",
+          "argument": "State",
+          "expected": "CREATING"
+        },
+        {
+          "state": "retry",
+          "matcher": "status",
+          "expected": 500
+        },
+        {
+          "state": "failure",
+          "matcher": "path",
+          "argument": "State",
+          "expected": "CREATE_FAILED"
+        }
+      ]
+    },
+    "MultiplexRunning": {
+      "description": "Wait until a multiplex is running",
+      "operation": "DescribeMultiplex",
+      "delay": 5,
+      "maxAttempts": 120,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "path",
+          "argument": "State",
+          "expected": "RUNNING"
+        },
+        {
+          "state": "retry",
+          "matcher": "path",
+          "argument": "State",
+          "expected": "STARTING"
+        },
+        {
+          "state": "retry",
+          "matcher": "status",
+          "expected": 500
+        }
+      ]
+    },
+    "MultiplexStopped": {
+      "description": "Wait until a multiplex has is stopped",
+      "operation": "DescribeMultiplex",
+      "delay": 5,
+      "maxAttempts": 28,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "path",
+          "argument": "State",
+          "expected": "IDLE"
+        },
+        {
+          "state": "retry",
+          "matcher": "path",
+          "argument": "State",
+          "expected": "STOPPING"
+        },
+        {
+          "state": "retry",
+          "matcher": "status",
+          "expected": 500
+        }
+      ]
+    },
+    "MultiplexDeleted": {
+      "description": "Wait until a multiplex has been deleted",
+      "operation": "DescribeMultiplex",
+      "delay": 5,
+      "maxAttempts": 20,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "path",
+          "argument": "State",
+          "expected": "DELETED"
+        },
+        {
+          "state": "retry",
+          "matcher": "path",
+          "argument": "State",
+          "expected": "DELETING"
+        },
+        {
+          "state": "retry",
+          "matcher": "status",
+          "expected": 500
+        }
+      ]
+    },
+    "SignalMapCreated": {
+      "description": "Wait until a signal map has been created",
+      "delay": 5,
+      "maxAttempts": 60,
+      "operation": "GetSignalMap",
+      "acceptors": [
+        {
+          "matcher": "path",
+          "argument": "Status",
+          "state": "success",
+          "expected": "CREATE_COMPLETE"
+        },
+        {
+          "matcher": "path",
+          "argument": "Status",
+          "state": "retry",
+          "expected": "CREATE_IN_PROGRESS"
+        },
+        {
+          "matcher": "path",
+          "argument": "Status",
+          "state": "failure",
+          "expected": "CREATE_FAILED"
+        }
+      ]
+    },
+    "SignalMapMonitorDeleted": {
+      "description": "Wait until a signal map's monitor has been deleted",
+      "delay": 5,
+      "maxAttempts": 120,
+      "operation": "GetSignalMap",
+      "acceptors": [
+        {
+          "matcher": "path",
+          "argument": "MonitorDeployment.Status",
+          "state": "success",
+          "expected": "DELETE_COMPLETE"
+        },
+        {
+          "matcher": "path",
+          "argument": "MonitorDeployment.Status",
+          "state": "retry",
+          "expected": "DELETE_IN_PROGRESS"
+        },
+        {
+          "matcher": "path",
+          "argument": "MonitorDeployment.Status",
+          "state": "failure",
+          "expected": "DELETE_FAILED"
+        }
+      ]
+    },
+    "SignalMapMonitorDeployed": {
+      "description": "Wait until a signal map's monitor has been deployed",
+      "delay": 5,
+      "maxAttempts": 120,
+      "operation": "GetSignalMap",
+      "acceptors": [
+        {
+          "matcher": "path",
+          "argument": "MonitorDeployment.Status",
+          "state": "success",
+          "expected": "DRY_RUN_DEPLOYMENT_COMPLETE"
+        },
+        {
+          "matcher": "path",
+          "argument": "MonitorDeployment.Status",
+          "state": "success",
+          "expected": "DEPLOYMENT_COMPLETE"
+        },
+        {
+          "matcher": "path",
+          "argument": "MonitorDeployment.Status",
+          "state": "retry",
+          "expected": "DRY_RUN_DEPLOYMENT_IN_PROGRESS"
+        },
+        {
+          "matcher": "path",
+          "argument": "MonitorDeployment.Status",
+          "state": "retry",
+          "expected": "DEPLOYMENT_IN_PROGRESS"
+        },
+        {
+          "matcher": "path",
+          "argument": "MonitorDeployment.Status",
+          "state": "failure",
+          "expected": "DRY_RUN_DEPLOYMENT_FAILED"
+        },
+        {
+          "matcher": "path",
+          "argument": "MonitorDeployment.Status",
+          "state": "failure",
+          "expected": "DEPLOYMENT_FAILED"
+        }
+      ]
+    },
+    "SignalMapUpdated": {
+      "description": "Wait until a signal map has been updated",
+      "delay": 5,
+      "maxAttempts": 60,
+      "operation": "GetSignalMap",
+      "acceptors": [
+        {
+          "matcher": "path",
+          "argument": "Status",
+          "state": "success",
+          "expected": "UPDATE_COMPLETE"
+        },
+        {
+          "matcher": "path",
+          "argument": "Status",
+          "state": "retry",
+          "expected": "UPDATE_IN_PROGRESS"
+        },
+        {
+          "matcher": "path",
+          "argument": "Status",
+          "state": "failure",
+          "expected": "UPDATE_FAILED"
+        },
+        {
+          "matcher": "path",
+          "argument": "Status",
+          "state": "failure",
+          "expected": "UPDATE_REVERTED"
+        }
+      ]
+    },
+    "ClusterCreated": {
+      "description": "Wait until a cluster has been created",
+      "operation": "DescribeCluster",
+      "delay": 3,
+      "maxAttempts": 5,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "path",
+          "argument": "State",
+          "expected": "ACTIVE"
+        },
+        {
+          "state": "retry",
+          "matcher": "path",
+          "argument": "State",
+          "expected": "CREATING"
+        },
+        {
+          "state": "retry",
+          "matcher": "status",
+          "expected": 500
+        },
+        {
+          "state": "failure",
+          "matcher": "path",
+          "argument": "State",
+          "expected": "CREATE_FAILED"
+        }
+      ]
+    },
+    "ClusterDeleted": {
+      "description": "Wait until a cluster has been deleted",
+      "operation": "DescribeCluster",
+      "delay": 5,
+      "maxAttempts": 20,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "path",
+          "argument": "State",
+          "expected": "DELETED"
+        },
+        {
+          "state": "retry",
+          "matcher": "path",
+          "argument": "State",
+          "expected": "DELETING"
+        },
+        {
+          "state": "retry",
+          "matcher": "status",
+          "expected": 500
+        }
+      ]
+    },
+    "NodeRegistered": {
+      "description": "Wait until a node has been registered",
+      "operation": "DescribeNode",
+      "delay": 3,
+      "maxAttempts": 5,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "path",
+          "argument": "State",
+          "expected": "ACTIVE"
+        },
+        {
+          "state": "retry",
+          "matcher": "path",
+          "argument": "State",
+          "expected": "REGISTERING"
+        },
+        {
+          "state": "retry",
+          "matcher": "status",
+          "expected": 404
+        },
+        {
+          "state": "failure",
+          "matcher": "path",
+          "argument": "State",
+          "expected": "REGISTRATION_FAILED"
+        },
+        {
+          "state": "retry",
+          "matcher": "status",
+          "expected": 500
+        }
+      ]
+    },
+    "NodeDeregistered": {
+      "description": "Wait until a node has been deregistered",
+      "operation": "DescribeNode",
+      "delay": 5,
+      "maxAttempts": 20,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "path",
+          "argument": "State",
+          "expected": "DEREGISTERED"
+        },
+        {
+          "state": "retry",
+          "matcher": "path",
+          "argument": "State",
+          "expected": "DEREGISTERING"
+        },
+        {
+          "state": "retry",
+          "matcher": "path",
+          "argument": "State",
+          "expected": "DRAINING"
+        },
+        {
+          "state": "retry",
+          "matcher": "status",
+          "expected": 500
+        }
+      ]
+    },
+    "ChannelPlacementGroupAssigned": {
+      "description": "Wait until the channel placement group has been assigned",
+      "operation": "DescribeChannelPlacementGroup",
+      "delay": 3,
+      "maxAttempts": 5,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "path",
+          "argument": "State",
+          "expected": "ASSIGNED"
+        },
+        {
+          "state": "retry",
+          "matcher": "path",
+          "argument": "State",
+          "expected": "ASSIGNING"
+        },
+        {
+          "state": "retry",
+          "matcher": "status",
+          "expected": 500
+        }
+      ]
+    },
+    "ChannelPlacementGroupUnassigned": {
+      "description": "Wait until the channel placement group has been unassigned",
+      "operation": "DescribeChannelPlacementGroup",
+      "delay": 5,
+      "maxAttempts": 20,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "path",
+          "argument": "State",
+          "expected": "UNASSIGNED"
+        },
+        {
+          "state": "retry",
+          "matcher": "path",
+          "argument": "State",
+          "expected": "UNASSIGNING"
+        },
+        {
+          "state": "retry",
+          "matcher": "status",
+          "expected": 500
+        }
+      ]
+    },
+    "ChannelPlacementGroupDeleted": {
+      "description": "Wait until the channel placement group has been deleted",
+      "operation": "DescribeChannelPlacementGroup",
+      "delay": 5,
+      "maxAttempts": 20,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "path",
+          "argument": "State",
+          "expected": "DELETED"
+        },
+        {
+          "state": "retry",
+          "matcher": "path",
+          "argument": "State",
+          "expected": "DELETING"
+        },
+        {
+          "state": "retry",
+          "matcher": "status",
+          "expected": 500
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/mediapackage-vod/2018-11-07/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/mediapackage-vod/2018-11-07/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..7ebb0231
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mediapackage-vod/2018-11-07/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/mediapackage-vod/2018-11-07/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/mediapackage-vod/2018-11-07/paginators-1.json
new file mode 100644
index 00000000..df498b9f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mediapackage-vod/2018-11-07/paginators-1.json
@@ -0,0 +1,22 @@
+{
+  "pagination": {
+    "ListAssets": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Assets"
+    },
+    "ListPackagingConfigurations": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "PackagingConfigurations"
+    },
+    "ListPackagingGroups": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "PackagingGroups"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/mediapackage-vod/2018-11-07/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/mediapackage-vod/2018-11-07/service-2.json.gz
new file mode 100644
index 00000000..c020634e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mediapackage-vod/2018-11-07/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/mediapackage/2017-10-12/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/mediapackage/2017-10-12/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..240d5e70
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mediapackage/2017-10-12/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/mediapackage/2017-10-12/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/mediapackage/2017-10-12/paginators-1.json
new file mode 100644
index 00000000..24e44104
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mediapackage/2017-10-12/paginators-1.json
@@ -0,0 +1,22 @@
+{
+  "pagination": {
+    "ListChannels": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Channels"
+    },
+    "ListOriginEndpoints": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "OriginEndpoints"
+    },
+    "ListHarvestJobs": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "HarvestJobs"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/mediapackage/2017-10-12/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/mediapackage/2017-10-12/service-2.json.gz
new file mode 100644
index 00000000..7edbc9ab
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mediapackage/2017-10-12/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/mediapackagev2/2022-12-25/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/mediapackagev2/2022-12-25/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..986e05ac
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mediapackagev2/2022-12-25/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/mediapackagev2/2022-12-25/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/mediapackagev2/2022-12-25/paginators-1.json
new file mode 100644
index 00000000..531aa7c2
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mediapackagev2/2022-12-25/paginators-1.json
@@ -0,0 +1,28 @@
+{
+  "pagination": {
+    "ListChannelGroups": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Items"
+    },
+    "ListChannels": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Items"
+    },
+    "ListOriginEndpoints": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Items"
+    },
+    "ListHarvestJobs": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Items"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/mediapackagev2/2022-12-25/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/mediapackagev2/2022-12-25/service-2.json.gz
new file mode 100644
index 00000000..8a22e331
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mediapackagev2/2022-12-25/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/mediapackagev2/2022-12-25/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/mediapackagev2/2022-12-25/waiters-2.json
new file mode 100644
index 00000000..138579fc
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mediapackagev2/2022-12-25/waiters-2.json
@@ -0,0 +1,36 @@
+{
+  "version" : 2,
+  "waiters" : {
+    "HarvestJobFinished" : {
+      "delay" : 2,
+      "maxAttempts" : 60,
+      "operation" : "GetHarvestJob",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "Status",
+        "state" : "success",
+        "expected" : "COMPLETED"
+      }, {
+        "matcher" : "path",
+        "argument" : "Status",
+        "state" : "success",
+        "expected" : "CANCELLED"
+      }, {
+        "matcher" : "path",
+        "argument" : "Status",
+        "state" : "failure",
+        "expected" : "FAILED"
+      }, {
+        "matcher" : "path",
+        "argument" : "Status",
+        "state" : "retry",
+        "expected" : "QUEUED"
+      }, {
+        "matcher" : "path",
+        "argument" : "Status",
+        "state" : "retry",
+        "expected" : "IN_PROGRESS"
+      } ]
+    }
+  }
+}
\ No newline at end of file
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/mediastore-data/2017-09-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/mediastore-data/2017-09-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..b47545ca
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mediastore-data/2017-09-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/mediastore-data/2017-09-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/mediastore-data/2017-09-01/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mediastore-data/2017-09-01/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/mediastore-data/2017-09-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/mediastore-data/2017-09-01/paginators-1.json
new file mode 100644
index 00000000..7b1c0f7e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mediastore-data/2017-09-01/paginators-1.json
@@ -0,0 +1,10 @@
+{
+  "pagination": {
+    "ListItems": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Items"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/mediastore-data/2017-09-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/mediastore-data/2017-09-01/service-2.json.gz
new file mode 100644
index 00000000..793067e3
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mediastore-data/2017-09-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/mediastore/2017-09-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/mediastore/2017-09-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..720e4fb1
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mediastore/2017-09-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/mediastore/2017-09-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/mediastore/2017-09-01/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mediastore/2017-09-01/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/mediastore/2017-09-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/mediastore/2017-09-01/paginators-1.json
new file mode 100644
index 00000000..ed3ece02
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mediastore/2017-09-01/paginators-1.json
@@ -0,0 +1,10 @@
+{
+  "pagination": {
+    "ListContainers": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Containers"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/mediastore/2017-09-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/mediastore/2017-09-01/service-2.json.gz
new file mode 100644
index 00000000..ad1bfcf6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mediastore/2017-09-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/mediatailor/2018-04-23/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/mediatailor/2018-04-23/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..9ddf7208
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mediatailor/2018-04-23/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/mediatailor/2018-04-23/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/mediatailor/2018-04-23/paginators-1.json
new file mode 100644
index 00000000..fe39ff81
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mediatailor/2018-04-23/paginators-1.json
@@ -0,0 +1,52 @@
+{
+  "pagination": {
+    "ListPlaybackConfigurations": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Items"
+    },
+    "GetChannelSchedule": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Items"
+    },
+    "ListChannels": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Items"
+    },
+    "ListSourceLocations": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Items"
+    },
+    "ListVodSources": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Items"
+    },
+    "ListAlerts": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Items"
+    },
+    "ListPrefetchSchedules": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Items"
+    },
+    "ListLiveSources": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Items"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/mediatailor/2018-04-23/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/mediatailor/2018-04-23/service-2.json.gz
new file mode 100644
index 00000000..cb60eff6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mediatailor/2018-04-23/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/medical-imaging/2023-07-19/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/medical-imaging/2023-07-19/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..f6ebffb2
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/medical-imaging/2023-07-19/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/medical-imaging/2023-07-19/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/medical-imaging/2023-07-19/paginators-1.json
new file mode 100644
index 00000000..807d0527
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/medical-imaging/2023-07-19/paginators-1.json
@@ -0,0 +1,28 @@
+{
+  "pagination": {
+    "ListDICOMImportJobs": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "jobSummaries"
+    },
+    "ListDatastores": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "datastoreSummaries"
+    },
+    "ListImageSetVersions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "imageSetPropertiesList"
+    },
+    "SearchImageSets": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "imageSetsMetadataSummaries"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/medical-imaging/2023-07-19/paginators-1.sdk-extras.json b/.venv/lib/python3.12/site-packages/botocore/data/medical-imaging/2023-07-19/paginators-1.sdk-extras.json
new file mode 100644
index 00000000..383da17d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/medical-imaging/2023-07-19/paginators-1.sdk-extras.json
@@ -0,0 +1,12 @@
+{
+  "version": 1.0,
+  "merge": {
+    "pagination": {
+      "SearchImageSets": {
+        "non_aggregate_keys": [
+          "sort"
+        ]
+      }
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/medical-imaging/2023-07-19/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/medical-imaging/2023-07-19/service-2.json.gz
new file mode 100644
index 00000000..a85092aa
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/medical-imaging/2023-07-19/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/medical-imaging/2023-07-19/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/medical-imaging/2023-07-19/waiters-2.json
new file mode 100644
index 00000000..13f60ee6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/medical-imaging/2023-07-19/waiters-2.json
@@ -0,0 +1,5 @@
+{
+  "version": 2,
+  "waiters": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/memorydb/2021-01-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/memorydb/2021-01-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..0c9a3dda
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/memorydb/2021-01-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/memorydb/2021-01-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/memorydb/2021-01-01/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/memorydb/2021-01-01/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/memorydb/2021-01-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/memorydb/2021-01-01/paginators-1.json
new file mode 100644
index 00000000..abafc002
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/memorydb/2021-01-01/paginators-1.json
@@ -0,0 +1,82 @@
+{
+  "pagination": {
+    "DescribeACLs": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ACLs"
+    },
+    "DescribeClusters": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Clusters"
+    },
+    "DescribeEngineVersions": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "EngineVersions"
+    },
+    "DescribeEvents": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Events"
+    },
+    "DescribeParameterGroups": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ParameterGroups"
+    },
+    "DescribeParameters": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Parameters"
+    },
+    "DescribeReservedNodes": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ReservedNodes"
+    },
+    "DescribeReservedNodesOfferings": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ReservedNodesOfferings"
+    },
+    "DescribeServiceUpdates": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ServiceUpdates"
+    },
+    "DescribeSnapshots": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Snapshots"
+    },
+    "DescribeSubnetGroups": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "SubnetGroups"
+    },
+    "DescribeUsers": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Users"
+    },
+    "DescribeMultiRegionClusters": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "MultiRegionClusters"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/memorydb/2021-01-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/memorydb/2021-01-01/service-2.json.gz
new file mode 100644
index 00000000..40b49190
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/memorydb/2021-01-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/meteringmarketplace/2016-01-14/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/meteringmarketplace/2016-01-14/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..4a0f09d7
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/meteringmarketplace/2016-01-14/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/meteringmarketplace/2016-01-14/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/meteringmarketplace/2016-01-14/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/meteringmarketplace/2016-01-14/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/meteringmarketplace/2016-01-14/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/meteringmarketplace/2016-01-14/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/meteringmarketplace/2016-01-14/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/meteringmarketplace/2016-01-14/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/meteringmarketplace/2016-01-14/service-2.json.gz
new file mode 100644
index 00000000..3d185ed4
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/meteringmarketplace/2016-01-14/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/mgh/2017-05-31/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/mgh/2017-05-31/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..64f7e7a6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mgh/2017-05-31/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/mgh/2017-05-31/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/mgh/2017-05-31/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mgh/2017-05-31/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/mgh/2017-05-31/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/mgh/2017-05-31/paginators-1.json
new file mode 100644
index 00000000..db029bfd
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mgh/2017-05-31/paginators-1.json
@@ -0,0 +1,46 @@
+{
+  "pagination": {
+    "ListCreatedArtifacts": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "CreatedArtifactList"
+    },
+    "ListDiscoveredResources": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "DiscoveredResourceList"
+    },
+    "ListMigrationTasks": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "MigrationTaskSummaryList"
+    },
+    "ListProgressUpdateStreams": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ProgressUpdateStreamSummaryList"
+    },
+    "ListApplicationStates": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ApplicationStateList"
+    },
+    "ListMigrationTaskUpdates": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "MigrationTaskUpdateList"
+    },
+    "ListSourceResources": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "SourceResourceList"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/mgh/2017-05-31/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/mgh/2017-05-31/service-2.json.gz
new file mode 100644
index 00000000..6cc3b6dd
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mgh/2017-05-31/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/mgn/2020-02-26/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/mgn/2020-02-26/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..1dc18292
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mgn/2020-02-26/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/mgn/2020-02-26/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/mgn/2020-02-26/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mgn/2020-02-26/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/mgn/2020-02-26/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/mgn/2020-02-26/paginators-1.json
new file mode 100644
index 00000000..6cdc06a7
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mgn/2020-02-26/paginators-1.json
@@ -0,0 +1,100 @@
+{
+  "pagination": {
+    "DescribeJobLogItems": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "DescribeJobs": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "DescribeReplicationConfigurationTemplates": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "DescribeSourceServers": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "DescribeVcenterClients": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "DescribeLaunchConfigurationTemplates": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListApplications": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListSourceServerActions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListTemplateActions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListWaves": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListExportErrors": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListExports": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListImportErrors": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListImports": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListManagedAccounts": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListConnectors": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/mgn/2020-02-26/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/mgn/2020-02-26/service-2.json.gz
new file mode 100644
index 00000000..850ab368
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mgn/2020-02-26/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/migration-hub-refactor-spaces/2021-10-26/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/migration-hub-refactor-spaces/2021-10-26/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..f621fbb3
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/migration-hub-refactor-spaces/2021-10-26/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/migration-hub-refactor-spaces/2021-10-26/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/migration-hub-refactor-spaces/2021-10-26/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/migration-hub-refactor-spaces/2021-10-26/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/migration-hub-refactor-spaces/2021-10-26/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/migration-hub-refactor-spaces/2021-10-26/paginators-1.json
new file mode 100644
index 00000000..79ae0ffa
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/migration-hub-refactor-spaces/2021-10-26/paginators-1.json
@@ -0,0 +1,34 @@
+{
+  "pagination": {
+    "ListApplications": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ApplicationSummaryList"
+    },
+    "ListEnvironmentVpcs": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "EnvironmentVpcList"
+    },
+    "ListEnvironments": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "EnvironmentSummaryList"
+    },
+    "ListRoutes": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "RouteSummaryList"
+    },
+    "ListServices": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ServiceSummaryList"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/migration-hub-refactor-spaces/2021-10-26/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/migration-hub-refactor-spaces/2021-10-26/service-2.json.gz
new file mode 100644
index 00000000..d56d34ae
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/migration-hub-refactor-spaces/2021-10-26/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/migrationhub-config/2019-06-30/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/migrationhub-config/2019-06-30/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..370bce79
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/migrationhub-config/2019-06-30/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/migrationhub-config/2019-06-30/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/migrationhub-config/2019-06-30/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/migrationhub-config/2019-06-30/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/migrationhub-config/2019-06-30/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/migrationhub-config/2019-06-30/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/migrationhub-config/2019-06-30/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/migrationhub-config/2019-06-30/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/migrationhub-config/2019-06-30/service-2.json.gz
new file mode 100644
index 00000000..c243315c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/migrationhub-config/2019-06-30/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/migrationhuborchestrator/2021-08-28/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/migrationhuborchestrator/2021-08-28/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..07db5831
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/migrationhuborchestrator/2021-08-28/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/migrationhuborchestrator/2021-08-28/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/migrationhuborchestrator/2021-08-28/paginators-1.json
new file mode 100644
index 00000000..4c452221
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/migrationhuborchestrator/2021-08-28/paginators-1.json
@@ -0,0 +1,46 @@
+{
+  "pagination": {
+    "ListPlugins": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "plugins"
+    },
+    "ListTemplateStepGroups": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "templateStepGroupSummary"
+    },
+    "ListTemplateSteps": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "templateStepSummaryList"
+    },
+    "ListTemplates": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "templateSummary"
+    },
+    "ListWorkflowStepGroups": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "workflowStepGroupsSummary"
+    },
+    "ListWorkflowSteps": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "workflowStepsSummary"
+    },
+    "ListWorkflows": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "migrationWorkflowSummary"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/migrationhuborchestrator/2021-08-28/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/migrationhuborchestrator/2021-08-28/service-2.json.gz
new file mode 100644
index 00000000..fd76f494
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/migrationhuborchestrator/2021-08-28/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/migrationhuborchestrator/2021-08-28/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/migrationhuborchestrator/2021-08-28/waiters-2.json
new file mode 100644
index 00000000..13f60ee6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/migrationhuborchestrator/2021-08-28/waiters-2.json
@@ -0,0 +1,5 @@
+{
+  "version": 2,
+  "waiters": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/migrationhubstrategy/2020-02-19/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/migrationhubstrategy/2020-02-19/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..8ae0e669
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/migrationhubstrategy/2020-02-19/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/migrationhubstrategy/2020-02-19/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/migrationhubstrategy/2020-02-19/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/migrationhubstrategy/2020-02-19/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/migrationhubstrategy/2020-02-19/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/migrationhubstrategy/2020-02-19/paginators-1.json
new file mode 100644
index 00000000..889a45ef
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/migrationhubstrategy/2020-02-19/paginators-1.json
@@ -0,0 +1,40 @@
+{
+  "pagination": {
+    "GetServerDetails": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "associatedApplications"
+    },
+    "ListApplicationComponents": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "applicationComponentInfos"
+    },
+    "ListCollectors": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "Collectors"
+    },
+    "ListImportFileTask": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "taskInfos"
+    },
+    "ListServers": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "serverInfos"
+    },
+    "ListAnalyzableServers": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "analyzableServers"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/migrationhubstrategy/2020-02-19/paginators-1.sdk-extras.json b/.venv/lib/python3.12/site-packages/botocore/data/migrationhubstrategy/2020-02-19/paginators-1.sdk-extras.json
new file mode 100644
index 00000000..2524463a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/migrationhubstrategy/2020-02-19/paginators-1.sdk-extras.json
@@ -0,0 +1,12 @@
+{
+    "version": 1.0,
+    "merge": {
+        "pagination": {
+            "GetServerDetails": {
+                "non_aggregate_keys": [
+                    "serverDetail"
+                ]
+            }
+        }
+    }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/migrationhubstrategy/2020-02-19/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/migrationhubstrategy/2020-02-19/service-2.json.gz
new file mode 100644
index 00000000..035b0f10
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/migrationhubstrategy/2020-02-19/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/mq/2017-11-27/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/mq/2017-11-27/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..27ee5c9c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mq/2017-11-27/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/mq/2017-11-27/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/mq/2017-11-27/paginators-1.json
new file mode 100644
index 00000000..55160732
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mq/2017-11-27/paginators-1.json
@@ -0,0 +1,10 @@
+{
+  "pagination": {
+    "ListBrokers": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "BrokerSummaries"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/mq/2017-11-27/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/mq/2017-11-27/service-2.json.gz
new file mode 100644
index 00000000..61928b73
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mq/2017-11-27/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/mturk/2017-01-17/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/mturk/2017-01-17/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..b3f7106e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mturk/2017-01-17/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/mturk/2017-01-17/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/mturk/2017-01-17/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mturk/2017-01-17/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/mturk/2017-01-17/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/mturk/2017-01-17/paginators-1.json
new file mode 100644
index 00000000..ea50cacc
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mturk/2017-01-17/paginators-1.json
@@ -0,0 +1,58 @@
+{
+  "pagination": {
+    "ListAssignmentsForHIT": {
+      "result_key": "Assignments",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListQualificationTypes": {
+      "result_key": "QualificationTypes",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListHITs": {
+      "result_key": "HITs",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListWorkerBlocks": {
+      "result_key": "WorkerBlocks",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListReviewableHITs": {
+      "result_key": "HITs",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListHITsForQualificationType": {
+      "result_key": "HITs",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListQualificationRequests": {
+      "result_key": "QualificationRequests",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListWorkersWithQualificationType": {
+      "result_key": "Qualifications",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListBonusPayments": {
+      "result_key": "BonusPayments",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/mturk/2017-01-17/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/mturk/2017-01-17/service-2.json.gz
new file mode 100644
index 00000000..1c10adb8
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mturk/2017-01-17/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/mwaa/2020-07-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/mwaa/2020-07-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..f5ec8d4f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mwaa/2020-07-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/mwaa/2020-07-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/mwaa/2020-07-01/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mwaa/2020-07-01/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/mwaa/2020-07-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/mwaa/2020-07-01/paginators-1.json
new file mode 100644
index 00000000..5e218e46
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mwaa/2020-07-01/paginators-1.json
@@ -0,0 +1,10 @@
+{
+  "pagination": {
+    "ListEnvironments": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Environments"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/mwaa/2020-07-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/mwaa/2020-07-01/service-2.json.gz
new file mode 100644
index 00000000..c69cc68e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/mwaa/2020-07-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/neptune-graph/2023-11-29/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/neptune-graph/2023-11-29/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..b46b6dd3
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/neptune-graph/2023-11-29/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/neptune-graph/2023-11-29/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/neptune-graph/2023-11-29/paginators-1.json
new file mode 100644
index 00000000..7ce2e6dd
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/neptune-graph/2023-11-29/paginators-1.json
@@ -0,0 +1,34 @@
+{
+  "pagination": {
+    "ListGraphSnapshots": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "graphSnapshots"
+    },
+    "ListGraphs": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "graphs"
+    },
+    "ListImportTasks": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "tasks"
+    },
+    "ListPrivateGraphEndpoints": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "privateGraphEndpoints"
+    },
+    "ListExportTasks": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "tasks"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/neptune-graph/2023-11-29/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/neptune-graph/2023-11-29/service-2.json.gz
new file mode 100644
index 00000000..772d38eb
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/neptune-graph/2023-11-29/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/neptune-graph/2023-11-29/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/neptune-graph/2023-11-29/waiters-2.json
new file mode 100644
index 00000000..586b44b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/neptune-graph/2023-11-29/waiters-2.json
@@ -0,0 +1,212 @@
+{
+  "version" : 2,
+  "waiters" : {
+    "ExportTaskCancelled" : {
+      "description" : "Wait until Export Task is Cancelled",
+      "delay" : 60,
+      "maxAttempts" : 60,
+      "operation" : "GetExportTask",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "status != 'CANCELLING' && status != 'CANCELLED'",
+        "state" : "failure",
+        "expected" : true
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "success",
+        "expected" : "CANCELLED"
+      } ]
+    },
+    "ExportTaskSuccessful" : {
+      "description" : "Wait until Export Task is Successful",
+      "delay" : 60,
+      "maxAttempts" : 480,
+      "operation" : "GetExportTask",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "failure",
+        "expected" : "CANCELLING"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "failure",
+        "expected" : "CANCELLED"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "failure",
+        "expected" : "FAILED"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "success",
+        "expected" : "SUCCEEDED"
+      } ]
+    },
+    "GraphAvailable" : {
+      "description" : "Wait until Graph is Available",
+      "delay" : 60,
+      "maxAttempts" : 480,
+      "operation" : "GetGraph",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "failure",
+        "expected" : "DELETING"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "failure",
+        "expected" : "FAILED"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "success",
+        "expected" : "AVAILABLE"
+      } ]
+    },
+    "GraphDeleted" : {
+      "description" : "Wait until Graph is Deleted",
+      "delay" : 60,
+      "maxAttempts" : 60,
+      "operation" : "GetGraph",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "status != 'DELETING'",
+        "state" : "failure",
+        "expected" : true
+      }, {
+        "matcher" : "error",
+        "state" : "success",
+        "expected" : "ResourceNotFoundException"
+      } ]
+    },
+    "GraphSnapshotAvailable" : {
+      "description" : "Wait until GraphSnapshot is Available",
+      "delay" : 60,
+      "maxAttempts" : 120,
+      "operation" : "GetGraphSnapshot",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "failure",
+        "expected" : "DELETING"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "failure",
+        "expected" : "FAILED"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "success",
+        "expected" : "AVAILABLE"
+      } ]
+    },
+    "GraphSnapshotDeleted" : {
+      "description" : "Wait until GraphSnapshot is Deleted",
+      "delay" : 60,
+      "maxAttempts" : 60,
+      "operation" : "GetGraphSnapshot",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "status != 'DELETING'",
+        "state" : "failure",
+        "expected" : true
+      }, {
+        "matcher" : "error",
+        "state" : "success",
+        "expected" : "ResourceNotFoundException"
+      } ]
+    },
+    "ImportTaskCancelled" : {
+      "description" : "Wait until Import Task is Cancelled",
+      "delay" : 60,
+      "maxAttempts" : 60,
+      "operation" : "GetImportTask",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "status != 'CANCELLING' && status != 'CANCELLED'",
+        "state" : "failure",
+        "expected" : true
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "success",
+        "expected" : "CANCELLED"
+      } ]
+    },
+    "ImportTaskSuccessful" : {
+      "description" : "Wait until Import Task is Successful",
+      "delay" : 60,
+      "maxAttempts" : 480,
+      "operation" : "GetImportTask",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "failure",
+        "expected" : "CANCELLING"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "failure",
+        "expected" : "CANCELLED"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "failure",
+        "expected" : "ROLLING_BACK"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "failure",
+        "expected" : "FAILED"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "success",
+        "expected" : "SUCCEEDED"
+      } ]
+    },
+    "PrivateGraphEndpointAvailable" : {
+      "description" : "Wait until PrivateGraphEndpoint is Available",
+      "delay" : 10,
+      "maxAttempts" : 180,
+      "operation" : "GetPrivateGraphEndpoint",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "failure",
+        "expected" : "DELETING"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "failure",
+        "expected" : "FAILED"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "success",
+        "expected" : "AVAILABLE"
+      } ]
+    },
+    "PrivateGraphEndpointDeleted" : {
+      "description" : "Wait until PrivateGraphEndpoint is Deleted",
+      "delay" : 10,
+      "maxAttempts" : 180,
+      "operation" : "GetPrivateGraphEndpoint",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "status != 'DELETING'",
+        "state" : "failure",
+        "expected" : true
+      }, {
+        "matcher" : "error",
+        "state" : "success",
+        "expected" : "ResourceNotFoundException"
+      } ]
+    }
+  }
+}
\ No newline at end of file
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/neptune/2014-10-31/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/neptune/2014-10-31/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..5bff65a6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/neptune/2014-10-31/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/neptune/2014-10-31/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/neptune/2014-10-31/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/neptune/2014-10-31/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/neptune/2014-10-31/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/neptune/2014-10-31/paginators-1.json
new file mode 100644
index 00000000..1de13039
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/neptune/2014-10-31/paginators-1.json
@@ -0,0 +1,100 @@
+{
+  "pagination": {
+    "DescribeDBEngineVersions": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "DBEngineVersions"
+    },
+    "DescribeDBInstances": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "DBInstances"
+    },
+    "DescribeDBParameterGroups": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "DBParameterGroups"
+    },
+    "DescribeDBParameters": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "Parameters"
+    },
+    "DescribeDBSubnetGroups": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "DBSubnetGroups"
+    },
+    "DescribeEngineDefaultParameters": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "EngineDefaults.Marker",
+      "result_key": "EngineDefaults.Parameters"
+    },
+    "DescribeEventSubscriptions": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "EventSubscriptionsList"
+    },
+    "DescribeEvents": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "Events"
+    },
+    "DescribeOrderableDBInstanceOptions": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "OrderableDBInstanceOptions"
+    },
+    "DescribeDBClusterParameterGroups": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "DBClusterParameterGroups"
+    },
+    "DescribeDBClusterParameters": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "Parameters"
+    },
+    "DescribeDBClusterSnapshots": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "DBClusterSnapshots"
+    },
+    "DescribeDBClusters": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "DBClusters"
+    },
+    "DescribePendingMaintenanceActions": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "PendingMaintenanceActions"
+    },
+    "DescribeDBClusterEndpoints": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "DBClusterEndpoints"
+    },
+    "DescribeGlobalClusters": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "GlobalClusters"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/neptune/2014-10-31/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/neptune/2014-10-31/service-2.json.gz
new file mode 100644
index 00000000..d7b031c8
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/neptune/2014-10-31/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/neptune/2014-10-31/service-2.sdk-extras.json b/.venv/lib/python3.12/site-packages/botocore/data/neptune/2014-10-31/service-2.sdk-extras.json
new file mode 100644
index 00000000..85e8a104
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/neptune/2014-10-31/service-2.sdk-extras.json
@@ -0,0 +1,23 @@
+ {
+  "version": 1.0,
+  "merge": {
+    "shapes": {
+      "CopyDBClusterSnapshotMessage": {
+        "members": {
+          "SourceRegion": {
+            "shape": "String",
+            "documentation": "<p>The ID of the region that contains the snapshot to be copied.</p>"
+          }
+        }
+      },
+      "CreateDBClusterMessage": {
+        "members": {
+          "SourceRegion": {
+            "shape": "String",
+            "documentation": "<p>The ID of the region that contains the source for the db cluster.</p>"
+          }
+        }
+      }
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/neptune/2014-10-31/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/neptune/2014-10-31/waiters-2.json
new file mode 100644
index 00000000..e75f03b2
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/neptune/2014-10-31/waiters-2.json
@@ -0,0 +1,90 @@
+{
+  "version": 2,
+  "waiters": {
+    "DBInstanceAvailable": {
+      "delay": 30,
+      "operation": "DescribeDBInstances",
+      "maxAttempts": 60,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "DBInstances[].DBInstanceStatus"
+        },
+        {
+          "expected": "deleted",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBInstances[].DBInstanceStatus"
+        },
+        {
+          "expected": "deleting",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBInstances[].DBInstanceStatus"
+        },
+        {
+          "expected": "failed",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBInstances[].DBInstanceStatus"
+        },
+        {
+          "expected": "incompatible-restore",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBInstances[].DBInstanceStatus"
+        },
+        {
+          "expected": "incompatible-parameters",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBInstances[].DBInstanceStatus"
+        }
+      ]
+    },
+    "DBInstanceDeleted": {
+      "delay": 30,
+      "operation": "DescribeDBInstances",
+      "maxAttempts": 60,
+      "acceptors": [
+        {
+          "expected": "deleted",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "DBInstances[].DBInstanceStatus"
+        },
+        {
+          "expected": "DBInstanceNotFound",
+          "matcher": "error",
+          "state": "success"
+        },
+        {
+          "expected": "creating",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBInstances[].DBInstanceStatus"
+        },
+        {
+          "expected": "modifying",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBInstances[].DBInstanceStatus"
+        },
+        {
+          "expected": "rebooting",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBInstances[].DBInstanceStatus"
+        },
+        {
+          "expected": "resetting-master-credentials",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBInstances[].DBInstanceStatus"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/neptunedata/2023-08-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/neptunedata/2023-08-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..b480cb8f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/neptunedata/2023-08-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/neptunedata/2023-08-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/neptunedata/2023-08-01/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/neptunedata/2023-08-01/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/neptunedata/2023-08-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/neptunedata/2023-08-01/service-2.json.gz
new file mode 100644
index 00000000..5016b43a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/neptunedata/2023-08-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/network-firewall/2020-11-12/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/network-firewall/2020-11-12/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..191da034
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/network-firewall/2020-11-12/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/network-firewall/2020-11-12/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/network-firewall/2020-11-12/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/network-firewall/2020-11-12/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/network-firewall/2020-11-12/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/network-firewall/2020-11-12/paginators-1.json
new file mode 100644
index 00000000..adc37670
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/network-firewall/2020-11-12/paginators-1.json
@@ -0,0 +1,58 @@
+{
+  "pagination": {
+    "ListFirewallPolicies": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "FirewallPolicies"
+    },
+    "ListFirewalls": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Firewalls"
+    },
+    "ListRuleGroups": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "RuleGroups"
+    },
+    "ListTagsForResource": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Tags"
+    },
+    "ListTLSInspectionConfigurations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "TLSInspectionConfigurations"
+    },
+    "GetAnalysisReportResults": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "AnalysisReportResults"
+    },
+    "ListAnalysisReports": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "AnalysisReports"
+    },
+    "ListFlowOperationResults": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Flows"
+    },
+    "ListFlowOperations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "FlowOperations"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/network-firewall/2020-11-12/paginators-1.sdk-extras.json b/.venv/lib/python3.12/site-packages/botocore/data/network-firewall/2020-11-12/paginators-1.sdk-extras.json
new file mode 100644
index 00000000..d5f946ac
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/network-firewall/2020-11-12/paginators-1.sdk-extras.json
@@ -0,0 +1,26 @@
+{
+  "version": 1.0,
+  "merge": {
+    "pagination": {
+      "GetAnalysisReportResults": {
+        "non_aggregate_keys": [
+          "EndTime",
+          "ReportTime",
+          "Status",
+          "AnalysisType",
+          "StartTime"
+        ]
+      },
+      "ListFlowOperationResults": {
+        "non_aggregate_keys": [
+          "FirewallArn",
+          "FlowOperationId",
+          "AvailabilityZone",
+          "FlowOperationStatus",
+          "FlowRequestTimestamp",
+          "StatusMessage"
+        ]
+      }
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/network-firewall/2020-11-12/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/network-firewall/2020-11-12/service-2.json.gz
new file mode 100644
index 00000000..8f56af69
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/network-firewall/2020-11-12/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/networkflowmonitor/2023-04-19/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/networkflowmonitor/2023-04-19/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..5f1e48bc
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/networkflowmonitor/2023-04-19/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/networkflowmonitor/2023-04-19/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/networkflowmonitor/2023-04-19/paginators-1.json
new file mode 100644
index 00000000..b41617d9
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/networkflowmonitor/2023-04-19/paginators-1.json
@@ -0,0 +1,34 @@
+{
+  "pagination": {
+    "GetQueryResultsMonitorTopContributors": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "topContributors"
+    },
+    "GetQueryResultsWorkloadInsightsTopContributors": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "topContributors"
+    },
+    "GetQueryResultsWorkloadInsightsTopContributorsData": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "datapoints"
+    },
+    "ListMonitors": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "monitors"
+    },
+    "ListScopes": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "scopes"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/networkflowmonitor/2023-04-19/paginators-1.sdk-extras.json b/.venv/lib/python3.12/site-packages/botocore/data/networkflowmonitor/2023-04-19/paginators-1.sdk-extras.json
new file mode 100644
index 00000000..8fe31880
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/networkflowmonitor/2023-04-19/paginators-1.sdk-extras.json
@@ -0,0 +1,17 @@
+{
+    "version": 1.0,
+    "merge": {
+        "pagination": {
+            "GetQueryResultsMonitorTopContributors": {
+                "non_aggregate_keys": [
+                    "unit"
+                ]
+            },
+            "GetQueryResultsWorkloadInsightsTopContributorsData": {
+                "non_aggregate_keys": [
+                    "unit"
+                ]
+            }          
+        }
+    }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/networkflowmonitor/2023-04-19/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/networkflowmonitor/2023-04-19/service-2.json.gz
new file mode 100644
index 00000000..61b21375
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/networkflowmonitor/2023-04-19/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/networkflowmonitor/2023-04-19/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/networkflowmonitor/2023-04-19/waiters-2.json
new file mode 100644
index 00000000..13f60ee6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/networkflowmonitor/2023-04-19/waiters-2.json
@@ -0,0 +1,5 @@
+{
+  "version": 2,
+  "waiters": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/networkmanager/2019-07-05/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/networkmanager/2019-07-05/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..91618d74
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/networkmanager/2019-07-05/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/networkmanager/2019-07-05/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/networkmanager/2019-07-05/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/networkmanager/2019-07-05/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/networkmanager/2019-07-05/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/networkmanager/2019-07-05/paginators-1.json
new file mode 100644
index 00000000..7196ace6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/networkmanager/2019-07-05/paginators-1.json
@@ -0,0 +1,130 @@
+{
+  "pagination": {
+    "DescribeGlobalNetworks": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "GlobalNetworks"
+    },
+    "GetCustomerGatewayAssociations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "CustomerGatewayAssociations"
+    },
+    "GetDevices": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Devices"
+    },
+    "GetLinkAssociations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "LinkAssociations"
+    },
+    "GetLinks": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Links"
+    },
+    "GetSites": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Sites"
+    },
+    "GetTransitGatewayRegistrations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "TransitGatewayRegistrations"
+    },
+    "GetConnections": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Connections"
+    },
+    "GetTransitGatewayConnectPeerAssociations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "TransitGatewayConnectPeerAssociations"
+    },
+    "GetNetworkResourceCounts": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "NetworkResourceCounts"
+    },
+    "GetNetworkResourceRelationships": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Relationships"
+    },
+    "GetNetworkResources": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "NetworkResources"
+    },
+    "GetNetworkTelemetry": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "NetworkTelemetry"
+    },
+    "GetConnectPeerAssociations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ConnectPeerAssociations"
+    },
+    "GetCoreNetworkChangeSet": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "CoreNetworkChanges"
+    },
+    "ListAttachments": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Attachments"
+    },
+    "ListConnectPeers": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ConnectPeers"
+    },
+    "ListCoreNetworkPolicyVersions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "CoreNetworkPolicyVersions"
+    },
+    "ListCoreNetworks": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "CoreNetworks"
+    },
+    "GetCoreNetworkChangeEvents": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "CoreNetworkChangeEvents"
+    },
+    "ListPeerings": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Peerings"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/networkmanager/2019-07-05/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/networkmanager/2019-07-05/service-2.json.gz
new file mode 100644
index 00000000..4ae42bd0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/networkmanager/2019-07-05/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/networkmonitor/2023-08-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/networkmonitor/2023-08-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..ced2fa5d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/networkmonitor/2023-08-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/networkmonitor/2023-08-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/networkmonitor/2023-08-01/paginators-1.json
new file mode 100644
index 00000000..d885a0fb
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/networkmonitor/2023-08-01/paginators-1.json
@@ -0,0 +1,10 @@
+{
+  "pagination": {
+    "ListMonitors": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "monitors"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/networkmonitor/2023-08-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/networkmonitor/2023-08-01/service-2.json.gz
new file mode 100644
index 00000000..9e24de7f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/networkmonitor/2023-08-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/networkmonitor/2023-08-01/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/networkmonitor/2023-08-01/waiters-2.json
new file mode 100644
index 00000000..13f60ee6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/networkmonitor/2023-08-01/waiters-2.json
@@ -0,0 +1,5 @@
+{
+  "version": 2,
+  "waiters": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/notifications/2018-05-10/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/notifications/2018-05-10/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..c054b02c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/notifications/2018-05-10/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/notifications/2018-05-10/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/notifications/2018-05-10/paginators-1.json
new file mode 100644
index 00000000..8cd30193
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/notifications/2018-05-10/paginators-1.json
@@ -0,0 +1,58 @@
+{
+  "pagination": {
+    "ListChannels": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "channels"
+    },
+    "ListEventRules": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "eventRules"
+    },
+    "ListNotificationConfigurations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "notificationConfigurations"
+    },
+    "ListNotificationEvents": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "notificationEvents"
+    },
+    "ListNotificationHubs": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "notificationHubs"
+    },
+    "ListManagedNotificationChannelAssociations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "channelAssociations"
+    },
+    "ListManagedNotificationChildEvents": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "managedNotificationChildEvents"
+    },
+    "ListManagedNotificationConfigurations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "managedNotificationConfigurations"
+    },
+    "ListManagedNotificationEvents": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "managedNotificationEvents"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/notifications/2018-05-10/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/notifications/2018-05-10/service-2.json.gz
new file mode 100644
index 00000000..35387f8a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/notifications/2018-05-10/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/notifications/2018-05-10/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/notifications/2018-05-10/waiters-2.json
new file mode 100644
index 00000000..13f60ee6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/notifications/2018-05-10/waiters-2.json
@@ -0,0 +1,5 @@
+{
+  "version": 2,
+  "waiters": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/notificationscontacts/2018-05-10/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/notificationscontacts/2018-05-10/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..0939665e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/notificationscontacts/2018-05-10/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/notificationscontacts/2018-05-10/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/notificationscontacts/2018-05-10/paginators-1.json
new file mode 100644
index 00000000..39f96a36
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/notificationscontacts/2018-05-10/paginators-1.json
@@ -0,0 +1,10 @@
+{
+  "pagination": {
+    "ListEmailContacts": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "emailContacts"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/notificationscontacts/2018-05-10/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/notificationscontacts/2018-05-10/service-2.json.gz
new file mode 100644
index 00000000..dd352d24
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/notificationscontacts/2018-05-10/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/notificationscontacts/2018-05-10/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/notificationscontacts/2018-05-10/waiters-2.json
new file mode 100644
index 00000000..13f60ee6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/notificationscontacts/2018-05-10/waiters-2.json
@@ -0,0 +1,5 @@
+{
+  "version": 2,
+  "waiters": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/oam/2022-06-10/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/oam/2022-06-10/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..1cde409a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/oam/2022-06-10/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/oam/2022-06-10/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/oam/2022-06-10/paginators-1.json
new file mode 100644
index 00000000..3595f009
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/oam/2022-06-10/paginators-1.json
@@ -0,0 +1,22 @@
+{
+  "pagination": {
+    "ListAttachedLinks": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Items"
+    },
+    "ListLinks": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Items"
+    },
+    "ListSinks": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Items"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/oam/2022-06-10/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/oam/2022-06-10/service-2.json.gz
new file mode 100644
index 00000000..7f1767a5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/oam/2022-06-10/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/observabilityadmin/2018-05-10/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/observabilityadmin/2018-05-10/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..330cab1a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/observabilityadmin/2018-05-10/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/observabilityadmin/2018-05-10/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/observabilityadmin/2018-05-10/paginators-1.json
new file mode 100644
index 00000000..3e06b86f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/observabilityadmin/2018-05-10/paginators-1.json
@@ -0,0 +1,16 @@
+{
+  "pagination": {
+    "ListResourceTelemetry": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "TelemetryConfigurations"
+    },
+    "ListResourceTelemetryForOrganization": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "TelemetryConfigurations"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/observabilityadmin/2018-05-10/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/observabilityadmin/2018-05-10/service-2.json.gz
new file mode 100644
index 00000000..40807818
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/observabilityadmin/2018-05-10/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/observabilityadmin/2018-05-10/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/observabilityadmin/2018-05-10/waiters-2.json
new file mode 100644
index 00000000..13f60ee6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/observabilityadmin/2018-05-10/waiters-2.json
@@ -0,0 +1,5 @@
+{
+  "version": 2,
+  "waiters": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/omics/2022-11-28/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/omics/2022-11-28/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..03b7d3da
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/omics/2022-11-28/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/omics/2022-11-28/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/omics/2022-11-28/paginators-1.json
new file mode 100644
index 00000000..b34caad3
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/omics/2022-11-28/paginators-1.json
@@ -0,0 +1,130 @@
+{
+  "pagination": {
+    "ListAnnotationImportJobs": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "annotationImportJobs"
+    },
+    "ListAnnotationStores": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "annotationStores"
+    },
+    "ListReadSetActivationJobs": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "activationJobs"
+    },
+    "ListReadSetExportJobs": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "exportJobs"
+    },
+    "ListReadSetImportJobs": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "importJobs"
+    },
+    "ListReadSets": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "readSets"
+    },
+    "ListReferenceImportJobs": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "importJobs"
+    },
+    "ListReferenceStores": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "referenceStores"
+    },
+    "ListReferences": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "references"
+    },
+    "ListRunGroups": {
+      "input_token": "startingToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListRunTasks": {
+      "input_token": "startingToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListRuns": {
+      "input_token": "startingToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListSequenceStores": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "sequenceStores"
+    },
+    "ListVariantImportJobs": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "variantImportJobs"
+    },
+    "ListVariantStores": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "variantStores"
+    },
+    "ListWorkflows": {
+      "input_token": "startingToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListMultipartReadSetUploads": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "uploads"
+    },
+    "ListReadSetUploadParts": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "parts"
+    },
+    "ListAnnotationStoreVersions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "annotationStoreVersions"
+    },
+    "ListShares": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "shares"
+    },
+    "ListRunCaches": {
+      "input_token": "startingToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/omics/2022-11-28/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/omics/2022-11-28/service-2.json.gz
new file mode 100644
index 00000000..56302aa3
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/omics/2022-11-28/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/omics/2022-11-28/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/omics/2022-11-28/waiters-2.json
new file mode 100644
index 00000000..9e82e101
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/omics/2022-11-28/waiters-2.json
@@ -0,0 +1,546 @@
+{
+  "version" : 2,
+  "waiters" : {
+    "AnnotationImportJobCreated" : {
+      "description" : "Wait until an annotation import is completed",
+      "delay" : 30,
+      "maxAttempts" : 20,
+      "operation" : "GetAnnotationImportJob",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "retry",
+        "expected" : "SUBMITTED"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "retry",
+        "expected" : "IN_PROGRESS"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "failure",
+        "expected" : "FAILED"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "success",
+        "expected" : "CANCELLED"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "success",
+        "expected" : "COMPLETED"
+      } ]
+    },
+    "AnnotationStoreCreated" : {
+      "description" : "Wait until an annotation store is created",
+      "delay" : 30,
+      "maxAttempts" : 20,
+      "operation" : "GetAnnotationStore",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "success",
+        "expected" : "ACTIVE"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "retry",
+        "expected" : "CREATING"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "retry",
+        "expected" : "UPDATING"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "failure",
+        "expected" : "FAILED"
+      } ]
+    },
+    "AnnotationStoreDeleted" : {
+      "description" : "Wait until an annotation store is deleted.",
+      "delay" : 30,
+      "maxAttempts" : 20,
+      "operation" : "GetAnnotationStore",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "success",
+        "expected" : "DELETED"
+      }, {
+        "matcher" : "error",
+        "state" : "success",
+        "expected" : "ResourceNotFoundException"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "retry",
+        "expected" : "DELETING"
+      } ]
+    },
+    "AnnotationStoreVersionCreated" : {
+      "description" : "Wait until an annotation store version is created",
+      "delay" : 30,
+      "maxAttempts" : 20,
+      "operation" : "GetAnnotationStoreVersion",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "success",
+        "expected" : "ACTIVE"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "retry",
+        "expected" : "CREATING"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "retry",
+        "expected" : "UPDATING"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "failure",
+        "expected" : "FAILED"
+      } ]
+    },
+    "AnnotationStoreVersionDeleted" : {
+      "description" : "Wait until an annotation store version is deleted.",
+      "delay" : 30,
+      "maxAttempts" : 20,
+      "operation" : "GetAnnotationStoreVersion",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "success",
+        "expected" : "DELETED"
+      }, {
+        "matcher" : "error",
+        "state" : "success",
+        "expected" : "ResourceNotFoundException"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "retry",
+        "expected" : "DELETING"
+      } ]
+    },
+    "ReadSetActivationJobCompleted" : {
+      "description" : "Wait until a job is completed.",
+      "delay" : 30,
+      "maxAttempts" : 20,
+      "operation" : "GetReadSetActivationJob",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "success",
+        "expected" : "COMPLETED"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "retry",
+        "expected" : "SUBMITTED"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "retry",
+        "expected" : "IN_PROGRESS"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "retry",
+        "expected" : "CANCELLING"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "failure",
+        "expected" : "CANCELLED"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "failure",
+        "expected" : "FAILED"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "failure",
+        "expected" : "COMPLETED_WITH_FAILURES"
+      } ]
+    },
+    "ReadSetExportJobCompleted" : {
+      "description" : "Wait until a job is completed.",
+      "delay" : 30,
+      "maxAttempts" : 20,
+      "operation" : "GetReadSetExportJob",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "success",
+        "expected" : "COMPLETED"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "retry",
+        "expected" : "SUBMITTED"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "retry",
+        "expected" : "IN_PROGRESS"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "retry",
+        "expected" : "CANCELLING"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "failure",
+        "expected" : "CANCELLED"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "failure",
+        "expected" : "FAILED"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "failure",
+        "expected" : "COMPLETED_WITH_FAILURES"
+      } ]
+    },
+    "ReadSetImportJobCompleted" : {
+      "description" : "Wait until a job is completed.",
+      "delay" : 30,
+      "maxAttempts" : 20,
+      "operation" : "GetReadSetImportJob",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "success",
+        "expected" : "COMPLETED"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "retry",
+        "expected" : "SUBMITTED"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "retry",
+        "expected" : "IN_PROGRESS"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "retry",
+        "expected" : "CANCELLING"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "failure",
+        "expected" : "CANCELLED"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "failure",
+        "expected" : "FAILED"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "failure",
+        "expected" : "COMPLETED_WITH_FAILURES"
+      } ]
+    },
+    "ReferenceImportJobCompleted" : {
+      "description" : "Wait until a job is completed.",
+      "delay" : 30,
+      "maxAttempts" : 20,
+      "operation" : "GetReferenceImportJob",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "success",
+        "expected" : "COMPLETED"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "retry",
+        "expected" : "SUBMITTED"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "retry",
+        "expected" : "IN_PROGRESS"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "retry",
+        "expected" : "CANCELLING"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "failure",
+        "expected" : "CANCELLED"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "failure",
+        "expected" : "FAILED"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "failure",
+        "expected" : "COMPLETED_WITH_FAILURES"
+      } ]
+    },
+    "RunCompleted" : {
+      "description" : "Wait until a run is completed.",
+      "delay" : 30,
+      "maxAttempts" : 20,
+      "operation" : "GetRun",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "success",
+        "expected" : "COMPLETED"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "retry",
+        "expected" : "PENDING"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "retry",
+        "expected" : "STARTING"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "retry",
+        "expected" : "RUNNING"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "retry",
+        "expected" : "STOPPING"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "failure",
+        "expected" : "FAILED"
+      } ]
+    },
+    "RunRunning" : {
+      "description" : "Wait until a run is running.",
+      "delay" : 30,
+      "maxAttempts" : 20,
+      "operation" : "GetRun",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "success",
+        "expected" : "RUNNING"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "retry",
+        "expected" : "PENDING"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "retry",
+        "expected" : "STARTING"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "failure",
+        "expected" : "FAILED"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "failure",
+        "expected" : "CANCELLED"
+      } ]
+    },
+    "TaskCompleted" : {
+      "description" : "Wait until a task is completed.",
+      "delay" : 30,
+      "maxAttempts" : 20,
+      "operation" : "GetRunTask",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "success",
+        "expected" : "COMPLETED"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "retry",
+        "expected" : "PENDING"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "retry",
+        "expected" : "STARTING"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "retry",
+        "expected" : "RUNNING"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "retry",
+        "expected" : "STOPPING"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "failure",
+        "expected" : "FAILED"
+      } ]
+    },
+    "TaskRunning" : {
+      "description" : "Wait until a task is running.",
+      "delay" : 30,
+      "maxAttempts" : 20,
+      "operation" : "GetRunTask",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "success",
+        "expected" : "RUNNING"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "retry",
+        "expected" : "PENDING"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "retry",
+        "expected" : "STARTING"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "failure",
+        "expected" : "FAILED"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "failure",
+        "expected" : "CANCELLED"
+      } ]
+    },
+    "VariantImportJobCreated" : {
+      "description" : "Wait until variant import is completed",
+      "delay" : 30,
+      "maxAttempts" : 20,
+      "operation" : "GetVariantImportJob",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "retry",
+        "expected" : "SUBMITTED"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "retry",
+        "expected" : "IN_PROGRESS"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "failure",
+        "expected" : "FAILED"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "success",
+        "expected" : "CANCELLED"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "success",
+        "expected" : "COMPLETED"
+      } ]
+    },
+    "VariantStoreCreated" : {
+      "description" : "Wait until a variant store is created",
+      "delay" : 30,
+      "maxAttempts" : 20,
+      "operation" : "GetVariantStore",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "success",
+        "expected" : "ACTIVE"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "retry",
+        "expected" : "CREATING"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "retry",
+        "expected" : "UPDATING"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "failure",
+        "expected" : "FAILED"
+      } ]
+    },
+    "VariantStoreDeleted" : {
+      "description" : "Wait until a variant store is deleted.",
+      "delay" : 30,
+      "maxAttempts" : 20,
+      "operation" : "GetVariantStore",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "success",
+        "expected" : "DELETED"
+      }, {
+        "matcher" : "error",
+        "state" : "success",
+        "expected" : "ResourceNotFoundException"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "retry",
+        "expected" : "DELETING"
+      } ]
+    },
+    "WorkflowActive" : {
+      "description" : "Wait until a workflow is active.",
+      "delay" : 3,
+      "maxAttempts" : 10,
+      "operation" : "GetWorkflow",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "success",
+        "expected" : "ACTIVE"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "retry",
+        "expected" : "CREATING"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "retry",
+        "expected" : "UPDATING"
+      }, {
+        "matcher" : "path",
+        "argument" : "status",
+        "state" : "failure",
+        "expected" : "FAILED"
+      } ]
+    }
+  }
+}
\ No newline at end of file
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/opensearch/2021-01-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/opensearch/2021-01-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..38f03a05
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/opensearch/2021-01-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/opensearch/2021-01-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/opensearch/2021-01-01/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/opensearch/2021-01-01/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/opensearch/2021-01-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/opensearch/2021-01-01/paginators-1.json
new file mode 100644
index 00000000..1f134ccf
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/opensearch/2021-01-01/paginators-1.json
@@ -0,0 +1,10 @@
+{
+  "pagination": {
+    "ListApplications": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "ApplicationSummaries"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/opensearch/2021-01-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/opensearch/2021-01-01/service-2.json.gz
new file mode 100644
index 00000000..7d1a8adb
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/opensearch/2021-01-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/opensearchserverless/2021-11-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/opensearchserverless/2021-11-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..1a494045
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/opensearchserverless/2021-11-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/opensearchserverless/2021-11-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/opensearchserverless/2021-11-01/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/opensearchserverless/2021-11-01/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/opensearchserverless/2021-11-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/opensearchserverless/2021-11-01/service-2.json.gz
new file mode 100644
index 00000000..7c0e4dfc
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/opensearchserverless/2021-11-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/opensearchserverless/2021-11-01/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/opensearchserverless/2021-11-01/waiters-2.json
new file mode 100644
index 00000000..13f60ee6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/opensearchserverless/2021-11-01/waiters-2.json
@@ -0,0 +1,5 @@
+{
+  "version": 2,
+  "waiters": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/opsworks/2013-02-18/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/opsworks/2013-02-18/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..4b1ca59c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/opsworks/2013-02-18/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/opsworks/2013-02-18/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/opsworks/2013-02-18/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/opsworks/2013-02-18/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/opsworks/2013-02-18/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/opsworks/2013-02-18/paginators-1.json
new file mode 100644
index 00000000..77936158
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/opsworks/2013-02-18/paginators-1.json
@@ -0,0 +1,10 @@
+{
+  "pagination": {
+    "DescribeEcsClusters": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "EcsClusters"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/opsworks/2013-02-18/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/opsworks/2013-02-18/service-2.json.gz
new file mode 100644
index 00000000..e618677a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/opsworks/2013-02-18/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/opsworks/2013-02-18/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/opsworks/2013-02-18/waiters-2.json
new file mode 100644
index 00000000..1b9dfaad
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/opsworks/2013-02-18/waiters-2.json
@@ -0,0 +1,289 @@
+{
+  "version": 2,
+  "waiters": {
+    "AppExists": {
+      "delay": 1,
+      "operation": "DescribeApps",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": 200,
+          "matcher": "status",
+          "state": "success"
+        },
+        {
+          "matcher": "status",
+          "expected": 400,
+          "state": "failure"
+        }
+      ]
+    },
+    "DeploymentSuccessful": {
+      "delay": 15,
+      "operation": "DescribeDeployments",
+      "maxAttempts": 40,
+      "description": "Wait until a deployment has completed successfully.",
+      "acceptors": [
+        {
+          "expected": "successful",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Deployments[].Status"
+        },
+        {
+          "expected": "failed",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Deployments[].Status"
+        }
+      ]
+    },
+    "InstanceOnline": {
+      "delay": 15,
+      "operation": "DescribeInstances",
+      "maxAttempts": 40,
+      "description": "Wait until OpsWorks instance is online.",
+      "acceptors": [
+        {
+          "expected": "online",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Instances[].Status"
+        },
+        {
+          "expected": "setup_failed",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Instances[].Status"
+        },
+        {
+          "expected": "shutting_down",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Instances[].Status"
+        },
+        {
+          "expected": "start_failed",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Instances[].Status"
+        },
+        {
+          "expected": "stopped",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Instances[].Status"
+        },
+        {
+          "expected": "stopping",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Instances[].Status"
+        },
+        {
+          "expected": "terminating",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Instances[].Status"
+        },
+        {
+          "expected": "terminated",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Instances[].Status"
+        },
+        {
+          "expected": "stop_failed",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Instances[].Status"
+        }
+      ]
+    },
+    "InstanceRegistered": {
+      "delay": 15,
+      "operation": "DescribeInstances",
+      "maxAttempts": 40,
+      "description": "Wait until OpsWorks instance is registered.",
+      "acceptors": [
+        {
+          "expected": "registered",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Instances[].Status"
+        },
+        {
+          "expected": "setup_failed",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Instances[].Status"
+        },
+        {
+          "expected": "shutting_down",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Instances[].Status"
+        },
+        {
+          "expected": "stopped",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Instances[].Status"
+        },
+        {
+          "expected": "stopping",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Instances[].Status"
+        },
+        {
+          "expected": "terminating",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Instances[].Status"
+        },
+        {
+          "expected": "terminated",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Instances[].Status"
+        },
+        {
+          "expected": "stop_failed",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Instances[].Status"
+        }
+      ]
+    },
+    "InstanceStopped": {
+      "delay": 15,
+      "operation": "DescribeInstances",
+      "maxAttempts": 40,
+      "description": "Wait until OpsWorks instance is stopped.",
+      "acceptors": [
+        {
+          "expected": "stopped",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Instances[].Status"
+        },
+        {
+          "expected": "booting",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Instances[].Status"
+        },
+        {
+          "expected": "pending",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Instances[].Status"
+        },
+        {
+          "expected": "rebooting",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Instances[].Status"
+        },
+        {
+          "expected": "requested",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Instances[].Status"
+        },
+        {
+          "expected": "running_setup",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Instances[].Status"
+        },
+        {
+          "expected": "setup_failed",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Instances[].Status"
+        },
+        {
+          "expected": "start_failed",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Instances[].Status"
+        },
+        {
+          "expected": "stop_failed",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Instances[].Status"
+        }
+      ]
+    },
+    "InstanceTerminated": {
+      "delay": 15,
+      "operation": "DescribeInstances",
+      "maxAttempts": 40,
+      "description": "Wait until OpsWorks instance is terminated.",
+      "acceptors": [
+        {
+          "expected": "terminated",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Instances[].Status"
+        },
+        {
+          "expected": "ResourceNotFoundException",
+          "matcher": "error",
+          "state": "success"
+        },
+        {
+          "expected": "booting",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Instances[].Status"
+        },
+        {
+          "expected": "online",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Instances[].Status"
+        },
+        {
+          "expected": "pending",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Instances[].Status"
+        },
+        {
+          "expected": "rebooting",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Instances[].Status"
+        },
+        {
+          "expected": "requested",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Instances[].Status"
+        },
+        {
+          "expected": "running_setup",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Instances[].Status"
+        },
+        {
+          "expected": "setup_failed",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Instances[].Status"
+        },
+        {
+          "expected": "start_failed",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Instances[].Status"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/opsworkscm/2016-11-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/opsworkscm/2016-11-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..fca418b8
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/opsworkscm/2016-11-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/opsworkscm/2016-11-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/opsworkscm/2016-11-01/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/opsworkscm/2016-11-01/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/opsworkscm/2016-11-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/opsworkscm/2016-11-01/paginators-1.json
new file mode 100644
index 00000000..e714aab1
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/opsworkscm/2016-11-01/paginators-1.json
@@ -0,0 +1,28 @@
+{
+  "pagination": {
+    "DescribeBackups": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Backups"
+    },
+    "DescribeEvents": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ServerEvents"
+    },
+    "DescribeServers": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Servers"
+    },
+    "ListTagsForResource": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Tags"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/opsworkscm/2016-11-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/opsworkscm/2016-11-01/service-2.json.gz
new file mode 100644
index 00000000..38dba59e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/opsworkscm/2016-11-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/opsworkscm/2016-11-01/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/opsworkscm/2016-11-01/waiters-2.json
new file mode 100644
index 00000000..f37dd040
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/opsworkscm/2016-11-01/waiters-2.json
@@ -0,0 +1,25 @@
+{
+  "version": 2,
+  "waiters": {
+    "NodeAssociated": {
+      "delay": 15,
+      "maxAttempts": 15,
+      "operation": "DescribeNodeAssociationStatus",
+      "description": "Wait until node is associated or disassociated.",
+      "acceptors": [
+        {
+          "expected": "SUCCESS",
+          "state": "success",
+          "matcher": "path",
+          "argument": "NodeAssociationStatus"
+        },
+        {
+          "expected": "FAILED",
+          "state": "failure",
+          "matcher": "path",
+          "argument": "NodeAssociationStatus"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/organizations/2016-11-28/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/organizations/2016-11-28/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..7dc7bf57
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/organizations/2016-11-28/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/organizations/2016-11-28/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/organizations/2016-11-28/examples-1.json
new file mode 100644
index 00000000..8e39290e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/organizations/2016-11-28/examples-1.json
@@ -0,0 +1,1409 @@
+{
+  "version": "1.0",
+  "examples": {
+    "AcceptHandshake": [
+      {
+        "input": {
+          "HandshakeId": "h-examplehandshakeid111"
+        },
+        "output": {
+          "Handshake": {
+            "Action": "INVITE",
+            "Arn": "arn:aws:organizations::111111111111:handshake/o-exampleorgid/invite/h-examplehandshakeid111",
+            "ExpirationTimestamp": "20170228T1215Z",
+            "Id": "h-examplehandshakeid111",
+            "Parties": [
+              {
+                "Id": "o-exampleorgid",
+                "Type": "ORGANIZATION"
+              },
+              {
+                "Id": "juan@example.com",
+                "Type": "EMAIL"
+              }
+            ],
+            "RequestedTimestamp": "20170214T1215Z",
+            "Resources": [
+              {
+                "Resources": [
+                  {
+                    "Type": "MASTER_EMAIL",
+                    "Value": "bill@amazon.com"
+                  },
+                  {
+                    "Type": "MASTER_NAME",
+                    "Value": "Org Master Account"
+                  },
+                  {
+                    "Type": "ORGANIZATION_FEATURE_SET",
+                    "Value": "ALL"
+                  }
+                ],
+                "Type": "ORGANIZATION",
+                "Value": "o-exampleorgid"
+              },
+              {
+                "Type": "ACCOUNT",
+                "Value": "222222222222"
+              }
+            ],
+            "State": "ACCEPTED"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Bill is the owner of an organization, and he invites Juan's account (222222222222) to join his organization. The following example shows Juan's account accepting the handshake and thus agreeing to the invitation.",
+        "id": "to-accept-a-handshake-from-another-account-1472500561150",
+        "title": "To accept a handshake from another account"
+      }
+    ],
+    "AttachPolicy": [
+      {
+        "input": {
+          "PolicyId": "p-examplepolicyid111",
+          "TargetId": "ou-examplerootid111-exampleouid111"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows how to attach a service control policy (SCP) to an OU:\n",
+        "id": "to-attach-a-policy-to-an-ou",
+        "title": "To attach a policy to an OU"
+      },
+      {
+        "input": {
+          "PolicyId": "p-examplepolicyid111",
+          "TargetId": "333333333333"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows how to attach a service control policy (SCP) to an account:\n",
+        "id": "to-attach-a-policy-to-an-account",
+        "title": "To attach a policy to an account"
+      }
+    ],
+    "CancelHandshake": [
+      {
+        "input": {
+          "HandshakeId": "h-examplehandshakeid111"
+        },
+        "output": {
+          "Handshake": {
+            "Action": "INVITE",
+            "Arn": "arn:aws:organizations::111111111111:handshake/o-exampleorgid/invite/h-examplehandshakeid111",
+            "ExpirationTimestamp": "20170228T1215Z",
+            "Id": "h-examplehandshakeid111",
+            "Parties": [
+              {
+                "Id": "o-exampleorgid",
+                "Type": "ORGANIZATION"
+              },
+              {
+                "Id": "susan@example.com",
+                "Type": "EMAIL"
+              }
+            ],
+            "RequestedTimestamp": "20170214T1215Z",
+            "Resources": [
+              {
+                "Resources": [
+                  {
+                    "Type": "MASTER_EMAIL",
+                    "Value": "bill@example.com"
+                  },
+                  {
+                    "Type": "MASTER_NAME",
+                    "Value": "Master Account"
+                  },
+                  {
+                    "Type": "ORGANIZATION_FEATURE_SET",
+                    "Value": "CONSOLIDATED_BILLING"
+                  }
+                ],
+                "Type": "ORGANIZATION",
+                "Value": "o-exampleorgid"
+              },
+              {
+                "Type": "ACCOUNT",
+                "Value": "222222222222"
+              },
+              {
+                "Type": "NOTES",
+                "Value": "This is a request for Susan's account to join Bob's organization."
+              }
+            ],
+            "State": "CANCELED"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Bill previously sent an invitation to Susan's account to join his organization. He changes his mind and decides to cancel the invitation before Susan accepts it. The following example shows Bill's cancellation:\n",
+        "id": "to-cancel-a-handshake-sent-to-a-member-account-1472501320506",
+        "title": "To cancel a handshake sent to a member account"
+      }
+    ],
+    "CreateAccount": [
+      {
+        "input": {
+          "AccountName": "Production Account",
+          "Email": "susan@example.com"
+        },
+        "output": {
+          "CreateAccountStatus": {
+            "Id": "car-examplecreateaccountrequestid111",
+            "State": "IN_PROGRESS"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The owner of an organization creates a member account in the organization. The following example shows that when the organization owner creates the member account, the account is preconfigured with the name \"Production Account\" and an owner email address of susan@example.com.  An IAM role is automatically created using the default name because the roleName parameter is not used. AWS Organizations sends Susan a \"Welcome to AWS\" email:\n\n",
+        "id": "to-create-a-new-account-that-is-automatically-part-of-the-organization-1472501463507",
+        "title": "To create a new account that is automatically part of the organization"
+      }
+    ],
+    "CreateOrganization": [
+      {
+        "input": {
+        },
+        "output": {
+          "Organization": {
+            "Arn": "arn:aws:organizations::111111111111:organization/o-exampleorgid",
+            "AvailablePolicyTypes": [
+              {
+                "Status": "ENABLED",
+                "Type": "SERVICE_CONTROL_POLICY"
+              }
+            ],
+            "FeatureSet": "ALL",
+            "Id": "o-exampleorgid",
+            "MasterAccountArn": "arn:aws:organizations::111111111111:account/o-exampleorgid/111111111111",
+            "MasterAccountEmail": "bill@example.com",
+            "MasterAccountId": "111111111111"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Bill wants to create an organization using credentials from account 111111111111. The following example shows that the account becomes the master account in the new organization. Because he does not specify a feature set, the new organization defaults to all features enabled and service control policies enabled on the root:\n\n",
+        "id": "to-create-a-new-organization-with-all-features enabled",
+        "title": "To create a new organization with all features enabled"
+      },
+      {
+        "input": {
+          "FeatureSet": "CONSOLIDATED_BILLING"
+        },
+        "output": {
+          "Organization": {
+            "Arn": "arn:aws:organizations::111111111111:organization/o-exampleorgid",
+            "AvailablePolicyTypes": [
+
+            ],
+            "FeatureSet": "CONSOLIDATED_BILLING",
+            "Id": "o-exampleorgid",
+            "MasterAccountArn": "arn:aws:organizations::111111111111:account/o-exampleorgid/111111111111",
+            "MasterAccountEmail": "bill@example.com",
+            "MasterAccountId": "111111111111"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "In the following example, Bill creates an organization using credentials from account 111111111111, and configures the organization to support only the consolidated billing feature set:\n\n",
+        "id": "to-create-a-new-organization-with-consolidated-billing-features-only",
+        "title": "To create a new organization with consolidated billing features only"
+      }
+    ],
+    "CreateOrganizationalUnit": [
+      {
+        "input": {
+          "Name": "AccountingOU",
+          "ParentId": "r-examplerootid111"
+        },
+        "output": {
+          "OrganizationalUnit": {
+            "Arn": "arn:aws:organizations::111111111111:ou/o-exampleorgid/ou-examplerootid111-exampleouid111",
+            "Id": "ou-examplerootid111-exampleouid111",
+            "Name": "AccountingOU"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows how to create an OU that is named AccountingOU. The new OU is directly under the root.:\n\n",
+        "id": "to-create-a-new-organizational-unit",
+        "title": "To create a new organization unit"
+      }
+    ],
+    "CreatePolicy": [
+      {
+        "input": {
+          "Content": "{\\\"Version\\\":\\\"2012-10-17\\\",\\\"Statement\\\":{\\\"Effect\\\":\\\"Allow\\\",\\\"Action\\\":\\\"s3:*\\\"}}",
+          "Description": "Enables admins of attached accounts to delegate all S3 permissions",
+          "Name": "AllowAllS3Actions",
+          "Type": "SERVICE_CONTROL_POLICY"
+        },
+        "output": {
+          "Policy": {
+            "Content": "{\"Version\":\"2012-10-17\",\"Statement\":{\"Effect\":\"Allow\",\"Action\":\"s3:*\"}}",
+            "PolicySummary": {
+              "Arn": "arn:aws:organizations::111111111111:policy/o-exampleorgid/service_control_policy/p-examplepolicyid111",
+              "Description": "Allows delegation of all S3 actions",
+              "Name": "AllowAllS3Actions",
+              "Type": "SERVICE_CONTROL_POLICY"
+            }
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows how to create a service control policy (SCP) that is named AllowAllS3Actions. The JSON string in the content parameter specifies the content in the policy. The parameter string is escaped with backslashes to ensure that the embedded double quotes in the JSON policy are treated as literals in the parameter, which itself is surrounded by double quotes:\n\n",
+        "id": "to-create-a-service-control-policy",
+        "title": "To create a service control policy"
+      }
+    ],
+    "DeclineHandshake": [
+      {
+        "input": {
+          "HandshakeId": "h-examplehandshakeid111"
+        },
+        "output": {
+          "Handshake": {
+            "Action": "INVITE",
+            "Arn": "arn:aws:organizations::111111111111:handshake/o-exampleorgid/invite/h-examplehandshakeid111",
+            "ExpirationTimestamp": "2016-12-15T19:27:58Z",
+            "Id": "h-examplehandshakeid111",
+            "Parties": [
+              {
+                "Id": "222222222222",
+                "Type": "ACCOUNT"
+              },
+              {
+                "Id": "o-exampleorgid",
+                "Type": "ORGANIZATION"
+              }
+            ],
+            "RequestedTimestamp": "2016-11-30T19:27:58Z",
+            "Resources": [
+              {
+                "Resources": [
+                  {
+                    "Type": "MASTER_EMAIL",
+                    "Value": "bill@example.com"
+                  },
+                  {
+                    "Type": "MASTER_NAME",
+                    "Value": "Master Account"
+                  }
+                ],
+                "Type": "ORGANIZATION",
+                "Value": "o-exampleorgid"
+              },
+              {
+                "Type": "ACCOUNT",
+                "Value": "222222222222"
+              },
+              {
+                "Type": "NOTES",
+                "Value": "This is an invitation to Susan's account to join the Bill's organization."
+              }
+            ],
+            "State": "DECLINED"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows Susan declining an invitation to join Bill's organization. The DeclineHandshake operation returns a handshake object, showing that the state is now DECLINED:",
+        "id": "to-decline-a-handshake-sent-from-the-master-account-1472502666967",
+        "title": "To decline a handshake sent from the master account"
+      }
+    ],
+    "DeleteOrganizationalUnit": [
+      {
+        "input": {
+          "OrganizationalUnitId": "ou-examplerootid111-exampleouid111"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows how to delete an OU. The example assumes that you previously removed all accounts and other OUs from the OU:\n\n",
+        "id": "to-delete-an-organizational-unit",
+        "title": "To delete an organization unit"
+      }
+    ],
+    "DeletePolicy": [
+      {
+        "input": {
+          "PolicyId": "p-examplepolicyid111"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows how to delete a policy from an organization. The example assumes that you previously detached the policy from all entities:\n\n",
+        "id": "to-delete-a-policy",
+        "title": "To delete a policy"
+      }
+    ],
+    "DescribeAccount": [
+      {
+        "input": {
+          "AccountId": "555555555555"
+        },
+        "output": {
+          "Account": {
+            "Arn": "arn:aws:organizations::111111111111:account/o-exampleorgid/555555555555",
+            "Email": "anika@example.com",
+            "Id": "555555555555",
+            "Name": "Beta Account"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows a user in the master account (111111111111) asking for details about account 555555555555:",
+        "id": "to-get-the-details-about-an-account-1472503166868",
+        "title": "To get the details about an account"
+      }
+    ],
+    "DescribeCreateAccountStatus": [
+      {
+        "input": {
+          "CreateAccountRequestId": "car-exampleaccountcreationrequestid"
+        },
+        "output": {
+          "CreateAccountStatus": {
+            "AccountId": "333333333333",
+            "Id": "car-exampleaccountcreationrequestid",
+            "State": "SUCCEEDED"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows how to request the status about a previous request to create an account in an organization. This operation can be called only by a principal from the organization's master account. In the example, the specified \"createAccountRequestId\" comes from the response of the original call to \"CreateAccount\":",
+        "id": "to-get-information-about-a-request-to-create-an-account-1472503727223",
+        "title": "To get information about a request to create an account"
+      }
+    ],
+    "DescribeHandshake": [
+      {
+        "input": {
+          "HandshakeId": "h-examplehandshakeid111"
+        },
+        "output": {
+          "Handshake": {
+            "Action": "INVITE",
+            "Arn": "arn:aws:organizations::111111111111:handshake/o-exampleorgid/invite/h-examplehandshakeid111",
+            "ExpirationTimestamp": "2016-11-30T17:24:58.046Z",
+            "Id": "h-examplehandshakeid111",
+            "Parties": [
+              {
+                "Id": "o-exampleorgid",
+                "Type": "ORGANIZATION"
+              },
+              {
+                "Id": "333333333333",
+                "Type": "ACCOUNT"
+              }
+            ],
+            "RequestedTimestamp": "2016-11-30T17:24:58.046Z",
+            "Resources": [
+              {
+                "Resources": [
+                  {
+                    "Type": "MASTER_EMAIL",
+                    "Value": "bill@example.com"
+                  },
+                  {
+                    "Type": "MASTER_NAME",
+                    "Value": "Master Account"
+                  }
+                ],
+                "Type": "ORGANIZATION",
+                "Value": "o-exampleorgid"
+              },
+              {
+                "Type": "ACCOUNT",
+                "Value": "333333333333"
+              }
+            ],
+            "State": "OPEN"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows you how to request details about a handshake. The handshake ID comes either from the original call to \"InviteAccountToOrganization\", or from a call to \"ListHandshakesForAccount\" or \"ListHandshakesForOrganization\":",
+        "id": "to-get-information-about-a-handshake-1472503400505",
+        "title": "To get information about a handshake"
+      }
+    ],
+    "DescribeOrganization": [
+      {
+        "output": {
+          "Organization": {
+            "Arn": "arn:aws:organizations::111111111111:organization/o-exampleorgid",
+            "AvailablePolicyTypes": [
+              {
+                "Status": "ENABLED",
+                "Type": "SERVICE_CONTROL_POLICY"
+              }
+            ],
+            "FeatureSet": "ALL",
+            "Id": "o-exampleorgid",
+            "MasterAccountArn": "arn:aws:organizations::111111111111:account/o-exampleorgid/111111111111",
+            "MasterAccountEmail": "bill@example.com"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows how to request information about the current user's organization:/n/n",
+        "id": "to-get-information-about-an-organization-1472503400505",
+        "title": "To get information about an organization"
+      }
+    ],
+    "DescribeOrganizationalUnit": [
+      {
+        "input": {
+          "OrganizationalUnitId": "ou-examplerootid111-exampleouid111"
+        },
+        "output": {
+          "OrganizationalUnit": {
+            "Arn": "arn:aws:organizations::111111111111:ou/o-exampleorgid/ou-examplerootid111-exampleouid111",
+            "Id": "ou-examplerootid111-exampleouid111",
+            "Name": "Accounting Group"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows how to request details about an OU:/n/n",
+        "id": "to-get-information-about-an-organizational-unit",
+        "title": "To get information about an organizational unit"
+      }
+    ],
+    "DescribePolicy": [
+      {
+        "input": {
+          "PolicyId": "p-examplepolicyid111"
+        },
+        "output": {
+          "Policy": {
+            "Content": "{\\n  \\\"Version\\\": \\\"2012-10-17\\\",\\n  \\\"Statement\\\": [\\n    {\\n      \\\"Effect\\\": \\\"Allow\\\",\\n      \\\"Action\\\": \\\"*\\\",\\n      \\\"Resource\\\": \\\"*\\\"\\n    }\\n  ]\\n}",
+            "PolicySummary": {
+              "Arn": "arn:aws:organizations::111111111111:policy/o-exampleorgid/service_control_policy/p-examplepolicyid111",
+              "AwsManaged": false,
+              "Description": "Enables admins to delegate S3 permissions",
+              "Id": "p-examplepolicyid111",
+              "Name": "AllowAllS3Actions",
+              "Type": "SERVICE_CONTROL_POLICY"
+            }
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows how to request information about a policy:/n/n",
+        "id": "to-get-information-about-a-policy",
+        "title": "To get information about a policy"
+      }
+    ],
+    "DetachPolicy": [
+      {
+        "input": {
+          "PolicyId": "p-examplepolicyid111",
+          "TargetId": "ou-examplerootid111-exampleouid111"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows how to detach a policy from an OU:/n/n",
+        "id": "to-detach-a-policy-from-a-root-ou-or-account",
+        "title": "To detach a policy from a root, OU, or account"
+      }
+    ],
+    "DisablePolicyType": [
+      {
+        "input": {
+          "PolicyType": "SERVICE_CONTROL_POLICY",
+          "RootId": "r-examplerootid111"
+        },
+        "output": {
+          "Root": {
+            "Arn": "arn:aws:organizations::111111111111:root/o-exampleorgid/r-examplerootid111",
+            "Id": "r-examplerootid111",
+            "Name": "Root",
+            "PolicyTypes": [
+
+            ]
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows how to disable the service control policy (SCP) policy type in a root. The response shows that the PolicyTypes response element no longer includes SERVICE_CONTROL_POLICY:/n/n",
+        "id": "to-disable-a-policy-type-in-a-root",
+        "title": "To disable a policy type in a root"
+      }
+    ],
+    "EnableAllFeatures": [
+      {
+        "input": {
+        },
+        "output": {
+          "Handshake": {
+            "Action": "ENABLE_ALL_FEATURES",
+            "Arn": "arn:aws:organizations::111111111111:handshake/o-exampleorgid/enable_all_features/h-examplehandshakeid111",
+            "ExpirationTimestamp": "2017-02-28T09:35:40.05Z",
+            "Id": "h-examplehandshakeid111",
+            "Parties": [
+              {
+                "Id": "o-exampleorgid",
+                "Type": "ORGANIZATION"
+              }
+            ],
+            "RequestedTimestamp": "2017-02-13T09:35:40.05Z",
+            "Resources": [
+              {
+                "Type": "ORGANIZATION",
+                "Value": "o-exampleorgid"
+              }
+            ],
+            "State": "REQUESTED"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example shows the administrator asking all the invited accounts in the organization to approve enabling all features in the organization. AWS Organizations sends an email to the address that is registered with every invited member account asking the owner to approve the change by accepting the handshake that is sent. After all invited member accounts accept the handshake, the organization administrator can finalize the change to enable all features, and those with appropriate permissions can create policies and apply them to roots, OUs, and accounts:/n/n",
+        "id": "to-enable-all-features-in-an-organization",
+        "title": "To enable all features in an organization"
+      }
+    ],
+    "EnablePolicyType": [
+      {
+        "input": {
+          "PolicyType": "SERVICE_CONTROL_POLICY",
+          "RootId": "r-examplerootid111"
+        },
+        "output": {
+          "Root": {
+            "Arn": "arn:aws:organizations::111111111111:root/o-exampleorgid/r-examplerootid111",
+            "Id": "r-examplerootid111",
+            "Name": "Root",
+            "PolicyTypes": [
+              {
+                "Status": "ENABLED",
+                "Type": "SERVICE_CONTROL_POLICY"
+              }
+            ]
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows how to enable the service control policy (SCP) policy type in a root. The output shows a root object with a PolicyTypes response element showing that SCPs are now enabled:/n/n",
+        "id": "to-enable-a-policy-type-in-a-root",
+        "title": "To enable a policy type in a root"
+      }
+    ],
+    "InviteAccountToOrganization": [
+      {
+        "input": {
+          "Notes": "This is a request for Juan's account to join Bill's organization",
+          "Target": {
+            "Id": "juan@example.com",
+            "Type": "EMAIL"
+          }
+        },
+        "output": {
+          "Handshake": {
+            "Action": "INVITE",
+            "Arn": "arn:aws:organizations::111111111111:handshake/o-exampleorgid/invite/h-examplehandshakeid111",
+            "ExpirationTimestamp": "2017-02-16T09:36:05.02Z",
+            "Id": "h-examplehandshakeid111",
+            "Parties": [
+              {
+                "Id": "o-exampleorgid",
+                "Type": "ORGANIZATION"
+              },
+              {
+                "Id": "juan@example.com",
+                "Type": "EMAIL"
+              }
+            ],
+            "RequestedTimestamp": "2017-02-01T09:36:05.02Z",
+            "Resources": [
+              {
+                "Resources": [
+                  {
+                    "Type": "MASTER_EMAIL",
+                    "Value": "bill@amazon.com"
+                  },
+                  {
+                    "Type": "MASTER_NAME",
+                    "Value": "Org Master Account"
+                  },
+                  {
+                    "Type": "ORGANIZATION_FEATURE_SET",
+                    "Value": "FULL"
+                  }
+                ],
+                "Type": "ORGANIZATION",
+                "Value": "o-exampleorgid"
+              },
+              {
+                "Type": "EMAIL",
+                "Value": "juan@example.com"
+              }
+            ],
+            "State": "OPEN"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows the admin of the master account owned by bill@example.com inviting the account owned by juan@example.com to join an organization.",
+        "id": "to-invite-an-account-to-join-an-organization-1472508594110",
+        "title": "To invite an account to join an organization"
+      }
+    ],
+    "LeaveOrganization": [
+      {
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "TThe following example shows how to remove your member account from an organization:",
+        "id": "to-leave-an-organization-as-a-member-account-1472508784736",
+        "title": "To leave an organization as a member account"
+      }
+    ],
+    "ListAccounts": [
+      {
+        "input": {
+        },
+        "output": {
+          "Accounts": [
+            {
+              "Arn": "arn:aws:organizations::111111111111:account/o-exampleorgid/111111111111",
+              "Email": "bill@example.com",
+              "Id": "111111111111",
+              "JoinedMethod": "INVITED",
+              "JoinedTimestamp": "20161215T193015Z",
+              "Name": "Master Account",
+              "Status": "ACTIVE"
+            },
+            {
+              "Arn": "arn:aws:organizations::111111111111:account/o-exampleorgid/222222222222",
+              "Email": "alice@example.com",
+              "Id": "222222222222",
+              "JoinedMethod": "INVITED",
+              "JoinedTimestamp": "20161215T210221Z",
+              "Name": "Developer Account",
+              "Status": "ACTIVE"
+            },
+            {
+              "Arn": "arn:aws:organizations::111111111111:account/o-exampleorgid/333333333333",
+              "Email": "juan@example.com",
+              "Id": "333333333333",
+              "JoinedMethod": "INVITED",
+              "JoinedTimestamp": "20161215T210347Z",
+              "Name": "Test Account",
+              "Status": "ACTIVE"
+            },
+            {
+              "Arn": "arn:aws:organizations::111111111111:account/o-exampleorgid/444444444444",
+              "Email": "anika@example.com",
+              "Id": "444444444444",
+              "JoinedMethod": "INVITED",
+              "JoinedTimestamp": "20161215T210332Z",
+              "Name": "Production Account",
+              "Status": "ACTIVE"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows you how to request a list of the accounts in an organization:",
+        "id": "to-retrieve-a-list-of-all-of-the-accounts-in-an-organization-1472509590974",
+        "title": "To retrieve a list of all of the accounts in an organization"
+      }
+    ],
+    "ListAccountsForParent": [
+      {
+        "input": {
+          "ParentId": "ou-examplerootid111-exampleouid111"
+        },
+        "output": {
+          "Accounts": [
+            {
+              "Arn": "arn:aws:organizations::111111111111:account/o-exampleorgid/333333333333",
+              "Email": "juan@example.com",
+              "Id": "333333333333",
+              "JoinedMethod": "INVITED",
+              "JoinedTimestamp": 1481835795.536,
+              "Name": "Development Account",
+              "Status": "ACTIVE"
+            },
+            {
+              "Arn": "arn:aws:organizations::111111111111:account/o-exampleorgid/444444444444",
+              "Email": "anika@example.com",
+              "Id": "444444444444",
+              "JoinedMethod": "INVITED",
+              "JoinedTimestamp": 1481835812.143,
+              "Name": "Test Account",
+              "Status": "ACTIVE"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows how to request a list of the accounts in an OU:/n/n",
+        "id": "to-retrieve-a-list-of-all-of-the-accounts-in-a-root-or-ou-1472509590974",
+        "title": "To retrieve a list of all of the accounts in a root or OU"
+      }
+    ],
+    "ListChildren": [
+      {
+        "input": {
+          "ChildType": "ORGANIZATIONAL_UNIT",
+          "ParentId": "ou-examplerootid111-exampleouid111"
+        },
+        "output": {
+          "Children": [
+            {
+              "Id": "ou-examplerootid111-exampleouid111",
+              "Type": "ORGANIZATIONAL_UNIT"
+            },
+            {
+              "Id": "ou-examplerootid111-exampleouid222",
+              "Type": "ORGANIZATIONAL_UNIT"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows how to request a list of the child OUs in a parent root or OU:/n/n",
+        "id": "to-retrieve-a-list-of-all-of-the-child-accounts-and-OUs-in-a-parent-container",
+        "title": "To retrieve a list of all of the child accounts and OUs in a parent root or OU"
+      }
+    ],
+    "ListCreateAccountStatus": [
+      {
+        "input": {
+          "States": [
+            "SUCCEEDED"
+          ]
+        },
+        "output": {
+          "CreateAccountStatuses": [
+            {
+              "AccountId": "444444444444",
+              "AccountName": "Developer Test Account",
+              "CompletedTimestamp": "2017-01-15T13:45:23.6Z",
+              "Id": "car-exampleaccountcreationrequestid1",
+              "RequestedTimestamp": "2017-01-15T13:45:23.01Z",
+              "State": "SUCCEEDED"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows a user requesting a list of only the completed account creation requests made for the current organization:",
+        "id": "to-get-a-list-of-completed-account-creation-requests-made-in-the-organization",
+        "title": "To get a list of completed account creation requests made in the organization"
+      },
+      {
+        "input": {
+          "States": [
+            "IN_PROGRESS"
+          ]
+        },
+        "output": {
+          "CreateAccountStatuses": [
+            {
+              "AccountName": "Production Account",
+              "Id": "car-exampleaccountcreationrequestid2",
+              "RequestedTimestamp": "2017-01-15T13:45:23.01Z",
+              "State": "IN_PROGRESS"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows a user requesting a list of only the in-progress account creation requests made for the current organization:",
+        "id": "to-get-a-list-of-all-account-creation-requests-made-in-the-organization-1472509174532",
+        "title": "To get a list of all account creation requests made in the organization"
+      }
+    ],
+    "ListHandshakesForAccount": [
+      {
+        "output": {
+          "Handshakes": [
+            {
+              "Action": "INVITE",
+              "Arn": "arn:aws:organizations::111111111111:handshake/o-exampleorgid/invite/h-examplehandshakeid111",
+              "ExpirationTimestamp": "2017-01-28T14:35:23.3Z",
+              "Id": "h-examplehandshakeid111",
+              "Parties": [
+                {
+                  "Id": "o-exampleorgid",
+                  "Type": "ORGANIZATION"
+                },
+                {
+                  "Id": "juan@example.com",
+                  "Type": "EMAIL"
+                }
+              ],
+              "RequestedTimestamp": "2017-01-13T14:35:23.3Z",
+              "Resources": [
+                {
+                  "Resources": [
+                    {
+                      "Type": "MASTER_EMAIL",
+                      "Value": "bill@amazon.com"
+                    },
+                    {
+                      "Type": "MASTER_NAME",
+                      "Value": "Org Master Account"
+                    },
+                    {
+                      "Type": "ORGANIZATION_FEATURE_SET",
+                      "Value": "FULL"
+                    }
+                  ],
+                  "Type": "ORGANIZATION",
+                  "Value": "o-exampleorgid"
+                },
+                {
+                  "Type": "EMAIL",
+                  "Value": "juan@example.com"
+                }
+              ],
+              "State": "OPEN"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows you how to get a list of handshakes that are associated with the account of the credentials used to call the operation:",
+        "id": "to-retrieve-a-list-of-the-handshakes-sent-to-an-account-1472510214747",
+        "title": "To retrieve a list of the handshakes sent to an account"
+      }
+    ],
+    "ListHandshakesForOrganization": [
+      {
+        "output": {
+          "Handshakes": [
+            {
+              "Action": "INVITE",
+              "Arn": "arn:aws:organizations::111111111111:handshake/o-exampleorgid/invite/h-examplehandshakeid111",
+              "ExpirationTimestamp": "2017-01-28T14:35:23.3Z",
+              "Id": "h-examplehandshakeid111",
+              "Parties": [
+                {
+                  "Id": "o-exampleorgid",
+                  "Type": "ORGANIZATION"
+                },
+                {
+                  "Id": "juan@example.com",
+                  "Type": "EMAIL"
+                }
+              ],
+              "RequestedTimestamp": "2017-01-13T14:35:23.3Z",
+              "Resources": [
+                {
+                  "Resources": [
+                    {
+                      "Type": "MASTER_EMAIL",
+                      "Value": "bill@amazon.com"
+                    },
+                    {
+                      "Type": "MASTER_NAME",
+                      "Value": "Org Master Account"
+                    },
+                    {
+                      "Type": "ORGANIZATION_FEATURE_SET",
+                      "Value": "FULL"
+                    }
+                  ],
+                  "Type": "ORGANIZATION",
+                  "Value": "o-exampleorgid"
+                },
+                {
+                  "Type": "EMAIL",
+                  "Value": "juan@example.com"
+                }
+              ],
+              "State": "OPEN"
+            },
+            {
+              "Action": "INVITE",
+              "Arn": "arn:aws:organizations::111111111111:handshake/o-exampleorgid/invite/h-examplehandshakeid111",
+              "ExpirationTimestamp": "2017-01-28T14:35:23.3Z",
+              "Id": "h-examplehandshakeid222",
+              "Parties": [
+                {
+                  "Id": "o-exampleorgid",
+                  "Type": "ORGANIZATION"
+                },
+                {
+                  "Id": "anika@example.com",
+                  "Type": "EMAIL"
+                }
+              ],
+              "RequestedTimestamp": "2017-01-13T14:35:23.3Z",
+              "Resources": [
+                {
+                  "Resources": [
+                    {
+                      "Type": "MASTER_EMAIL",
+                      "Value": "bill@example.com"
+                    },
+                    {
+                      "Type": "MASTER_NAME",
+                      "Value": "Master Account"
+                    }
+                  ],
+                  "Type": "ORGANIZATION",
+                  "Value": "o-exampleorgid"
+                },
+                {
+                  "Type": "EMAIL",
+                  "Value": "anika@example.com"
+                },
+                {
+                  "Type": "NOTES",
+                  "Value": "This is an invitation to Anika's account to join Bill's organization."
+                }
+              ],
+              "State": "ACCEPTED"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows you how to get a list of handshakes associated with the current organization:",
+        "id": "to-retrieve-a-list-of-the-handshakes-associated-with-an-organization-1472511206653",
+        "title": "To retrieve a list of the handshakes associated with an organization"
+      }
+    ],
+    "ListOrganizationalUnitsForParent": [
+      {
+        "input": {
+          "ParentId": "r-examplerootid111"
+        },
+        "output": {
+          "OrganizationalUnits": [
+            {
+              "Arn": "arn:aws:organizations::111111111111:ou/o-exampleorgid/ou-examlerootid111-exampleouid111",
+              "Id": "ou-examplerootid111-exampleouid111",
+              "Name": "Development"
+            },
+            {
+              "Arn": "arn:aws:organizations::111111111111:ou/o-exampleorgid/ou-examlerootid111-exampleouid222",
+              "Id": "ou-examplerootid111-exampleouid222",
+              "Name": "Production"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows how to get a list of OUs in a specified root:/n/n",
+        "id": "to-retrieve-a-list-of-all-of-the-OUs-in-a-parent-container",
+        "title": "To retrieve a list of all of the child OUs in a parent root or OU"
+      }
+    ],
+    "ListParents": [
+      {
+        "input": {
+          "ChildId": "444444444444"
+        },
+        "output": {
+          "Parents": [
+            {
+              "Id": "ou-examplerootid111-exampleouid111",
+              "Type": "ORGANIZATIONAL_UNIT"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows how to list the root or OUs that contain account 444444444444:/n/n",
+        "id": "to-retrieve-a-list-of-all-of-the-parents-of-a-child-ou-or-account",
+        "title": "To retrieve a list of all of the parents of a child OU or account"
+      }
+    ],
+    "ListPolicies": [
+      {
+        "input": {
+          "Filter": "SERVICE_CONTROL_POLICY"
+        },
+        "output": {
+          "Policies": [
+            {
+              "Arn": "arn:aws:organizations::111111111111:policy/o-exampleorgid/service_control_policy/p-examplepolicyid111",
+              "AwsManaged": false,
+              "Description": "Enables account admins to delegate permissions for any S3 actions to users and roles in their accounts.",
+              "Id": "p-examplepolicyid111",
+              "Name": "AllowAllS3Actions",
+              "Type": "SERVICE_CONTROL_POLICY"
+            },
+            {
+              "Arn": "arn:aws:organizations::111111111111:policy/o-exampleorgid/service_control_policy/p-examplepolicyid222",
+              "AwsManaged": false,
+              "Description": "Enables account admins to delegate permissions for any EC2 actions to users and roles in their accounts.",
+              "Id": "p-examplepolicyid222",
+              "Name": "AllowAllEC2Actions",
+              "Type": "SERVICE_CONTROL_POLICY"
+            },
+            {
+              "Arn": "arn:aws:organizations::aws:policy/service_control_policy/p-FullAWSAccess",
+              "AwsManaged": true,
+              "Description": "Allows access to every operation",
+              "Id": "p-FullAWSAccess",
+              "Name": "FullAWSAccess",
+              "Type": "SERVICE_CONTROL_POLICY"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows how to get a list of service control policies (SCPs):/n/n",
+        "id": "to-retrieve-a-list-of--policies-in-the-organization",
+        "title": "To retrieve a list policies in the organization"
+      }
+    ],
+    "ListPoliciesForTarget": [
+      {
+        "input": {
+          "Filter": "SERVICE_CONTROL_POLICY",
+          "TargetId": "444444444444"
+        },
+        "output": {
+          "Policies": [
+            {
+              "Arn": "arn:aws:organizations::111111111111:policy/o-exampleorgid/service_control_policy/p-examplepolicyid222",
+              "AwsManaged": false,
+              "Description": "Enables account admins to delegate permissions for any EC2 actions to users and roles in their accounts.",
+              "Id": "p-examplepolicyid222",
+              "Name": "AllowAllEC2Actions",
+              "Type": "SERVICE_CONTROL_POLICY"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows how to get a list of all service control policies (SCPs) of the type specified by the Filter parameter, that are directly attached to an account. The returned list does not include policies that apply to the account because of inheritance from its location in an OU hierarchy:/n/n",
+        "id": "to-retrieve-a-list-of-policies-attached-to-a-root-ou-or-account",
+        "title": "To retrieve a list policies attached to a root, OU, or account"
+      }
+    ],
+    "ListRoots": [
+      {
+        "input": {
+        },
+        "output": {
+          "Roots": [
+            {
+              "Arn": "arn:aws:organizations::111111111111:root/o-exampleorgid/r-examplerootid111",
+              "Id": "r-examplerootid111",
+              "Name": "Root",
+              "PolicyTypes": [
+                {
+                  "Status": "ENABLED",
+                  "Type": "SERVICE_CONTROL_POLICY"
+                }
+              ]
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows how to get the list of the roots in the current organization:/n/n",
+        "id": "to-retrieve-a-list-of-roots-in-the-organization",
+        "title": "To retrieve a list of roots in the organization"
+      }
+    ],
+    "ListTargetsForPolicy": [
+      {
+        "input": {
+          "PolicyId": "p-FullAWSAccess"
+        },
+        "output": {
+          "Targets": [
+            {
+              "Arn": "arn:aws:organizations::111111111111:root/o-exampleorgid/r-examplerootid111",
+              "Name": "Root",
+              "TargetId": "r-examplerootid111",
+              "Type": "ROOT"
+            },
+            {
+              "Arn": "arn:aws:organizations::111111111111:account/o-exampleorgid/333333333333;",
+              "Name": "Developer Test Account",
+              "TargetId": "333333333333",
+              "Type": "ACCOUNT"
+            },
+            {
+              "Arn": "arn:aws:organizations::111111111111:ou/o-exampleorgid/ou-examplerootid111-exampleouid111",
+              "Name": "Accounting",
+              "TargetId": "ou-examplerootid111-exampleouid111",
+              "Type": "ORGANIZATIONAL_UNIT"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows how to get the list of roots, OUs, and accounts to which the specified policy is attached:/n/n",
+        "id": "to-retrieve-a-list-of-roots-ous-and-accounts-to-which-a-policy-is-attached",
+        "title": "To retrieve a list of roots, OUs, and accounts to which a policy is attached"
+      }
+    ],
+    "MoveAccount": [
+      {
+        "input": {
+          "AccountId": "333333333333",
+          "DestinationParentId": "ou-examplerootid111-exampleouid111",
+          "SourceParentId": "r-examplerootid111"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows how to move a member account from the root to an OU:/n/n",
+        "id": "to-move-an-ou-or-account-to-another-ou-or-the-root",
+        "title": "To move an OU or account to another OU or the root"
+      }
+    ],
+    "RemoveAccountFromOrganization": [
+      {
+        "input": {
+          "AccountId": "333333333333"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows you how to remove an account from an organization:",
+        "id": "to-remove-an-account-from-an-organization-as-the-master-account",
+        "title": "To remove an account from an organization as the master account"
+      }
+    ],
+    "UpdateOrganizationalUnit": [
+      {
+        "input": {
+          "Name": "AccountingOU",
+          "OrganizationalUnitId": "ou-examplerootid111-exampleouid111"
+        },
+        "output": {
+          "OrganizationalUnit": {
+            "Arn": "arn:aws:organizations::111111111111:ou/o-exampleorgid/ou-examplerootid111-exampleouid111",
+            "Id": "ou-examplerootid111-exampleouid111",
+            "Name": "AccountingOU"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows how to rename an OU. The output confirms the new name:/n/n",
+        "id": "to-rename-an-organizational-unit",
+        "title": "To rename an organizational unit"
+      }
+    ],
+    "UpdatePolicy": [
+      {
+        "input": {
+          "Description": "This description replaces the original.",
+          "Name": "Renamed-Policy",
+          "PolicyId": "p-examplepolicyid111"
+        },
+        "output": {
+          "Policy": {
+            "Content": "{ \"Version\": \"2012-10-17\", \"Statement\": { \"Effect\": \"Allow\", \"Action\": \"ec2:*\", \"Resource\": \"*\" } }",
+            "PolicySummary": {
+              "Arn": "arn:aws:organizations::111111111111:policy/o-exampleorgid/service_control_policy/p-examplepolicyid111",
+              "AwsManaged": false,
+              "Description": "This description replaces the original.",
+              "Id": "p-examplepolicyid111",
+              "Name": "Renamed-Policy",
+              "Type": "SERVICE_CONTROL_POLICY"
+            }
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows how to rename a policy and give it a new description and new content. The output confirms the new name and description text:/n/n",
+        "id": "to-update-the-details-of-a-policy",
+        "title": "To update the details of a policy"
+      },
+      {
+        "input": {
+          "Content": "{ \\\"Version\\\": \\\"2012-10-17\\\", \\\"Statement\\\": {\\\"Effect\\\": \\\"Allow\\\", \\\"Action\\\": \\\"s3:*\\\", \\\"Resource\\\": \\\"*\\\" } }",
+          "PolicyId": "p-examplepolicyid111"
+        },
+        "output": {
+          "Policy": {
+            "Content": "{ \\\"Version\\\": \\\"2012-10-17\\\", \\\"Statement\\\": { \\\"Effect\\\": \\\"Allow\\\", \\\"Action\\\": \\\"s3:*\\\", \\\"Resource\\\": \\\"*\\\" } }",
+            "PolicySummary": {
+              "Arn": "arn:aws:organizations::111111111111:policy/o-exampleorgid/service_control_policy/p-examplepolicyid111",
+              "AwsManaged": false,
+              "Description": "This description replaces the original.",
+              "Id": "p-examplepolicyid111",
+              "Name": "Renamed-Policy",
+              "Type": "SERVICE_CONTROL_POLICY"
+            }
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows how to replace the JSON text of the SCP from the preceding example with a new JSON policy text string that allows S3 actions instead of EC2 actions:/n/n",
+        "id": "to-update-the-content-of-a-policy",
+        "title": "To update the content of a policy"
+      }
+    ]
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/organizations/2016-11-28/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/organizations/2016-11-28/paginators-1.json
new file mode 100644
index 00000000..0f05c577
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/organizations/2016-11-28/paginators-1.json
@@ -0,0 +1,99 @@
+{
+  "pagination": {
+    "ListAccounts": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Accounts"
+    },
+    "ListAccountsForParent": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Accounts"
+    },
+    "ListChildren": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Children"
+    },
+    "ListCreateAccountStatus": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "CreateAccountStatuses"
+    },
+    "ListHandshakesForAccount": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Handshakes"
+    },
+    "ListHandshakesForOrganization": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Handshakes"
+    },
+    "ListOrganizationalUnitsForParent": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "OrganizationalUnits"
+    },
+    "ListParents": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Parents"
+    },
+    "ListPolicies": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Policies"
+    },
+    "ListPoliciesForTarget": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Policies"
+    },
+    "ListRoots": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Roots"
+    },
+    "ListTargetsForPolicy": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Targets"
+    },
+    "ListAWSServiceAccessForOrganization": {
+      "result_key": "EnabledServicePrincipals",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListTagsForResource": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "Tags"
+    },
+    "ListDelegatedAdministrators": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "DelegatedAdministrators"
+    },
+    "ListDelegatedServicesForAccount": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "DelegatedServices"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/organizations/2016-11-28/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/organizations/2016-11-28/service-2.json.gz
new file mode 100644
index 00000000..483c200b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/organizations/2016-11-28/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/osis/2022-01-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/osis/2022-01-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..fa236bef
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/osis/2022-01-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/osis/2022-01-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/osis/2022-01-01/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/osis/2022-01-01/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/osis/2022-01-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/osis/2022-01-01/service-2.json.gz
new file mode 100644
index 00000000..63a5fe51
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/osis/2022-01-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/outposts/2019-12-03/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/outposts/2019-12-03/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..b054e4d0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/outposts/2019-12-03/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/outposts/2019-12-03/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/outposts/2019-12-03/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/outposts/2019-12-03/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/outposts/2019-12-03/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/outposts/2019-12-03/paginators-1.json
new file mode 100644
index 00000000..12a518c5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/outposts/2019-12-03/paginators-1.json
@@ -0,0 +1,64 @@
+{
+  "pagination": {
+    "GetOutpostInstanceTypes": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "InstanceTypes"
+    },
+    "ListAssets": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Assets"
+    },
+    "ListCatalogItems": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "CatalogItems"
+    },
+    "ListOrders": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Orders"
+    },
+    "ListOutposts": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Outposts"
+    },
+    "ListSites": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Sites"
+    },
+    "GetOutpostSupportedInstanceTypes": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "InstanceTypes"
+    },
+    "ListCapacityTasks": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "CapacityTasks"
+    },
+    "ListAssetInstances": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "AssetInstances"
+    },
+    "ListBlockingInstancesForCapacityTask": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "BlockingInstances"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/outposts/2019-12-03/paginators-1.sdk-extras.json b/.venv/lib/python3.12/site-packages/botocore/data/outposts/2019-12-03/paginators-1.sdk-extras.json
new file mode 100644
index 00000000..f13d39be
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/outposts/2019-12-03/paginators-1.sdk-extras.json
@@ -0,0 +1,13 @@
+{
+  "version": 1.0,
+  "merge": {
+    "pagination": {
+      "GetOutpostInstanceTypes": {
+        "non_aggregate_keys": [
+          "OutpostArn",
+          "OutpostId"
+        ]
+      }
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/outposts/2019-12-03/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/outposts/2019-12-03/service-2.json.gz
new file mode 100644
index 00000000..b18dd770
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/outposts/2019-12-03/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/panorama/2019-07-24/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/panorama/2019-07-24/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..a550cbab
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/panorama/2019-07-24/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/panorama/2019-07-24/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/panorama/2019-07-24/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/panorama/2019-07-24/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/panorama/2019-07-24/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/panorama/2019-07-24/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/panorama/2019-07-24/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/panorama/2019-07-24/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/panorama/2019-07-24/service-2.json.gz
new file mode 100644
index 00000000..90796e42
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/panorama/2019-07-24/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/partitions.json b/.venv/lib/python3.12/site-packages/botocore/data/partitions.json
new file mode 100644
index 00000000..e19224f1
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/partitions.json
@@ -0,0 +1,239 @@
+{
+  "partitions" : [ {
+    "id" : "aws",
+    "outputs" : {
+      "dnsSuffix" : "amazonaws.com",
+      "dualStackDnsSuffix" : "api.aws",
+      "implicitGlobalRegion" : "us-east-1",
+      "name" : "aws",
+      "supportsDualStack" : true,
+      "supportsFIPS" : true
+    },
+    "regionRegex" : "^(us|eu|ap|sa|ca|me|af|il|mx)\\-\\w+\\-\\d+$",
+    "regions" : {
+      "af-south-1" : {
+        "description" : "Africa (Cape Town)"
+      },
+      "ap-east-1" : {
+        "description" : "Asia Pacific (Hong Kong)"
+      },
+      "ap-northeast-1" : {
+        "description" : "Asia Pacific (Tokyo)"
+      },
+      "ap-northeast-2" : {
+        "description" : "Asia Pacific (Seoul)"
+      },
+      "ap-northeast-3" : {
+        "description" : "Asia Pacific (Osaka)"
+      },
+      "ap-south-1" : {
+        "description" : "Asia Pacific (Mumbai)"
+      },
+      "ap-south-2" : {
+        "description" : "Asia Pacific (Hyderabad)"
+      },
+      "ap-southeast-1" : {
+        "description" : "Asia Pacific (Singapore)"
+      },
+      "ap-southeast-2" : {
+        "description" : "Asia Pacific (Sydney)"
+      },
+      "ap-southeast-3" : {
+        "description" : "Asia Pacific (Jakarta)"
+      },
+      "ap-southeast-4" : {
+        "description" : "Asia Pacific (Melbourne)"
+      },
+      "ap-southeast-5" : {
+        "description" : "Asia Pacific (Malaysia)"
+      },
+      "ap-southeast-7" : {
+        "description" : "Asia Pacific (Thailand)"
+      },
+      "aws-global" : {
+        "description" : "AWS Standard global region"
+      },
+      "ca-central-1" : {
+        "description" : "Canada (Central)"
+      },
+      "ca-west-1" : {
+        "description" : "Canada West (Calgary)"
+      },
+      "eu-central-1" : {
+        "description" : "Europe (Frankfurt)"
+      },
+      "eu-central-2" : {
+        "description" : "Europe (Zurich)"
+      },
+      "eu-north-1" : {
+        "description" : "Europe (Stockholm)"
+      },
+      "eu-south-1" : {
+        "description" : "Europe (Milan)"
+      },
+      "eu-south-2" : {
+        "description" : "Europe (Spain)"
+      },
+      "eu-west-1" : {
+        "description" : "Europe (Ireland)"
+      },
+      "eu-west-2" : {
+        "description" : "Europe (London)"
+      },
+      "eu-west-3" : {
+        "description" : "Europe (Paris)"
+      },
+      "il-central-1" : {
+        "description" : "Israel (Tel Aviv)"
+      },
+      "me-central-1" : {
+        "description" : "Middle East (UAE)"
+      },
+      "me-south-1" : {
+        "description" : "Middle East (Bahrain)"
+      },
+      "mx-central-1" : {
+        "description" : "Mexico (Central)"
+      },
+      "sa-east-1" : {
+        "description" : "South America (Sao Paulo)"
+      },
+      "us-east-1" : {
+        "description" : "US East (N. Virginia)"
+      },
+      "us-east-2" : {
+        "description" : "US East (Ohio)"
+      },
+      "us-west-1" : {
+        "description" : "US West (N. California)"
+      },
+      "us-west-2" : {
+        "description" : "US West (Oregon)"
+      }
+    }
+  }, {
+    "id" : "aws-cn",
+    "outputs" : {
+      "dnsSuffix" : "amazonaws.com.cn",
+      "dualStackDnsSuffix" : "api.amazonwebservices.com.cn",
+      "implicitGlobalRegion" : "cn-northwest-1",
+      "name" : "aws-cn",
+      "supportsDualStack" : true,
+      "supportsFIPS" : true
+    },
+    "regionRegex" : "^cn\\-\\w+\\-\\d+$",
+    "regions" : {
+      "aws-cn-global" : {
+        "description" : "AWS China global region"
+      },
+      "cn-north-1" : {
+        "description" : "China (Beijing)"
+      },
+      "cn-northwest-1" : {
+        "description" : "China (Ningxia)"
+      }
+    }
+  }, {
+    "id" : "aws-us-gov",
+    "outputs" : {
+      "dnsSuffix" : "amazonaws.com",
+      "dualStackDnsSuffix" : "api.aws",
+      "implicitGlobalRegion" : "us-gov-west-1",
+      "name" : "aws-us-gov",
+      "supportsDualStack" : true,
+      "supportsFIPS" : true
+    },
+    "regionRegex" : "^us\\-gov\\-\\w+\\-\\d+$",
+    "regions" : {
+      "aws-us-gov-global" : {
+        "description" : "AWS GovCloud (US) global region"
+      },
+      "us-gov-east-1" : {
+        "description" : "AWS GovCloud (US-East)"
+      },
+      "us-gov-west-1" : {
+        "description" : "AWS GovCloud (US-West)"
+      }
+    }
+  }, {
+    "id" : "aws-iso",
+    "outputs" : {
+      "dnsSuffix" : "c2s.ic.gov",
+      "dualStackDnsSuffix" : "c2s.ic.gov",
+      "implicitGlobalRegion" : "us-iso-east-1",
+      "name" : "aws-iso",
+      "supportsDualStack" : false,
+      "supportsFIPS" : true
+    },
+    "regionRegex" : "^us\\-iso\\-\\w+\\-\\d+$",
+    "regions" : {
+      "aws-iso-global" : {
+        "description" : "AWS ISO (US) global region"
+      },
+      "us-iso-east-1" : {
+        "description" : "US ISO East"
+      },
+      "us-iso-west-1" : {
+        "description" : "US ISO WEST"
+      }
+    }
+  }, {
+    "id" : "aws-iso-b",
+    "outputs" : {
+      "dnsSuffix" : "sc2s.sgov.gov",
+      "dualStackDnsSuffix" : "sc2s.sgov.gov",
+      "implicitGlobalRegion" : "us-isob-east-1",
+      "name" : "aws-iso-b",
+      "supportsDualStack" : false,
+      "supportsFIPS" : true
+    },
+    "regionRegex" : "^us\\-isob\\-\\w+\\-\\d+$",
+    "regions" : {
+      "aws-iso-b-global" : {
+        "description" : "AWS ISOB (US) global region"
+      },
+      "us-isob-east-1" : {
+        "description" : "US ISOB East (Ohio)"
+      }
+    }
+  }, {
+    "id" : "aws-iso-e",
+    "outputs" : {
+      "dnsSuffix" : "cloud.adc-e.uk",
+      "dualStackDnsSuffix" : "cloud.adc-e.uk",
+      "implicitGlobalRegion" : "eu-isoe-west-1",
+      "name" : "aws-iso-e",
+      "supportsDualStack" : false,
+      "supportsFIPS" : true
+    },
+    "regionRegex" : "^eu\\-isoe\\-\\w+\\-\\d+$",
+    "regions" : {
+      "eu-isoe-west-1" : {
+        "description" : "EU ISOE West"
+      }
+    }
+  }, {
+    "id" : "aws-iso-f",
+    "outputs" : {
+      "dnsSuffix" : "csp.hci.ic.gov",
+      "dualStackDnsSuffix" : "csp.hci.ic.gov",
+      "implicitGlobalRegion" : "us-isof-south-1",
+      "name" : "aws-iso-f",
+      "supportsDualStack" : false,
+      "supportsFIPS" : true
+    },
+    "regionRegex" : "^us\\-isof\\-\\w+\\-\\d+$",
+    "regions" : {
+      "aws-iso-f-global" : {
+        "description" : "AWS ISOF global region"
+      },
+      "us-isof-east-1" : {
+        "description" : "US ISOF EAST"
+      },
+      "us-isof-south-1" : {
+        "description" : "US ISOF SOUTH"
+      }
+    }
+  } ],
+  "version" : "1.1"
+}
\ No newline at end of file
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/partnercentral-selling/2022-07-26/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/partnercentral-selling/2022-07-26/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..7f636dc8
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/partnercentral-selling/2022-07-26/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/partnercentral-selling/2022-07-26/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/partnercentral-selling/2022-07-26/paginators-1.json
new file mode 100644
index 00000000..db4f336b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/partnercentral-selling/2022-07-26/paginators-1.json
@@ -0,0 +1,64 @@
+{
+  "pagination": {
+    "ListEngagementInvitations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "EngagementInvitationSummaries"
+    },
+    "ListOpportunities": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "OpportunitySummaries"
+    },
+    "ListSolutions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "SolutionSummaries"
+    },
+    "ListEngagementByAcceptingInvitationTasks": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "TaskSummaries"
+    },
+    "ListEngagementFromOpportunityTasks": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "TaskSummaries"
+    },
+    "ListEngagementMembers": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "EngagementMemberList"
+    },
+    "ListEngagementResourceAssociations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "EngagementResourceAssociationSummaries"
+    },
+    "ListEngagements": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "EngagementSummaryList"
+    },
+    "ListResourceSnapshotJobs": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ResourceSnapshotJobSummaries"
+    },
+    "ListResourceSnapshots": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ResourceSnapshotSummaries"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/partnercentral-selling/2022-07-26/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/partnercentral-selling/2022-07-26/service-2.json.gz
new file mode 100644
index 00000000..a692b20a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/partnercentral-selling/2022-07-26/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/payment-cryptography-data/2022-02-03/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/payment-cryptography-data/2022-02-03/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..06d57220
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/payment-cryptography-data/2022-02-03/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/payment-cryptography-data/2022-02-03/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/payment-cryptography-data/2022-02-03/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/payment-cryptography-data/2022-02-03/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/payment-cryptography-data/2022-02-03/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/payment-cryptography-data/2022-02-03/service-2.json.gz
new file mode 100644
index 00000000..5f6e8a73
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/payment-cryptography-data/2022-02-03/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/payment-cryptography-data/2022-02-03/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/payment-cryptography-data/2022-02-03/waiters-2.json
new file mode 100644
index 00000000..13f60ee6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/payment-cryptography-data/2022-02-03/waiters-2.json
@@ -0,0 +1,5 @@
+{
+  "version": 2,
+  "waiters": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/payment-cryptography/2021-09-14/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/payment-cryptography/2021-09-14/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..a45cf1aa
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/payment-cryptography/2021-09-14/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/payment-cryptography/2021-09-14/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/payment-cryptography/2021-09-14/paginators-1.json
new file mode 100644
index 00000000..02af499b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/payment-cryptography/2021-09-14/paginators-1.json
@@ -0,0 +1,22 @@
+{
+  "pagination": {
+    "ListAliases": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Aliases"
+    },
+    "ListKeys": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Keys"
+    },
+    "ListTagsForResource": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Tags"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/payment-cryptography/2021-09-14/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/payment-cryptography/2021-09-14/service-2.json.gz
new file mode 100644
index 00000000..30fb0218
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/payment-cryptography/2021-09-14/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/payment-cryptography/2021-09-14/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/payment-cryptography/2021-09-14/waiters-2.json
new file mode 100644
index 00000000..13f60ee6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/payment-cryptography/2021-09-14/waiters-2.json
@@ -0,0 +1,5 @@
+{
+  "version": 2,
+  "waiters": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/pca-connector-ad/2018-05-10/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/pca-connector-ad/2018-05-10/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..fd9ec161
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/pca-connector-ad/2018-05-10/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/pca-connector-ad/2018-05-10/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/pca-connector-ad/2018-05-10/paginators-1.json
new file mode 100644
index 00000000..89234776
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/pca-connector-ad/2018-05-10/paginators-1.json
@@ -0,0 +1,34 @@
+{
+  "pagination": {
+    "ListConnectors": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Connectors"
+    },
+    "ListDirectoryRegistrations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "DirectoryRegistrations"
+    },
+    "ListServicePrincipalNames": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ServicePrincipalNames"
+    },
+    "ListTemplateGroupAccessControlEntries": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "AccessControlEntries"
+    },
+    "ListTemplates": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Templates"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/pca-connector-ad/2018-05-10/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/pca-connector-ad/2018-05-10/service-2.json.gz
new file mode 100644
index 00000000..d8d0e874
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/pca-connector-ad/2018-05-10/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/pca-connector-scep/2018-05-10/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/pca-connector-scep/2018-05-10/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..19f6e349
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/pca-connector-scep/2018-05-10/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/pca-connector-scep/2018-05-10/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/pca-connector-scep/2018-05-10/paginators-1.json
new file mode 100644
index 00000000..7a913db5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/pca-connector-scep/2018-05-10/paginators-1.json
@@ -0,0 +1,16 @@
+{
+  "pagination": {
+    "ListChallengeMetadata": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Challenges"
+    },
+    "ListConnectors": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Connectors"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/pca-connector-scep/2018-05-10/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/pca-connector-scep/2018-05-10/service-2.json.gz
new file mode 100644
index 00000000..9f40e719
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/pca-connector-scep/2018-05-10/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/pca-connector-scep/2018-05-10/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/pca-connector-scep/2018-05-10/waiters-2.json
new file mode 100644
index 00000000..13f60ee6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/pca-connector-scep/2018-05-10/waiters-2.json
@@ -0,0 +1,5 @@
+{
+  "version": 2,
+  "waiters": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/pcs/2023-02-10/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/pcs/2023-02-10/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..21ddd235
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/pcs/2023-02-10/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/pcs/2023-02-10/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/pcs/2023-02-10/paginators-1.json
new file mode 100644
index 00000000..555a266b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/pcs/2023-02-10/paginators-1.json
@@ -0,0 +1,22 @@
+{
+  "pagination": {
+    "ListClusters": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "clusters"
+    },
+    "ListComputeNodeGroups": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "computeNodeGroups"
+    },
+    "ListQueues": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "queues"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/pcs/2023-02-10/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/pcs/2023-02-10/service-2.json.gz
new file mode 100644
index 00000000..f87e1f46
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/pcs/2023-02-10/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/pcs/2023-02-10/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/pcs/2023-02-10/waiters-2.json
new file mode 100644
index 00000000..13f60ee6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/pcs/2023-02-10/waiters-2.json
@@ -0,0 +1,5 @@
+{
+  "version": 2,
+  "waiters": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/personalize-events/2018-03-22/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/personalize-events/2018-03-22/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..f4c19c94
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/personalize-events/2018-03-22/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/personalize-events/2018-03-22/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/personalize-events/2018-03-22/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/personalize-events/2018-03-22/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/personalize-events/2018-03-22/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/personalize-events/2018-03-22/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/personalize-events/2018-03-22/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/personalize-events/2018-03-22/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/personalize-events/2018-03-22/service-2.json.gz
new file mode 100644
index 00000000..aa83e7a3
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/personalize-events/2018-03-22/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/personalize-runtime/2018-05-22/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/personalize-runtime/2018-05-22/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..2a5a6d0e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/personalize-runtime/2018-05-22/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/personalize-runtime/2018-05-22/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/personalize-runtime/2018-05-22/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/personalize-runtime/2018-05-22/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/personalize-runtime/2018-05-22/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/personalize-runtime/2018-05-22/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/personalize-runtime/2018-05-22/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/personalize-runtime/2018-05-22/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/personalize-runtime/2018-05-22/service-2.json.gz
new file mode 100644
index 00000000..7de98ab1
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/personalize-runtime/2018-05-22/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/personalize/2018-05-22/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/personalize/2018-05-22/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..6a614954
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/personalize/2018-05-22/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/personalize/2018-05-22/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/personalize/2018-05-22/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/personalize/2018-05-22/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/personalize/2018-05-22/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/personalize/2018-05-22/paginators-1.json
new file mode 100644
index 00000000..ea43852f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/personalize/2018-05-22/paginators-1.json
@@ -0,0 +1,100 @@
+{
+  "pagination": {
+    "ListCampaigns": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "campaigns"
+    },
+    "ListDatasetGroups": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "datasetGroups"
+    },
+    "ListDatasetImportJobs": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "datasetImportJobs"
+    },
+    "ListDatasets": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "datasets"
+    },
+    "ListEventTrackers": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "eventTrackers"
+    },
+    "ListRecipes": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "recipes"
+    },
+    "ListSchemas": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "schemas"
+    },
+    "ListSolutionVersions": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "solutionVersions"
+    },
+    "ListSolutions": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "solutions"
+    },
+    "ListBatchInferenceJobs": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "batchInferenceJobs"
+    },
+    "ListDatasetExportJobs": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "datasetExportJobs"
+    },
+    "ListFilters": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "Filters"
+    },
+    "ListBatchSegmentJobs": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "batchSegmentJobs"
+    },
+    "ListRecommenders": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "recommenders"
+    },
+    "ListMetricAttributionMetrics": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "metrics"
+    },
+    "ListMetricAttributions": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "metricAttributions"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/personalize/2018-05-22/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/personalize/2018-05-22/service-2.json.gz
new file mode 100644
index 00000000..bad7f036
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/personalize/2018-05-22/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/pi/2018-02-27/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/pi/2018-02-27/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..982b38f3
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/pi/2018-02-27/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/pi/2018-02-27/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/pi/2018-02-27/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/pi/2018-02-27/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/pi/2018-02-27/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/pi/2018-02-27/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/pi/2018-02-27/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/pi/2018-02-27/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/pi/2018-02-27/service-2.json.gz
new file mode 100644
index 00000000..3953cede
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/pi/2018-02-27/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/pinpoint-email/2018-07-26/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/pinpoint-email/2018-07-26/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..63367167
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/pinpoint-email/2018-07-26/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/pinpoint-email/2018-07-26/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/pinpoint-email/2018-07-26/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/pinpoint-email/2018-07-26/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/pinpoint-email/2018-07-26/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/pinpoint-email/2018-07-26/paginators-1.json
new file mode 100644
index 00000000..f2693b19
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/pinpoint-email/2018-07-26/paginators-1.json
@@ -0,0 +1,34 @@
+{
+  "pagination": {
+    "GetDedicatedIps": {
+      "input_token": "NextToken",
+      "limit_key": "PageSize",
+      "output_token": "NextToken",
+      "result_key": "DedicatedIps"
+    },
+    "ListConfigurationSets": {
+      "input_token": "NextToken",
+      "limit_key": "PageSize",
+      "output_token": "NextToken",
+      "result_key": "ConfigurationSets"
+    },
+    "ListDedicatedIpPools": {
+      "input_token": "NextToken",
+      "limit_key": "PageSize",
+      "output_token": "NextToken",
+      "result_key": "DedicatedIpPools"
+    },
+    "ListDeliverabilityTestReports": {
+      "input_token": "NextToken",
+      "limit_key": "PageSize",
+      "output_token": "NextToken",
+      "result_key": "DeliverabilityTestReports"
+    },
+    "ListEmailIdentities": {
+      "input_token": "NextToken",
+      "limit_key": "PageSize",
+      "output_token": "NextToken",
+      "result_key": "EmailIdentities"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/pinpoint-email/2018-07-26/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/pinpoint-email/2018-07-26/service-2.json.gz
new file mode 100644
index 00000000..079883d0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/pinpoint-email/2018-07-26/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/pinpoint-sms-voice-v2/2022-03-31/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/pinpoint-sms-voice-v2/2022-03-31/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..d1cc3591
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/pinpoint-sms-voice-v2/2022-03-31/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/pinpoint-sms-voice-v2/2022-03-31/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/pinpoint-sms-voice-v2/2022-03-31/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/pinpoint-sms-voice-v2/2022-03-31/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/pinpoint-sms-voice-v2/2022-03-31/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/pinpoint-sms-voice-v2/2022-03-31/paginators-1.json
new file mode 100644
index 00000000..8c4ea30e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/pinpoint-sms-voice-v2/2022-03-31/paginators-1.json
@@ -0,0 +1,136 @@
+{
+  "pagination": {
+    "DescribeAccountAttributes": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "AccountAttributes"
+    },
+    "DescribeAccountLimits": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "AccountLimits"
+    },
+    "DescribeConfigurationSets": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ConfigurationSets"
+    },
+    "DescribeKeywords": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Keywords"
+    },
+    "DescribeOptOutLists": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "OptOutLists"
+    },
+    "DescribeOptedOutNumbers": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "OptedOutNumbers"
+    },
+    "DescribePhoneNumbers": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "PhoneNumbers"
+    },
+    "DescribePools": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Pools"
+    },
+    "DescribeSenderIds": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "SenderIds"
+    },
+    "DescribeSpendLimits": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "SpendLimits"
+    },
+    "ListPoolOriginationIdentities": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "OriginationIdentities"
+    },
+    "DescribeRegistrationAttachments": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "RegistrationAttachments"
+    },
+    "DescribeRegistrationFieldDefinitions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "RegistrationFieldDefinitions"
+    },
+    "DescribeRegistrationFieldValues": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "RegistrationFieldValues"
+    },
+    "DescribeRegistrationSectionDefinitions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "RegistrationSectionDefinitions"
+    },
+    "DescribeRegistrationTypeDefinitions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "RegistrationTypeDefinitions"
+    },
+    "DescribeRegistrationVersions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "RegistrationVersions"
+    },
+    "DescribeRegistrations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Registrations"
+    },
+    "DescribeVerifiedDestinationNumbers": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "VerifiedDestinationNumbers"
+    },
+    "ListRegistrationAssociations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "RegistrationAssociations"
+    },
+    "DescribeProtectConfigurations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ProtectConfigurations"
+    },
+    "ListProtectConfigurationRuleSetNumberOverrides": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "RuleSetNumberOverrides"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/pinpoint-sms-voice-v2/2022-03-31/paginators-1.sdk-extras.json b/.venv/lib/python3.12/site-packages/botocore/data/pinpoint-sms-voice-v2/2022-03-31/paginators-1.sdk-extras.json
new file mode 100644
index 00000000..581feaa8
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/pinpoint-sms-voice-v2/2022-03-31/paginators-1.sdk-extras.json
@@ -0,0 +1,61 @@
+{
+  "version": 1.0,
+  "merge": {
+    "pagination": {
+      "DescribeKeywords": {
+        "non_aggregate_keys": [
+          "OriginationIdentity",
+          "OriginationIdentityArn"
+        ]
+      },
+      "DescribeRegistrationFieldDefinitions": {
+        "non_aggregate_keys": [
+          "RegistrationType"
+        ]
+      },
+      "DescribeRegistrationFieldValues": {
+        "non_aggregate_keys": [
+          "RegistrationId",
+          "RegistrationArn",
+          "VersionNumber"
+        ]
+      },
+      "DescribeRegistrationSectionDefinitions": {
+        "non_aggregate_keys": [
+          "RegistrationType"
+        ]
+      },
+      "DescribeRegistrationVersions": {
+        "non_aggregate_keys": [
+          "RegistrationId",
+          "RegistrationArn"
+        ]
+      },
+      "DescribeOptedOutNumbers": {
+        "non_aggregate_keys": [
+          "OptOutListArn",
+          "OptOutListName"
+        ]
+      },
+      "ListPoolOriginationIdentities": {
+        "non_aggregate_keys": [
+          "PoolArn",
+          "PoolId"
+        ]
+      },
+      "ListProtectConfigurationRuleSetNumberOverrides": {
+          "non_aggregate_keys": [
+            "ProtectConfigurationId",
+            "ProtectConfigurationArn"
+          ]
+      },
+      "ListRegistrationAssociations": {
+        "non_aggregate_keys": [
+          "RegistrationId",
+          "RegistrationArn",
+          "RegistrationType"
+        ]
+      }
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/pinpoint-sms-voice-v2/2022-03-31/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/pinpoint-sms-voice-v2/2022-03-31/service-2.json.gz
new file mode 100644
index 00000000..6ee51961
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/pinpoint-sms-voice-v2/2022-03-31/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/pinpoint-sms-voice-v2/2022-03-31/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/pinpoint-sms-voice-v2/2022-03-31/waiters-2.json
new file mode 100644
index 00000000..13f60ee6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/pinpoint-sms-voice-v2/2022-03-31/waiters-2.json
@@ -0,0 +1,5 @@
+{
+  "version": 2,
+  "waiters": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/pinpoint-sms-voice/2018-09-05/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/pinpoint-sms-voice/2018-09-05/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..27c14291
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/pinpoint-sms-voice/2018-09-05/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/pinpoint-sms-voice/2018-09-05/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/pinpoint-sms-voice/2018-09-05/service-2.json.gz
new file mode 100644
index 00000000..9976c2de
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/pinpoint-sms-voice/2018-09-05/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/pinpoint/2016-12-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/pinpoint/2016-12-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..ed69b115
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/pinpoint/2016-12-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/pinpoint/2016-12-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/pinpoint/2016-12-01/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/pinpoint/2016-12-01/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/pinpoint/2016-12-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/pinpoint/2016-12-01/service-2.json.gz
new file mode 100644
index 00000000..46c06a24
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/pinpoint/2016-12-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/pipes/2015-10-07/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/pipes/2015-10-07/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..8beec8a0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/pipes/2015-10-07/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/pipes/2015-10-07/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/pipes/2015-10-07/paginators-1.json
new file mode 100644
index 00000000..4663077c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/pipes/2015-10-07/paginators-1.json
@@ -0,0 +1,10 @@
+{
+  "pagination": {
+    "ListPipes": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "Limit",
+      "result_key": "Pipes"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/pipes/2015-10-07/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/pipes/2015-10-07/service-2.json.gz
new file mode 100644
index 00000000..813a4fd1
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/pipes/2015-10-07/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/pipes/2015-10-07/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/pipes/2015-10-07/waiters-2.json
new file mode 100644
index 00000000..13f60ee6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/pipes/2015-10-07/waiters-2.json
@@ -0,0 +1,5 @@
+{
+  "version": 2,
+  "waiters": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/polly/2016-06-10/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/polly/2016-06-10/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..9a3c1365
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/polly/2016-06-10/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/polly/2016-06-10/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/polly/2016-06-10/examples-1.json
new file mode 100644
index 00000000..a0e354e0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/polly/2016-06-10/examples-1.json
@@ -0,0 +1,171 @@
+{
+  "version": "1.0",
+  "examples": {
+    "DeleteLexicon": [
+      {
+        "input": {
+          "Name": "example"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Deletes a specified pronunciation lexicon stored in an AWS Region.",
+        "id": "to-delete-a-lexicon-1481922498332",
+        "title": "To delete a lexicon"
+      }
+    ],
+    "DescribeVoices": [
+      {
+        "input": {
+          "LanguageCode": "en-GB"
+        },
+        "output": {
+          "Voices": [
+            {
+              "Gender": "Female",
+              "Id": "Emma",
+              "LanguageCode": "en-GB",
+              "LanguageName": "British English",
+              "Name": "Emma"
+            },
+            {
+              "Gender": "Male",
+              "Id": "Brian",
+              "LanguageCode": "en-GB",
+              "LanguageName": "British English",
+              "Name": "Brian"
+            },
+            {
+              "Gender": "Female",
+              "Id": "Amy",
+              "LanguageCode": "en-GB",
+              "LanguageName": "British English",
+              "Name": "Amy"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Returns the list of voices that are available for use when requesting speech synthesis. Displayed languages are those within the specified language code. If no language code is specified, voices for all available languages are displayed.",
+        "id": "to-describe-available-voices-1482180557753",
+        "title": "To describe available voices"
+      }
+    ],
+    "GetLexicon": [
+      {
+        "input": {
+          "Name": ""
+        },
+        "output": {
+          "Lexicon": {
+            "Content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<lexicon version=\"1.0\" \r\n      xmlns=\"http://www.w3.org/2005/01/pronunciation-lexicon\"\r\n      xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" \r\n      xsi:schemaLocation=\"http://www.w3.org/2005/01/pronunciation-lexicon \r\n        http://www.w3.org/TR/2007/CR-pronunciation-lexicon-20071212/pls.xsd\"\r\n      alphabet=\"ipa\" \r\n      xml:lang=\"en-US\">\r\n  <lexeme>\r\n    <grapheme>W3C</grapheme>\r\n    <alias>World Wide Web Consortium</alias>\r\n  </lexeme>\r\n</lexicon>",
+            "Name": "example"
+          },
+          "LexiconAttributes": {
+            "Alphabet": "ipa",
+            "LanguageCode": "en-US",
+            "LastModified": 1478542980.117,
+            "LexemesCount": 1,
+            "LexiconArn": "arn:aws:polly:us-east-1:123456789012:lexicon/example",
+            "Size": 503
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Returns the content of the specified pronunciation lexicon stored in an AWS Region.",
+        "id": "to-retrieve-a-lexicon-1481912870836",
+        "title": "To retrieve a lexicon"
+      }
+    ],
+    "ListLexicons": [
+      {
+        "input": {
+        },
+        "output": {
+          "Lexicons": [
+            {
+              "Attributes": {
+                "Alphabet": "ipa",
+                "LanguageCode": "en-US",
+                "LastModified": 1478542980.117,
+                "LexemesCount": 1,
+                "LexiconArn": "arn:aws:polly:us-east-1:123456789012:lexicon/example",
+                "Size": 503
+              },
+              "Name": "example"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Returns a list of pronunciation lexicons stored in an AWS Region.",
+        "id": "to-list-all-lexicons-in-a-region-1481842106487",
+        "title": "To list all lexicons in a region"
+      }
+    ],
+    "PutLexicon": [
+      {
+        "input": {
+          "Content": "<Lexicon Content>",
+          "Name": "W3C"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Stores a pronunciation lexicon in an AWS Region.",
+        "id": "to-save-a-lexicon-1482272584088",
+        "title": "To save a lexicon"
+      }
+    ],
+    "SynthesizeSpeech": [
+      {
+        "input": {
+          "LexiconNames": [
+            "example"
+          ],
+          "OutputFormat": "mp3",
+          "SampleRate": "8000",
+          "Text": "All Gaul is divided into three parts",
+          "TextType": "text",
+          "VoiceId": "Joanna"
+        },
+        "output": {
+          "AudioStream": "TEXT",
+          "ContentType": "audio/mpeg",
+          "RequestCharacters": 37
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Synthesizes plain text or SSML into a file of human-like speech.",
+        "id": "to-synthesize-speech-1482186064046",
+        "title": "To synthesize speech"
+      }
+    ]
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/polly/2016-06-10/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/polly/2016-06-10/paginators-1.json
new file mode 100644
index 00000000..dc76e7c1
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/polly/2016-06-10/paginators-1.json
@@ -0,0 +1,20 @@
+{
+  "pagination": {
+    "DescribeVoices": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "Voices"
+    },
+    "ListLexicons": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "Lexicons"
+    },
+    "ListSpeechSynthesisTasks": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "SynthesisTasks"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/polly/2016-06-10/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/polly/2016-06-10/service-2.json.gz
new file mode 100644
index 00000000..b877b807
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/polly/2016-06-10/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/pricing/2017-10-15/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/pricing/2017-10-15/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..10cf20cc
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/pricing/2017-10-15/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/pricing/2017-10-15/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/pricing/2017-10-15/examples-1.json
new file mode 100644
index 00000000..abc1c59f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/pricing/2017-10-15/examples-1.json
@@ -0,0 +1,104 @@
+{
+  "version": "1.0",
+  "examples": {
+    "DescribeServices": [
+      {
+        "input": {
+          "FormatVersion": "aws_v1",
+          "MaxResults": 1,
+          "ServiceCode": "AmazonEC2"
+        },
+        "output": {
+          "FormatVersion": "aws_v1",
+          "NextToken": "abcdefg123",
+          "Services": [
+            {
+              "AttributeNames": [
+                "volumeType",
+                "maxIopsvolume",
+                "instanceCapacity10xlarge",
+                "locationType",
+                "operation"
+              ],
+              "ServiceCode": "AmazonEC2"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Retrieves the service for the given Service Code.",
+        "id": "to-retrieve-service-metadata",
+        "title": "To retrieve a list of services and service codes"
+      }
+    ],
+    "GetAttributeValues": [
+      {
+        "input": {
+          "AttributeName": "volumeType",
+          "MaxResults": 2,
+          "ServiceCode": "AmazonEC2"
+        },
+        "output": {
+          "AttributeValues": [
+            {
+              "Value": "Throughput Optimized HDD"
+            },
+            {
+              "Value": "Provisioned IOPS"
+            }
+          ],
+          "NextToken": "GpgauEXAMPLEezucl5LV0w==:7GzYJ0nw0DBTJ2J66EoTIIynE6O1uXwQtTRqioJzQadBnDVgHPzI1en4BUQnPCLpzeBk9RQQAWaFieA4+DapFAGLgk+Z/9/cTw9GldnPOHN98+FdmJP7wKU3QQpQ8MQr5KOeBkIsAqvAQYdL0DkL7tHwPtE5iCEByAmg9gcC/yBU1vAOsf7R3VaNN4M5jMDv3woSWqASSIlBVB6tgW78YL22KhssoItM/jWW+aP6Jqtq4mldxp/ct6DWAl+xLFwHU/CbketimPPXyqHF3/UXDw=="
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This operation returns a list of values available for the given attribute.",
+        "id": "to-retreive-attribute-values",
+        "title": "To retrieve a list of attribute values"
+      }
+    ],
+    "GetProducts": [
+      {
+        "input": {
+          "Filters": [
+            {
+              "Field": "ServiceCode",
+              "Type": "TERM_MATCH",
+              "Value": "AmazonEC2"
+            },
+            {
+              "Field": "volumeType",
+              "Type": "TERM_MATCH",
+              "Value": "Provisioned IOPS"
+            }
+          ],
+          "FormatVersion": "aws_v1",
+          "MaxResults": 1
+        },
+        "output": {
+          "FormatVersion": "aws_v1",
+          "NextToken": "57r3EXAMPLEujbzWfHF7Ciw==:ywSmZsD3mtpQmQLQ5XfOsIMkYybSj+vAT+kGmwMFq+K9DGmIoJkz7lunVeamiOPgthdWSO2a7YKojCO+zY4dJmuNl2QvbNhXs+AJ2Ufn7xGmJncNI2TsEuAsVCUfTAvAQNcwwamtk6XuZ4YdNnooV62FjkV3ZAn40d9+wAxV7+FImvhUHi/+f8afgZdGh2zPUlH8jlV9uUtj0oHp8+DhPUuHXh+WBII1E/aoKpPSm3c=",
+          "PriceList": [
+            "{\"product\":{\"productFamily\":\"Storage\",\"attributes\":{\"storageMedia\":\"SSD-backed\",\"maxThroughputvolume\":\"320 MB/sec\",\"volumeType\":\"Provisioned IOPS\",\"maxIopsvolume\":\"20000\",\"servicecode\":\"AmazonEC2\",\"usagetype\":\"CAN1-EBS:VolumeUsage.piops\",\"locationType\":\"AWS Region\",\"location\":\"Canada (Central)\",\"servicename\":\"Amazon Elastic Compute Cloud\",\"maxVolumeSize\":\"16 TiB\",\"operation\":\"\"},\"sku\":\"WQGC34PB2AWS8R4U\"},\"serviceCode\":\"AmazonEC2\",\"terms\":{\"OnDemand\":{\"WQGC34PB2AWS8R4U.JRTCKXETXF\":{\"priceDimensions\":{\"WQGC34PB2AWS8R4U.JRTCKXETXF.6YS6EN2CT7\":{\"unit\":\"GB-Mo\",\"endRange\":\"Inf\",\"description\":\"$0.138 per GB-month of Provisioned IOPS SSD (io1)  provisioned storage - Canada (Central)\",\"appliesTo\":[],\"rateCode\":\"WQGC34PB2AWS8R4U.JRTCKXETXF.6YS6EN2CT7\",\"beginRange\":\"0\",\"pricePerUnit\":{\"USD\":\"0.1380000000\"}}},\"sku\":\"WQGC34PB2AWS8R4U\",\"effectiveDate\":\"2017-08-01T00:00:00Z\",\"offerTermCode\":\"JRTCKXETXF\",\"termAttributes\":{}}}},\"version\":\"20170901182201\",\"publicationDate\":\"2017-09-01T18:22:01Z\"}"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This operation returns a list of products that match the given criteria.",
+        "id": "to-retrieve-available products",
+        "title": "To retrieve a list of products"
+      }
+    ]
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/pricing/2017-10-15/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/pricing/2017-10-15/paginators-1.json
new file mode 100644
index 00000000..0f2ce4e8
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/pricing/2017-10-15/paginators-1.json
@@ -0,0 +1,34 @@
+{
+  "pagination": {
+    "DescribeServices": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Services",
+      "non_aggregate_keys": [
+        "FormatVersion"
+      ]
+    },
+    "GetAttributeValues": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "AttributeValues"
+    },
+    "GetProducts": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "PriceList",
+      "non_aggregate_keys": [
+        "FormatVersion"
+      ]
+    },
+    "ListPriceLists": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "PriceLists"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/pricing/2017-10-15/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/pricing/2017-10-15/service-2.json.gz
new file mode 100644
index 00000000..b732310c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/pricing/2017-10-15/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/pricing/2017-10-15/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/pricing/2017-10-15/waiters-2.json
new file mode 100644
index 00000000..13f60ee6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/pricing/2017-10-15/waiters-2.json
@@ -0,0 +1,5 @@
+{
+  "version": 2,
+  "waiters": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/privatenetworks/2021-12-03/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/privatenetworks/2021-12-03/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..c608eeef
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/privatenetworks/2021-12-03/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/privatenetworks/2021-12-03/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/privatenetworks/2021-12-03/paginators-1.json
new file mode 100644
index 00000000..8b7d279c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/privatenetworks/2021-12-03/paginators-1.json
@@ -0,0 +1,34 @@
+{
+  "pagination": {
+    "ListDeviceIdentifiers": {
+      "input_token": "startToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "deviceIdentifiers"
+    },
+    "ListNetworkResources": {
+      "input_token": "startToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "networkResources"
+    },
+    "ListNetworkSites": {
+      "input_token": "startToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "networkSites"
+    },
+    "ListNetworks": {
+      "input_token": "startToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "networks"
+    },
+    "ListOrders": {
+      "input_token": "startToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "orders"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/privatenetworks/2021-12-03/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/privatenetworks/2021-12-03/service-2.json.gz
new file mode 100644
index 00000000..a2193b96
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/privatenetworks/2021-12-03/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/proton/2020-07-20/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/proton/2020-07-20/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..70b86ee6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/proton/2020-07-20/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/proton/2020-07-20/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/proton/2020-07-20/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/proton/2020-07-20/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/proton/2020-07-20/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/proton/2020-07-20/paginators-1.json
new file mode 100644
index 00000000..a52075c4
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/proton/2020-07-20/paginators-1.json
@@ -0,0 +1,121 @@
+{
+  "pagination": {
+    "ListEnvironmentAccountConnections": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "environmentAccountConnections"
+    },
+    "ListEnvironmentTemplateVersions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "templateVersions"
+    },
+    "ListEnvironmentTemplates": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "templates"
+    },
+    "ListEnvironments": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "environments"
+    },
+    "ListServiceInstances": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "serviceInstances"
+    },
+    "ListServiceTemplateVersions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "templateVersions"
+    },
+    "ListServiceTemplates": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "templates"
+    },
+    "ListServices": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "services"
+    },
+    "ListTagsForResource": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "tags"
+    },
+    "ListEnvironmentOutputs": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "outputs"
+    },
+    "ListEnvironmentProvisionedResources": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "provisionedResources"
+    },
+    "ListRepositories": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "repositories"
+    },
+    "ListRepositorySyncDefinitions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "syncDefinitions"
+    },
+    "ListServiceInstanceOutputs": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "outputs"
+    },
+    "ListServiceInstanceProvisionedResources": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "provisionedResources"
+    },
+    "ListServicePipelineOutputs": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "outputs"
+    },
+    "ListServicePipelineProvisionedResources": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "provisionedResources"
+    },
+    "ListComponentOutputs": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "outputs"
+    },
+    "ListComponentProvisionedResources": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "provisionedResources"
+    },
+    "ListComponents": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "components"
+    },
+    "ListDeployments": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "deployments"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/proton/2020-07-20/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/proton/2020-07-20/service-2.json.gz
new file mode 100644
index 00000000..e99c2e7a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/proton/2020-07-20/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/proton/2020-07-20/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/proton/2020-07-20/waiters-2.json
new file mode 100644
index 00000000..f99a6fe3
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/proton/2020-07-20/waiters-2.json
@@ -0,0 +1,208 @@
+{
+  "version" : 2,
+  "waiters" : {
+    "ComponentDeleted" : {
+      "description" : "Wait until a Component is deleted. Use this after invoking DeleteComponent",
+      "delay" : 5,
+      "maxAttempts" : 999,
+      "operation" : "GetComponent",
+      "acceptors" : [ {
+        "matcher" : "error",
+        "state" : "success",
+        "expected" : "ResourceNotFoundException"
+      }, {
+        "matcher" : "path",
+        "argument" : "component.deploymentStatus",
+        "state" : "failure",
+        "expected" : "DELETE_FAILED"
+      } ]
+    },
+    "ComponentDeployed" : {
+      "description" : "Wait until a Component is deployed. Use this after invoking CreateComponent or UpdateComponent",
+      "delay" : 5,
+      "maxAttempts" : 999,
+      "operation" : "GetComponent",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "component.deploymentStatus",
+        "state" : "success",
+        "expected" : "SUCCEEDED"
+      }, {
+        "matcher" : "path",
+        "argument" : "component.deploymentStatus",
+        "state" : "failure",
+        "expected" : "FAILED"
+      } ]
+    },
+    "EnvironmentDeployed" : {
+      "description" : "Wait until an Environment is deployed. Use this after invoking CreateEnvironment or UpdateEnvironment",
+      "delay" : 5,
+      "maxAttempts" : 999,
+      "operation" : "GetEnvironment",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "environment.deploymentStatus",
+        "state" : "success",
+        "expected" : "SUCCEEDED"
+      }, {
+        "matcher" : "path",
+        "argument" : "environment.deploymentStatus",
+        "state" : "failure",
+        "expected" : "FAILED"
+      } ]
+    },
+    "EnvironmentTemplateVersionRegistered" : {
+      "description" : "Wait until an EnvironmentTemplateVersion is registered. Use this after invoking CreateEnvironmentTemplateVersion",
+      "delay" : 2,
+      "maxAttempts" : 150,
+      "operation" : "GetEnvironmentTemplateVersion",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "environmentTemplateVersion.status",
+        "state" : "success",
+        "expected" : "DRAFT"
+      }, {
+        "matcher" : "path",
+        "argument" : "environmentTemplateVersion.status",
+        "state" : "success",
+        "expected" : "PUBLISHED"
+      }, {
+        "matcher" : "path",
+        "argument" : "environmentTemplateVersion.status",
+        "state" : "failure",
+        "expected" : "REGISTRATION_FAILED"
+      } ]
+    },
+    "ServiceCreated" : {
+      "description" : "Wait until an Service has deployed its instances and possibly pipeline. Use this after invoking CreateService",
+      "delay" : 5,
+      "maxAttempts" : 999,
+      "operation" : "GetService",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "service.status",
+        "state" : "success",
+        "expected" : "ACTIVE"
+      }, {
+        "matcher" : "path",
+        "argument" : "service.status",
+        "state" : "failure",
+        "expected" : "CREATE_FAILED_CLEANUP_COMPLETE"
+      }, {
+        "matcher" : "path",
+        "argument" : "service.status",
+        "state" : "failure",
+        "expected" : "CREATE_FAILED_CLEANUP_FAILED"
+      }, {
+        "matcher" : "path",
+        "argument" : "service.status",
+        "state" : "failure",
+        "expected" : "CREATE_FAILED"
+      } ]
+    },
+    "ServiceDeleted" : {
+      "description" : "Wait until a Service, its instances, and possibly pipeline have been deleted after DeleteService is invoked",
+      "delay" : 5,
+      "maxAttempts" : 999,
+      "operation" : "GetService",
+      "acceptors" : [ {
+        "matcher" : "error",
+        "state" : "success",
+        "expected" : "ResourceNotFoundException"
+      }, {
+        "matcher" : "path",
+        "argument" : "service.status",
+        "state" : "failure",
+        "expected" : "DELETE_FAILED"
+      } ]
+    },
+    "ServiceInstanceDeployed" : {
+      "description" : "Wait until a ServiceInstance is deployed. Use this after invoking CreateService or UpdateServiceInstance",
+      "delay" : 5,
+      "maxAttempts" : 999,
+      "operation" : "GetServiceInstance",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "serviceInstance.deploymentStatus",
+        "state" : "success",
+        "expected" : "SUCCEEDED"
+      }, {
+        "matcher" : "path",
+        "argument" : "serviceInstance.deploymentStatus",
+        "state" : "failure",
+        "expected" : "FAILED"
+      } ]
+    },
+    "ServicePipelineDeployed" : {
+      "description" : "Wait until an ServicePipeline is deployed. Use this after invoking CreateService or UpdateServicePipeline",
+      "delay" : 10,
+      "maxAttempts" : 360,
+      "operation" : "GetService",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "service.pipeline.deploymentStatus",
+        "state" : "success",
+        "expected" : "SUCCEEDED"
+      }, {
+        "matcher" : "path",
+        "argument" : "service.pipeline.deploymentStatus",
+        "state" : "failure",
+        "expected" : "FAILED"
+      } ]
+    },
+    "ServiceTemplateVersionRegistered" : {
+      "description" : "Wait until a ServiceTemplateVersion is registered. Use this after invoking CreateServiceTemplateVersion",
+      "delay" : 2,
+      "maxAttempts" : 150,
+      "operation" : "GetServiceTemplateVersion",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "serviceTemplateVersion.status",
+        "state" : "success",
+        "expected" : "DRAFT"
+      }, {
+        "matcher" : "path",
+        "argument" : "serviceTemplateVersion.status",
+        "state" : "success",
+        "expected" : "PUBLISHED"
+      }, {
+        "matcher" : "path",
+        "argument" : "serviceTemplateVersion.status",
+        "state" : "failure",
+        "expected" : "REGISTRATION_FAILED"
+      } ]
+    },
+    "ServiceUpdated" : {
+      "description" : "Wait until a Service, its instances, and possibly pipeline have been deployed after UpdateService is invoked",
+      "delay" : 5,
+      "maxAttempts" : 999,
+      "operation" : "GetService",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "service.status",
+        "state" : "success",
+        "expected" : "ACTIVE"
+      }, {
+        "matcher" : "path",
+        "argument" : "service.status",
+        "state" : "failure",
+        "expected" : "UPDATE_FAILED_CLEANUP_COMPLETE"
+      }, {
+        "matcher" : "path",
+        "argument" : "service.status",
+        "state" : "failure",
+        "expected" : "UPDATE_FAILED_CLEANUP_FAILED"
+      }, {
+        "matcher" : "path",
+        "argument" : "service.status",
+        "state" : "failure",
+        "expected" : "UPDATE_FAILED"
+      }, {
+        "matcher" : "path",
+        "argument" : "service.status",
+        "state" : "failure",
+        "expected" : "UPDATE_COMPLETE_CLEANUP_FAILED"
+      } ]
+    }
+  }
+}
\ No newline at end of file
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/qapps/2023-11-27/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/qapps/2023-11-27/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..6a9612c6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/qapps/2023-11-27/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/qapps/2023-11-27/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/qapps/2023-11-27/paginators-1.json
new file mode 100644
index 00000000..0d13e6c2
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/qapps/2023-11-27/paginators-1.json
@@ -0,0 +1,16 @@
+{
+  "pagination": {
+    "ListLibraryItems": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "limit",
+      "result_key": "libraryItems"
+    },
+    "ListQApps": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "limit",
+      "result_key": "apps"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/qapps/2023-11-27/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/qapps/2023-11-27/service-2.json.gz
new file mode 100644
index 00000000..7e82b71c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/qapps/2023-11-27/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/qapps/2023-11-27/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/qapps/2023-11-27/waiters-2.json
new file mode 100644
index 00000000..13f60ee6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/qapps/2023-11-27/waiters-2.json
@@ -0,0 +1,5 @@
+{
+  "version": 2,
+  "waiters": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/qbusiness/2023-11-27/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/qbusiness/2023-11-27/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..a6e7f110
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/qbusiness/2023-11-27/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/qbusiness/2023-11-27/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/qbusiness/2023-11-27/paginators-1.json
new file mode 100644
index 00000000..16c9a5f3
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/qbusiness/2023-11-27/paginators-1.json
@@ -0,0 +1,118 @@
+{
+  "pagination": {
+    "GetChatControlsConfiguration": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "topicConfigurations"
+    },
+    "ListApplications": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "applications"
+    },
+    "ListConversations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "conversations"
+    },
+    "ListDataSourceSyncJobs": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "history"
+    },
+    "ListDataSources": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "dataSources"
+    },
+    "ListDocuments": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "documentDetailList"
+    },
+    "ListGroups": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListIndices": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "indices"
+    },
+    "ListMessages": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "messages"
+    },
+    "ListPlugins": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "plugins"
+    },
+    "ListRetrievers": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "retrievers"
+    },
+    "ListWebExperiences": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "webExperiences"
+    },
+    "ListAttachments": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "attachments"
+    },
+    "ListDataAccessors": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "dataAccessors"
+    },
+    "ListPluginActions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListPluginTypeActions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListPluginTypeMetadata": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "SearchRelevantContent": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "relevantContent"
+    },
+    "ListSubscriptions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "subscriptions"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/qbusiness/2023-11-27/paginators-1.sdk-extras.json b/.venv/lib/python3.12/site-packages/botocore/data/qbusiness/2023-11-27/paginators-1.sdk-extras.json
new file mode 100644
index 00000000..5bb16e2f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/qbusiness/2023-11-27/paginators-1.sdk-extras.json
@@ -0,0 +1,15 @@
+{
+    "version": 1.0,
+    "merge": {
+        "pagination": {
+            "GetChatControlsConfiguration": {
+                "non_aggregate_keys": [
+                    "responseScope",
+                    "blockedPhrases",
+                    "creatorModeConfiguration",
+                    "orchestrationConfiguration"
+                ]
+            }
+        }
+    }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/qbusiness/2023-11-27/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/qbusiness/2023-11-27/service-2.json.gz
new file mode 100644
index 00000000..569dc6a4
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/qbusiness/2023-11-27/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/qbusiness/2023-11-27/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/qbusiness/2023-11-27/waiters-2.json
new file mode 100644
index 00000000..13f60ee6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/qbusiness/2023-11-27/waiters-2.json
@@ -0,0 +1,5 @@
+{
+  "version": 2,
+  "waiters": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/qconnect/2020-10-19/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/qconnect/2020-10-19/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..2d2f2eb8
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/qconnect/2020-10-19/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/qconnect/2020-10-19/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/qconnect/2020-10-19/paginators-1.json
new file mode 100644
index 00000000..53ae6921
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/qconnect/2020-10-19/paginators-1.json
@@ -0,0 +1,130 @@
+{
+  "pagination": {
+    "ListAssistantAssociations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "assistantAssociationSummaries"
+    },
+    "ListAssistants": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "assistantSummaries"
+    },
+    "ListContents": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "contentSummaries"
+    },
+    "ListImportJobs": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "importJobSummaries"
+    },
+    "ListKnowledgeBases": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "knowledgeBaseSummaries"
+    },
+    "ListQuickResponses": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "quickResponseSummaries"
+    },
+    "QueryAssistant": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "results"
+    },
+    "SearchContent": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "contentSummaries"
+    },
+    "SearchQuickResponses": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "results"
+    },
+    "SearchSessions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "sessionSummaries"
+    },
+    "ListContentAssociations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "contentAssociationSummaries"
+    },
+    "ListAIAgentVersions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "aiAgentVersionSummaries"
+    },
+    "ListAIAgents": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "aiAgentSummaries"
+    },
+    "ListAIPromptVersions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "aiPromptVersionSummaries"
+    },
+    "ListAIPrompts": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "aiPromptSummaries"
+    },
+    "ListMessageTemplateVersions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "messageTemplateVersionSummaries"
+    },
+    "ListMessageTemplates": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "messageTemplateSummaries"
+    },
+    "SearchMessageTemplates": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "results"
+    },
+    "ListAIGuardrailVersions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "aiGuardrailVersionSummaries"
+    },
+    "ListAIGuardrails": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "aiGuardrailSummaries"
+    },
+    "ListMessages": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "messages"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/qconnect/2020-10-19/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/qconnect/2020-10-19/service-2.json.gz
new file mode 100644
index 00000000..421562f3
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/qconnect/2020-10-19/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/qldb-session/2019-07-11/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/qldb-session/2019-07-11/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..5cad2605
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/qldb-session/2019-07-11/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/qldb-session/2019-07-11/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/qldb-session/2019-07-11/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/qldb-session/2019-07-11/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/qldb-session/2019-07-11/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/qldb-session/2019-07-11/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/qldb-session/2019-07-11/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/qldb-session/2019-07-11/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/qldb-session/2019-07-11/service-2.json.gz
new file mode 100644
index 00000000..fcfea857
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/qldb-session/2019-07-11/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/qldb/2019-01-02/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/qldb/2019-01-02/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..b34d85ee
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/qldb/2019-01-02/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/qldb/2019-01-02/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/qldb/2019-01-02/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/qldb/2019-01-02/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/qldb/2019-01-02/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/qldb/2019-01-02/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/qldb/2019-01-02/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/qldb/2019-01-02/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/qldb/2019-01-02/service-2.json.gz
new file mode 100644
index 00000000..bfcde9aa
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/qldb/2019-01-02/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/quicksight/2018-04-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/quicksight/2018-04-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..bcc596da
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/quicksight/2018-04-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/quicksight/2018-04-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/quicksight/2018-04-01/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/quicksight/2018-04-01/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/quicksight/2018-04-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/quicksight/2018-04-01/paginators-1.json
new file mode 100644
index 00000000..0312ed2f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/quicksight/2018-04-01/paginators-1.json
@@ -0,0 +1,214 @@
+{
+  "pagination": {
+    "ListAnalyses": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "AnalysisSummaryList"
+    },
+    "ListDashboardVersions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "DashboardVersionSummaryList"
+    },
+    "ListDashboards": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "DashboardSummaryList"
+    },
+    "ListDataSets": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "DataSetSummaries"
+    },
+    "ListDataSources": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "DataSources"
+    },
+    "ListIngestions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Ingestions"
+    },
+    "ListNamespaces": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Namespaces"
+    },
+    "ListTemplateAliases": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "TemplateAliasList"
+    },
+    "ListTemplateVersions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "TemplateVersionSummaryList"
+    },
+    "ListTemplates": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "TemplateSummaryList"
+    },
+    "ListThemeVersions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ThemeVersionSummaryList"
+    },
+    "ListThemes": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ThemeSummaryList"
+    },
+    "SearchAnalyses": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "AnalysisSummaryList"
+    },
+    "SearchDashboards": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "DashboardSummaryList"
+    },
+    "SearchDataSets": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "DataSetSummaries"
+    },
+    "SearchDataSources": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "DataSourceSummaries"
+    },
+    "ListAssetBundleExportJobs": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "AssetBundleExportJobSummaryList"
+    },
+    "ListAssetBundleImportJobs": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "AssetBundleImportJobSummaryList"
+    },
+    "ListGroupMemberships": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "GroupMemberList"
+    },
+    "ListGroups": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "GroupList"
+    },
+    "ListIAMPolicyAssignments": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "IAMPolicyAssignments"
+    },
+    "ListIAMPolicyAssignmentsForUser": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ActiveAssignments"
+    },
+    "ListUserGroups": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "GroupList"
+    },
+    "ListUsers": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "UserList"
+    },
+    "SearchGroups": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "GroupList"
+    },
+    "DescribeFolderPermissions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Permissions"
+    },
+    "DescribeFolderResolvedPermissions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Permissions"
+    },
+    "ListFolderMembers": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "FolderMemberList"
+    },
+    "ListFolders": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "FolderSummaryList"
+    },
+    "SearchFolders": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "FolderSummaryList"
+    },
+    "ListRoleMemberships": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "MembersList"
+    },
+    "ListFoldersForResource": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Folders"
+    },
+    "ListBrands": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Brands"
+    },
+    "ListCustomPermissions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "CustomPermissionsList"
+    },
+    "SearchTopics": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "TopicSummaryList"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/quicksight/2018-04-01/paginators-1.sdk-extras.json b/.venv/lib/python3.12/site-packages/botocore/data/quicksight/2018-04-01/paginators-1.sdk-extras.json
new file mode 100644
index 00000000..d056600e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/quicksight/2018-04-01/paginators-1.sdk-extras.json
@@ -0,0 +1,215 @@
+{
+  "version": 1.0,
+  "merge": {
+    "pagination": {
+      "ListAnalyses": {
+        "non_aggregate_keys": [
+          "Status",
+          "RequestId"
+        ]
+      },
+      "ListDashboardVersions": {
+        "non_aggregate_keys": [
+          "Status",
+          "RequestId"
+        ]
+      },
+      "ListTemplateAliases": {
+        "non_aggregate_keys": [
+          "Status",
+          "RequestId"
+        ]
+      },
+      "ListTemplateVersions": {
+        "non_aggregate_keys": [
+          "Status",
+          "RequestId"
+        ]
+      },
+      "ListTemplates": {
+        "non_aggregate_keys": [
+          "Status",
+          "RequestId"
+        ]
+      },
+      "ListThemeVersions": {
+        "non_aggregate_keys": [
+          "Status",
+          "RequestId"
+        ]
+      },
+      "ListThemes": {
+        "non_aggregate_keys": [
+          "Status",
+          "RequestId"
+        ]
+      },
+      "SearchAnalyses": {
+        "non_aggregate_keys": [
+          "Status",
+          "RequestId"
+        ]
+      },
+      "SearchDashboards": {
+        "non_aggregate_keys": [
+          "Status",
+          "RequestId"
+        ]
+      },
+      "SearchDataSets": {
+        "non_aggregate_keys": [
+          "Status",
+          "RequestId"
+        ]
+      },
+      "SearchDataSources": {
+        "non_aggregate_keys": [
+          "Status",
+          "RequestId"
+        ]
+      },
+      "ListNamespaces": {
+        "non_aggregate_keys": [
+          "Status",
+          "RequestId"
+        ]
+      },
+      "ListIngestions": {
+        "non_aggregate_keys": [
+          "Status",
+          "RequestId"
+        ]
+      },
+      "ListDataSources": {
+        "non_aggregate_keys": [
+          "Status",
+          "RequestId"
+        ]
+      },
+      "ListDataSets": {
+        "non_aggregate_keys": [
+          "Status",
+          "RequestId"
+        ]
+      },
+      "ListDashboards": {
+        "non_aggregate_keys": [
+          "Status",
+          "RequestId"
+        ]
+      },
+      "ListAssetBundleExportJobs": {
+        "non_aggregate_keys": [
+          "Status",
+          "RequestId"
+        ]
+      },
+      "ListAssetBundleImportJobs": {
+        "non_aggregate_keys": [
+          "Status",
+          "RequestId"
+        ]
+      },
+      "ListGroupMemberships": {
+        "non_aggregate_keys": [
+          "Status",
+          "RequestId"
+        ]
+      },
+      "ListGroups": {
+        "non_aggregate_keys": [
+          "Status",
+          "RequestId"
+        ]
+      },
+      "ListIAMPolicyAssignments": {
+        "non_aggregate_keys": [
+          "Status",
+          "RequestId"
+        ]
+      },
+      "ListIAMPolicyAssignmentsForUser": {
+        "non_aggregate_keys": [
+          "Status",
+          "RequestId"
+        ]
+      },
+      "ListUserGroups": {
+        "non_aggregate_keys": [
+          "Status",
+          "RequestId"
+        ]
+      },
+      "ListUsers": {
+        "non_aggregate_keys": [
+          "Status",
+          "RequestId"
+        ]
+      },
+      "SearchGroups": {
+        "non_aggregate_keys": [
+          "Status",
+          "RequestId"
+        ]
+      },
+      "ListFolders": {
+        "non_aggregate_keys": [
+          "Status",
+          "RequestId"
+        ]
+      },
+      "ListFolderMembers": {
+        "non_aggregate_keys": [
+          "Status",
+          "RequestId"
+        ]
+      },
+      "SearchFolders": {
+        "non_aggregate_keys": [
+          "Status",
+          "RequestId"
+        ]
+      },
+      "DescribeFolderPermissions": {
+        "non_aggregate_keys": [
+          "Status",
+          "RequestId",
+          "Arn",
+          "FolderId"
+        ]
+      },
+      "DescribeFolderResolvedPermissions": {
+        "non_aggregate_keys": [
+          "Status",
+          "RequestId",
+          "Arn",
+          "FolderId"
+        ]
+      },
+      "ListRoleMemberships": {
+        "non_aggregate_keys": [
+          "Status",
+          "RequestId"
+        ]
+      },
+      "ListFoldersForResource": {
+        "non_aggregate_keys": [
+          "Status",
+          "RequestId"
+        ]
+      },
+      "ListCustomPermissions": {
+        "non_aggregate_keys": [
+          "Status",
+          "RequestId"
+        ]
+      },
+      "SearchTopics": {
+        "non_aggregate_keys": [
+          "Status",
+          "RequestId"
+        ]
+      }
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/quicksight/2018-04-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/quicksight/2018-04-01/service-2.json.gz
new file mode 100644
index 00000000..e76f8de3
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/quicksight/2018-04-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ram/2018-01-04/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ram/2018-01-04/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..09a4608f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ram/2018-01-04/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ram/2018-01-04/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/ram/2018-01-04/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ram/2018-01-04/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ram/2018-01-04/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/ram/2018-01-04/paginators-1.json
new file mode 100644
index 00000000..ec438a09
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ram/2018-01-04/paginators-1.json
@@ -0,0 +1,40 @@
+{
+  "pagination": {
+    "GetResourcePolicies": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "policies"
+    },
+    "GetResourceShareAssociations": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "resourceShareAssociations"
+    },
+    "GetResourceShareInvitations": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "resourceShareInvitations"
+    },
+    "GetResourceShares": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "resourceShares"
+    },
+    "ListPrincipals": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "principals"
+    },
+    "ListResources": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "resources"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ram/2018-01-04/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ram/2018-01-04/service-2.json.gz
new file mode 100644
index 00000000..136ea680
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ram/2018-01-04/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/rbin/2021-06-15/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/rbin/2021-06-15/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..c979dbcc
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/rbin/2021-06-15/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/rbin/2021-06-15/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/rbin/2021-06-15/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/rbin/2021-06-15/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/rbin/2021-06-15/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/rbin/2021-06-15/paginators-1.json
new file mode 100644
index 00000000..bdbfafb4
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/rbin/2021-06-15/paginators-1.json
@@ -0,0 +1,10 @@
+{
+  "pagination": {
+    "ListRules": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Rules"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/rbin/2021-06-15/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/rbin/2021-06-15/service-2.json.gz
new file mode 100644
index 00000000..911ef02f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/rbin/2021-06-15/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/rds-data/2018-08-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/rds-data/2018-08-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..670f0168
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/rds-data/2018-08-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/rds-data/2018-08-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/rds-data/2018-08-01/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/rds-data/2018-08-01/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/rds-data/2018-08-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/rds-data/2018-08-01/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/rds-data/2018-08-01/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/rds-data/2018-08-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/rds-data/2018-08-01/service-2.json.gz
new file mode 100644
index 00000000..ebd6c65e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/rds-data/2018-08-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/rds/2014-09-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/rds/2014-09-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..525cf35c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/rds/2014-09-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/rds/2014-09-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/rds/2014-09-01/paginators-1.json
new file mode 100644
index 00000000..76c4f3a1
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/rds/2014-09-01/paginators-1.json
@@ -0,0 +1,107 @@
+{
+  "pagination": {
+    "DescribeDBEngineVersions": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "DBEngineVersions"
+    },
+    "DescribeDBInstances": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "DBInstances"
+    },
+    "DescribeDBLogFiles": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "DescribeDBLogFiles"
+    },
+    "DescribeDBParameterGroups": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "DBParameterGroups"
+    },
+    "DescribeDBParameters": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "Parameters"
+    },
+    "DescribeDBSecurityGroups": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "DBSecurityGroups"
+    },
+    "DescribeDBSnapshots": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "DBSnapshots"
+    },
+    "DescribeDBSubnetGroups": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "DBSubnetGroups"
+    },
+    "DescribeEngineDefaultParameters": {
+      "input_token": "Marker",
+      "output_token": "EngineDefaults.Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "EngineDefaults.Parameters"
+    },
+    "DescribeEventSubscriptions": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "EventSubscriptionsList"
+    },
+    "DescribeEvents": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "Events"
+    },
+    "DescribeOptionGroupOptions": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "OptionGroupOptions"
+    },
+    "DescribeOptionGroups": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "OptionGroupsList"
+    },
+    "DescribeOrderableDBInstanceOptions": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "OrderableDBInstanceOptions"
+    },
+    "DescribeReservedDBInstances": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "ReservedDBInstances"
+    },
+    "DescribeReservedDBInstancesOfferings": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "ReservedDBInstancesOfferings"
+    },
+    "DownloadDBLogFilePortion": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "NumberOfLines",
+      "more_results": "AdditionalDataPending",
+      "result_key": "LogFileData"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/rds/2014-09-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/rds/2014-09-01/service-2.json.gz
new file mode 100644
index 00000000..f729875d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/rds/2014-09-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/rds/2014-09-01/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/rds/2014-09-01/waiters-2.json
new file mode 100644
index 00000000..b0150079
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/rds/2014-09-01/waiters-2.json
@@ -0,0 +1,97 @@
+{
+  "version": 2,
+  "waiters": {
+    "DBInstanceAvailable": {
+      "delay": 30,
+      "operation": "DescribeDBInstances",
+      "maxAttempts": 60,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "DBInstances[].DBInstanceStatus"
+        },
+        {
+          "expected": "deleted",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBInstances[].DBInstanceStatus"
+        },
+        {
+          "expected": "deleting",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBInstances[].DBInstanceStatus"
+        },
+        {
+          "expected": "failed",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBInstances[].DBInstanceStatus"
+        },
+        {
+          "expected": "incompatible-restore",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBInstances[].DBInstanceStatus"
+        },
+        {
+          "expected": "incompatible-parameters",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBInstances[].DBInstanceStatus"
+        },
+        {
+          "expected": "incompatible-parameters",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBInstances[].DBInstanceStatus"
+        },
+        {
+          "expected": "incompatible-restore",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBInstances[].DBInstanceStatus"
+        }
+      ]
+    },
+    "DBInstanceDeleted": {
+      "delay": 30,
+      "operation": "DescribeDBInstances",
+      "maxAttempts": 60,
+      "acceptors": [
+        {
+          "expected": "deleted",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "DBInstances[].DBInstanceStatus"
+        },
+        {
+          "expected": "creating",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBInstances[].DBInstanceStatus"
+        },
+        {
+          "expected": "modifying",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBInstances[].DBInstanceStatus"
+        },
+        {
+          "expected": "rebooting",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBInstances[].DBInstanceStatus"
+        },
+        {
+          "expected": "resetting-master-credentials",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBInstances[].DBInstanceStatus"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/rds/2014-10-31/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/rds/2014-10-31/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..5bff65a6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/rds/2014-10-31/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/rds/2014-10-31/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/rds/2014-10-31/examples-1.json
new file mode 100644
index 00000000..e72a328e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/rds/2014-10-31/examples-1.json
@@ -0,0 +1,1951 @@
+{
+  "version": "1.0",
+  "examples": {
+    "AddSourceIdentifierToSubscription": [
+      {
+        "input": {
+          "SourceIdentifier": "mymysqlinstance",
+          "SubscriptionName": "mymysqleventsubscription"
+        },
+        "output": {
+          "EventSubscription": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example add a source identifier to an event notification subscription.",
+        "id": "add-source-identifier-to-subscription-93fb6a15-0a59-4577-a7b5-e12db9752c14",
+        "title": "To add a source identifier to an event notification subscription"
+      }
+    ],
+    "AddTagsToResource": [
+      {
+        "input": {
+          "ResourceName": "arn:aws:rds:us-east-1:992648334831:og:mymysqloptiongroup",
+          "Tags": [
+            {
+              "Key": "Staging",
+              "Value": "LocationDB"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example adds a tag to an option group.",
+        "id": "add-tags-to-resource-fa99ef50-228b-449d-b893-ca4d4e9768ab",
+        "title": "To add tags to a resource"
+      }
+    ],
+    "ApplyPendingMaintenanceAction": [
+      {
+        "input": {
+          "ApplyAction": "system-update",
+          "OptInType": "immediate",
+          "ResourceIdentifier": "arn:aws:rds:us-east-1:992648334831:db:mymysqlinstance"
+        },
+        "output": {
+          "ResourcePendingMaintenanceActions": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example immediately applies a pending system update to a DB instance.",
+        "id": "apply-pending-maintenance-action-2a026047-8bbb-47fc-b695-abad9f308c24",
+        "title": "To apply a pending maintenance action"
+      }
+    ],
+    "AuthorizeDBSecurityGroupIngress": [
+      {
+        "input": {
+          "CIDRIP": "203.0.113.5/32",
+          "DBSecurityGroupName": "mydbsecuritygroup"
+        },
+        "output": {
+          "DBSecurityGroup": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example authorizes access to the specified security group by the specified CIDR block.",
+        "id": "authorize-db-security-group-ingress-ebf9ab91-8912-4b07-a32e-ca150668164f",
+        "title": "To authorize DB security group integress"
+      }
+    ],
+    "CopyDBClusterParameterGroup": [
+      {
+        "input": {
+          "SourceDBClusterParameterGroupIdentifier": "mydbclusterparametergroup",
+          "TargetDBClusterParameterGroupDescription": "My DB cluster parameter group copy",
+          "TargetDBClusterParameterGroupIdentifier": "mydbclusterparametergroup-copy"
+        },
+        "output": {
+          "DBClusterParameterGroup": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example copies a DB cluster parameter group.",
+        "id": "copy-db-cluster-parameter-group-6fefaffe-cde9-4dba-9f0b-d3f593572fe4",
+        "title": "To copy a DB cluster parameter group"
+      }
+    ],
+    "CopyDBClusterSnapshot": [
+      {
+        "input": {
+          "SourceDBClusterSnapshotIdentifier": "rds:sample-cluster-2016-09-14-10-38",
+          "TargetDBClusterSnapshotIdentifier": "cluster-snapshot-copy-1"
+        },
+        "output": {
+          "DBClusterSnapshot": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example copies an automated snapshot of a DB cluster to a new DB cluster snapshot.",
+        "id": "to-copy-a-db-cluster-snapshot-1473879770564",
+        "title": "To copy a DB cluster snapshot"
+      }
+    ],
+    "CopyDBParameterGroup": [
+      {
+        "input": {
+          "SourceDBParameterGroupIdentifier": "mymysqlparametergroup",
+          "TargetDBParameterGroupDescription": "My MySQL parameter group copy",
+          "TargetDBParameterGroupIdentifier": "mymysqlparametergroup-copy"
+        },
+        "output": {
+          "DBParameterGroup": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example copies a DB parameter group.",
+        "id": "copy-db-parameter-group-610d4dba-2c87-467f-ae5d-edd7f8e47349",
+        "title": "To copy a DB parameter group"
+      }
+    ],
+    "CopyDBSnapshot": [
+      {
+        "input": {
+          "SourceDBSnapshotIdentifier": "mydbsnapshot",
+          "TargetDBSnapshotIdentifier": "mydbsnapshot-copy"
+        },
+        "output": {
+          "DBSnapshot": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example copies a DB snapshot.",
+        "id": "copy-db-snapshot-1b2f0210-bc67-415d-9822-6eecf447dc86",
+        "title": "To copy a DB snapshot"
+      }
+    ],
+    "CopyOptionGroup": [
+      {
+        "input": {
+          "SourceOptionGroupIdentifier": "mymysqloptiongroup",
+          "TargetOptionGroupDescription": "My MySQL option group copy",
+          "TargetOptionGroupIdentifier": "mymysqloptiongroup-copy"
+        },
+        "output": {
+          "OptionGroup": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example copies an option group.",
+        "id": "copy-option-group-8d5c01c3-8846-4e9c-a4b0-1b7237f7d0ec",
+        "title": "To copy an option group"
+      }
+    ],
+    "CreateDBCluster": [
+      {
+        "input": {
+          "AvailabilityZones": [
+            "us-east-1a"
+          ],
+          "BackupRetentionPeriod": 1,
+          "DBClusterIdentifier": "mydbcluster",
+          "DBClusterParameterGroupName": "mydbclusterparametergroup",
+          "DatabaseName": "myauroradb",
+          "Engine": "aurora",
+          "EngineVersion": "5.6.10a",
+          "MasterUserPassword": "mypassword",
+          "MasterUsername": "myuser",
+          "Port": 3306,
+          "StorageEncrypted": true
+        },
+        "output": {
+          "DBCluster": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a DB cluster.",
+        "id": "create-db-cluster-423b998d-eba9-40dd-8e19-96c5b6e5f31d",
+        "title": "To create a DB cluster"
+      }
+    ],
+    "CreateDBClusterParameterGroup": [
+      {
+        "input": {
+          "DBClusterParameterGroupName": "mydbclusterparametergroup",
+          "DBParameterGroupFamily": "aurora5.6",
+          "Description": "My DB cluster parameter group"
+        },
+        "output": {
+          "DBClusterParameterGroup": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a DB cluster parameter group.",
+        "id": "create-db-cluster-parameter-group-8eb1c3ae-1965-4262-afe3-ee134c4430b1",
+        "title": "To create a DB cluster parameter group"
+      }
+    ],
+    "CreateDBClusterSnapshot": [
+      {
+        "input": {
+          "DBClusterIdentifier": "mydbcluster",
+          "DBClusterSnapshotIdentifier": "mydbclustersnapshot"
+        },
+        "output": {
+          "DBClusterSnapshot": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a DB cluster snapshot.",
+        "id": "create-db-cluster-snapshot-",
+        "title": "To create a DB cluster snapshot"
+      }
+    ],
+    "CreateDBInstance": [
+      {
+        "input": {
+          "AllocatedStorage": 5,
+          "DBInstanceClass": "db.t2.micro",
+          "DBInstanceIdentifier": "mymysqlinstance",
+          "Engine": "MySQL",
+          "MasterUserPassword": "MyPassword",
+          "MasterUsername": "MyUser"
+        },
+        "output": {
+          "DBInstance": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a DB instance.",
+        "id": "create-db-instance-57eb5d16-8bf8-4c84-9709-1700322b37b9",
+        "title": "To create a DB instance."
+      }
+    ],
+    "CreateDBInstanceReadReplica": [
+      {
+        "input": {
+          "AvailabilityZone": "us-east-1a",
+          "CopyTagsToSnapshot": true,
+          "DBInstanceClass": "db.t2.micro",
+          "DBInstanceIdentifier": "mydbreadreplica",
+          "PubliclyAccessible": true,
+          "SourceDBInstanceIdentifier": "mymysqlinstance",
+          "StorageType": "gp2",
+          "Tags": [
+            {
+              "Key": "mydbreadreplicakey",
+              "Value": "mydbreadreplicavalue"
+            }
+          ]
+        },
+        "output": {
+          "DBInstance": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a DB instance read replica.",
+        "id": "create-db-instance-read-replica-81b41cd5-2871-4dae-bc59-3e264449d5fe",
+        "title": "To create a DB instance read replica."
+      }
+    ],
+    "CreateDBParameterGroup": [
+      {
+        "input": {
+          "DBParameterGroupFamily": "mysql5.6",
+          "DBParameterGroupName": "mymysqlparametergroup",
+          "Description": "My MySQL parameter group"
+        },
+        "output": {
+          "DBParameterGroup": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a DB parameter group.",
+        "id": "create-db-parameter-group-42afcc37-12e9-4b6a-a55c-b8a141246e87",
+        "title": "To create a DB parameter group."
+      }
+    ],
+    "CreateDBSecurityGroup": [
+      {
+        "input": {
+          "DBSecurityGroupDescription": "My DB security group",
+          "DBSecurityGroupName": "mydbsecuritygroup"
+        },
+        "output": {
+          "DBSecurityGroup": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a DB security group.",
+        "id": "create-db-security-group-41b6786a-539e-42a5-a645-a8bc3cf99353",
+        "title": "To create a DB security group."
+      }
+    ],
+    "CreateDBSnapshot": [
+      {
+        "input": {
+          "DBInstanceIdentifier": "mymysqlinstance",
+          "DBSnapshotIdentifier": "mydbsnapshot"
+        },
+        "output": {
+          "DBSnapshot": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a DB snapshot.",
+        "id": "create-db-snapshot-e10e0e2c-9ac4-426d-9b17-6b6a3e382ce2",
+        "title": "To create a DB snapshot."
+      }
+    ],
+    "CreateDBSubnetGroup": [
+      {
+        "input": {
+          "DBSubnetGroupDescription": "My DB subnet group",
+          "DBSubnetGroupName": "mydbsubnetgroup",
+          "SubnetIds": [
+            "subnet-1fab8a69",
+            "subnet-d43a468c"
+          ]
+        },
+        "output": {
+          "DBSubnetGroup": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a DB subnet group.",
+        "id": "create-db-subnet-group-c3d162c2-0ec4-4955-ba89-18967615fdb8",
+        "title": "To create a DB subnet group."
+      }
+    ],
+    "CreateEventSubscription": [
+      {
+        "input": {
+          "Enabled": true,
+          "EventCategories": [
+            "availability"
+          ],
+          "SnsTopicArn": "arn:aws:sns:us-east-1:992648334831:MyDemoSNSTopic",
+          "SourceIds": [
+            "mymysqlinstance"
+          ],
+          "SourceType": "db-instance",
+          "SubscriptionName": "mymysqleventsubscription"
+        },
+        "output": {
+          "EventSubscription": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates an event notification subscription.",
+        "id": "create-event-subscription-00dd0ee6-0e0f-4a38-ae83-e5f2ded5f69a",
+        "title": "To create an event notification subscription"
+      }
+    ],
+    "CreateOptionGroup": [
+      {
+        "input": {
+          "EngineName": "MySQL",
+          "MajorEngineVersion": "5.6",
+          "OptionGroupDescription": "My MySQL 5.6 option group",
+          "OptionGroupName": "mymysqloptiongroup"
+        },
+        "output": {
+          "OptionGroup": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates an option group.",
+        "id": "create-option-group-a7708c87-1b79-4a5e-a762-21cf8fc62b78",
+        "title": "To create an option group"
+      }
+    ],
+    "DeleteDBCluster": [
+      {
+        "input": {
+          "DBClusterIdentifier": "mydbcluster",
+          "SkipFinalSnapshot": true
+        },
+        "output": {
+          "DBCluster": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified DB cluster.",
+        "id": "delete-db-cluster-927fc2c8-6c67-4075-b1ba-75490be0f7d6",
+        "title": "To delete a DB cluster."
+      }
+    ],
+    "DeleteDBClusterParameterGroup": [
+      {
+        "input": {
+          "DBClusterParameterGroupName": "mydbclusterparametergroup"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified DB cluster parameter group.",
+        "id": "delete-db-cluster-parameter-group-364f5555-ba0a-4cc8-979c-e769098924fc",
+        "title": "To delete a DB cluster parameter group."
+      }
+    ],
+    "DeleteDBClusterSnapshot": [
+      {
+        "input": {
+          "DBClusterSnapshotIdentifier": "mydbclustersnapshot"
+        },
+        "output": {
+          "DBClusterSnapshot": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified DB cluster snapshot.",
+        "id": "delete-db-cluster-snapshot-c67e0d95-670e-4fb5-af90-6d9a70a91b07",
+        "title": "To delete a DB cluster snapshot."
+      }
+    ],
+    "DeleteDBInstance": [
+      {
+        "input": {
+          "DBInstanceIdentifier": "mymysqlinstance",
+          "SkipFinalSnapshot": true
+        },
+        "output": {
+          "DBInstance": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified DB instance.",
+        "id": "delete-db-instance-4412e650-949c-488a-b32a-7d3038ebccc4",
+        "title": "To delete a DB instance."
+      }
+    ],
+    "DeleteDBParameterGroup": [
+      {
+        "input": {
+          "DBParameterGroupName": "mydbparamgroup3"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes a DB parameter group.",
+        "id": "to-delete-a-db-parameter-group-1473888796509",
+        "title": "To delete a DB parameter group"
+      }
+    ],
+    "DeleteDBSecurityGroup": [
+      {
+        "input": {
+          "DBSecurityGroupName": "mysecgroup"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes a DB security group.",
+        "id": "to-delete-a-db-security-group-1473960141889",
+        "title": "To delete a DB security group"
+      }
+    ],
+    "DeleteDBSnapshot": [
+      {
+        "input": {
+          "DBSnapshotIdentifier": "mydbsnapshot"
+        },
+        "output": {
+          "DBSnapshot": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified DB snapshot.",
+        "id": "delete-db-snapshot-505d6b4e-8ced-479c-856a-c460a33fe07b",
+        "title": "To delete a DB cluster snapshot."
+      }
+    ],
+    "DeleteDBSubnetGroup": [
+      {
+        "input": {
+          "DBSubnetGroupName": "mydbsubnetgroup"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified DB subnetgroup.",
+        "id": "delete-db-subnet-group-4ae00375-511e-443d-a01d-4b9f552244aa",
+        "title": "To delete a DB subnet group."
+      }
+    ],
+    "DeleteEventSubscription": [
+      {
+        "input": {
+          "SubscriptionName": "myeventsubscription"
+        },
+        "output": {
+          "EventSubscription": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified DB event subscription.",
+        "id": "delete-db-event-subscription-d33567e3-1d5d-48ff-873f-0270453f4a75",
+        "title": "To delete a DB event subscription."
+      }
+    ],
+    "DeleteOptionGroup": [
+      {
+        "input": {
+          "OptionGroupName": "mydboptiongroup"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified option group.",
+        "id": "delete-db-option-group-578be2be-3095-431a-9ea4-9a3c3b0daef4",
+        "title": "To delete an option group."
+      }
+    ],
+    "DescribeAccountAttributes": [
+      {
+        "input": {
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example lists account attributes.",
+        "id": "describe-account-attributes-683d3ff7-5524-421a-8da5-e88f1ea2222b",
+        "title": "To list account attributes"
+      }
+    ],
+    "DescribeCertificates": [
+      {
+        "input": {
+          "CertificateIdentifier": "rds-ca-2015",
+          "MaxRecords": 20
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example lists up to 20 certificates for the specified certificate identifier.",
+        "id": "describe-certificates-9d71a70d-7908-4444-b43f-321d842c62dc",
+        "title": "To list certificates"
+      }
+    ],
+    "DescribeDBClusterParameterGroups": [
+      {
+        "input": {
+          "DBClusterParameterGroupName": "mydbclusterparametergroup"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example lists settings for the specified DB cluster parameter group.",
+        "id": "describe-db-cluster-parameter-groups-cf9c6e66-664e-4f57-8e29-a9080abfc013",
+        "title": "To list DB cluster parameter group settings"
+      }
+    ],
+    "DescribeDBClusterParameters": [
+      {
+        "input": {
+          "DBClusterParameterGroupName": "mydbclusterparametergroup",
+          "Source": "system"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example lists system parameters for the specified DB cluster parameter group.",
+        "id": "describe-db-cluster-parameters-98043c28-e489-41a7-b118-bfd96dc779a1",
+        "title": "To list DB cluster parameters"
+      }
+    ],
+    "DescribeDBClusterSnapshotAttributes": [
+      {
+        "input": {
+          "DBClusterSnapshotIdentifier": "mydbclustersnapshot"
+        },
+        "output": {
+          "DBClusterSnapshotAttributesResult": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example lists attributes for the specified DB cluster snapshot.",
+        "id": "describe-db-cluster-snapshot-attributes-6752ade3-0c7b-4b06-a8e4-b76bf4e2d3571",
+        "title": "To list DB cluster snapshot attributes"
+      }
+    ],
+    "DescribeDBClusterSnapshots": [
+      {
+        "input": {
+          "DBClusterSnapshotIdentifier": "mydbclustersnapshot",
+          "SnapshotType": "manual"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example lists settings for the specified, manually-created cluster snapshot.",
+        "id": "describe-db-cluster-snapshots-52f38af1-3431-4a51-9a6a-e6bb8c961b32",
+        "title": "To list DB cluster snapshots"
+      }
+    ],
+    "DescribeDBClusters": [
+      {
+        "input": {
+          "DBClusterIdentifier": "mynewdbcluster"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example lists settings for the specified DB cluster.",
+        "id": "describe-db-clusters-7aae8861-cb95-4b3b-9042-f62df7698635",
+        "title": "To list DB clusters"
+      }
+    ],
+    "DescribeDBEngineVersions": [
+      {
+        "input": {
+          "DBParameterGroupFamily": "mysql5.6",
+          "DefaultOnly": true,
+          "Engine": "mysql",
+          "EngineVersion": "5.6",
+          "ListSupportedCharacterSets": true
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example lists settings for the specified DB engine version.",
+        "id": "describe-db-engine-versions-8e698cf2-2162-425a-a854-111cdaceb52b",
+        "title": "To list DB engine version settings"
+      }
+    ],
+    "DescribeDBInstances": [
+      {
+        "input": {
+          "DBInstanceIdentifier": "mymysqlinstance"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example lists settings for the specified DB instance.",
+        "id": "describe-db-instances-0e11a8c5-4ec3-4463-8cbf-f7254d04c4fc",
+        "title": "To list DB instance settings"
+      }
+    ],
+    "DescribeDBLogFiles": [
+      {
+        "input": {
+          "DBInstanceIdentifier": "mymysqlinstance",
+          "FileLastWritten": 1470873600000,
+          "FileSize": 0,
+          "FilenameContains": "error"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example lists matching log file names for the specified DB instance, file name pattern, last write date in POSIX time with milleseconds, and minimum file size.",
+        "id": "describe-db-log-files-5f002d8d-5c1d-44c2-b5f4-bd284c0f1285",
+        "title": "To list DB log file names"
+      }
+    ],
+    "DescribeDBParameterGroups": [
+      {
+        "input": {
+          "DBParameterGroupName": "mymysqlparametergroup"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example lists information about the specified DB parameter group.",
+        "id": "describe-db-parameter-groups-",
+        "title": "To list information about DB parameter groups"
+      }
+    ],
+    "DescribeDBParameters": [
+      {
+        "input": {
+          "DBParameterGroupName": "mymysqlparametergroup",
+          "MaxRecords": 20,
+          "Source": "system"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example lists information for up to the first 20 system parameters for the specified DB parameter group.",
+        "id": "describe-db-parameters-09db4201-ef4f-4d97-a4b5-d71c0715b901",
+        "title": "To list information about DB parameters"
+      }
+    ],
+    "DescribeDBSecurityGroups": [
+      {
+        "input": {
+          "DBSecurityGroupName": "mydbsecuritygroup"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example lists settings for the specified security group.",
+        "id": "describe-db-security-groups-66fe9ea1-17dd-4275-b82e-f771cee0c849",
+        "title": "To list DB security group settings"
+      }
+    ],
+    "DescribeDBSnapshotAttributes": [
+      {
+        "input": {
+          "DBSnapshotIdentifier": "mydbsnapshot"
+        },
+        "output": {
+          "DBSnapshotAttributesResult": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example lists attributes for the specified DB snapshot.",
+        "id": "describe-db-snapshot-attributes-1d4fb750-34f6-4e43-8b3d-b2751d796a95",
+        "title": "To list DB snapshot attributes"
+      }
+    ],
+    "DescribeDBSnapshots": [
+      {
+        "input": {
+          "DBInstanceIdentifier": "mymysqlinstance",
+          "IncludePublic": false,
+          "IncludeShared": true,
+          "SnapshotType": "manual"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example lists all manually-created, shared snapshots for the specified DB instance.",
+        "id": "describe-db-snapshots-2c935989-a1ef-4c85-aea4-1d0f45f17f26",
+        "title": "To list DB snapshot attributes"
+      }
+    ],
+    "DescribeDBSubnetGroups": [
+      {
+        "input": {
+          "DBSubnetGroupName": "mydbsubnetgroup"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example lists information about the specified DB subnet group.",
+        "id": "describe-db-subnet-groups-1d97b340-682f-4dd6-9653-8ed72a8d1221",
+        "title": "To list information about DB subnet groups"
+      }
+    ],
+    "DescribeEngineDefaultClusterParameters": [
+      {
+        "input": {
+          "DBParameterGroupFamily": "aurora5.6"
+        },
+        "output": {
+          "EngineDefaults": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example lists default parameters for the specified DB cluster engine.",
+        "id": "describe-engine-default-cluster-parameters-f130374a-7bee-434b-b51d-da20b6e000e0",
+        "title": "To list default parameters for a DB cluster engine"
+      }
+    ],
+    "DescribeEngineDefaultParameters": [
+      {
+        "input": {
+          "DBParameterGroupFamily": "mysql5.6"
+        },
+        "output": {
+          "EngineDefaults": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example lists default parameters for the specified DB engine.",
+        "id": "describe-engine-default-parameters-35d5108e-1d44-4fac-8aeb-04b8fdfface1",
+        "title": "To list default parameters for a DB engine"
+      }
+    ],
+    "DescribeEventCategories": [
+      {
+        "input": {
+          "SourceType": "db-instance"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example lists all DB instance event categories.",
+        "id": "describe-event-categories-97bd4c77-12da-4be6-b42f-edf77771428b",
+        "title": "To list event categories."
+      }
+    ],
+    "DescribeEventSubscriptions": [
+      {
+        "input": {
+          "SubscriptionName": "mymysqleventsubscription"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example lists information for the specified DB event notification subscription.",
+        "id": "describe-event-subscriptions-11184a82-e58a-4d0c-b558-f3a7489e0850",
+        "title": "To list information about DB event notification subscriptions"
+      }
+    ],
+    "DescribeEvents": [
+      {
+        "input": {
+          "Duration": 10080,
+          "EventCategories": [
+            "backup"
+          ],
+          "SourceIdentifier": "mymysqlinstance",
+          "SourceType": "db-instance"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example lists information for all backup-related events for the specified DB instance for the past 7 days (7 days * 24 hours * 60 minutes = 10,080 minutes).",
+        "id": "describe-events-3836e5ed-3913-4f76-8452-c77fcad5016b",
+        "title": "To list information about events"
+      }
+    ],
+    "DescribeOptionGroupOptions": [
+      {
+        "input": {
+          "EngineName": "mysql",
+          "MajorEngineVersion": "5.6"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example lists information for all option group options for the specified DB engine.",
+        "id": "describe-option-group-options-30d735a4-81f1-49e4-b3f2-5dc45d50c8ed",
+        "title": "To list information about DB option group options"
+      }
+    ],
+    "DescribeOptionGroups": [
+      {
+        "input": {
+          "EngineName": "mysql",
+          "MajorEngineVersion": "5.6"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example lists information for all option groups for the specified DB engine.",
+        "id": "describe-option-groups-4ef478a1-66d5-45f2-bec3-e608720418a4",
+        "title": "To list information about DB option groups"
+      }
+    ],
+    "DescribeOrderableDBInstanceOptions": [
+      {
+        "input": {
+          "DBInstanceClass": "db.t2.micro",
+          "Engine": "mysql",
+          "EngineVersion": "5.6.27",
+          "LicenseModel": "general-public-license",
+          "Vpc": true
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example lists information for all orderable DB instance options for the specified DB engine, engine version, DB instance class, license model, and VPC settings.",
+        "id": "describe-orderable-db-instance-options-7444d3ed-82eb-42b9-9ed9-896b8c27a782",
+        "title": "To list information about orderable DB instance options"
+      }
+    ],
+    "DescribePendingMaintenanceActions": [
+      {
+        "input": {
+          "ResourceIdentifier": "arn:aws:rds:us-east-1:992648334831:db:mymysqlinstance"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example lists information for all pending maintenance actions for the specified DB instance.",
+        "id": "describe-pending-maintenance-actions-e6021f7e-58ae-49cc-b874-11996176835c",
+        "title": "To list information about pending maintenance actions"
+      }
+    ],
+    "DescribeReservedDBInstances": [
+      {
+        "input": {
+          "DBInstanceClass": "db.t2.micro",
+          "Duration": "1y",
+          "MultiAZ": false,
+          "OfferingType": "No Upfront",
+          "ProductDescription": "mysql"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example lists information for all reserved DB instances for the specified DB instance class, duration, product, offering type, and availability zone settings.",
+        "id": "describe-reserved-db-instances-d45adaca-2e30-407c-a0f3-aa7b98bea17f",
+        "title": "To list information about reserved DB instances"
+      }
+    ],
+    "DescribeReservedDBInstancesOfferings": [
+      {
+        "input": {
+          "DBInstanceClass": "db.t2.micro",
+          "Duration": "1y",
+          "MultiAZ": false,
+          "OfferingType": "No Upfront",
+          "ProductDescription": "mysql"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example lists information for all reserved DB instance offerings for the specified DB instance class, duration, product, offering type, and availability zone settings.",
+        "id": "describe-reserved-db-instances-offerings-9de7d1fd-d6a6-4a72-84ae-b2ef58d47d8d",
+        "title": "To list information about reserved DB instance offerings"
+      }
+    ],
+    "DescribeSourceRegions": [
+      {
+        "input": {
+        },
+        "output": {
+          "SourceRegions": [
+            {
+              "Endpoint": "https://rds.ap-northeast-1.amazonaws.com",
+              "RegionName": "ap-northeast-1",
+              "Status": "available"
+            },
+            {
+              "Endpoint": "https://rds.ap-northeast-2.amazonaws.com",
+              "RegionName": "ap-northeast-2",
+              "Status": "available"
+            },
+            {
+              "Endpoint": "https://rds.ap-south-1.amazonaws.com",
+              "RegionName": "ap-south-1",
+              "Status": "available"
+            },
+            {
+              "Endpoint": "https://rds.ap-southeast-1.amazonaws.com",
+              "RegionName": "ap-southeast-1",
+              "Status": "available"
+            },
+            {
+              "Endpoint": "https://rds.ap-southeast-2.amazonaws.com",
+              "RegionName": "ap-southeast-2",
+              "Status": "available"
+            },
+            {
+              "Endpoint": "https://rds.eu-central-1.amazonaws.com",
+              "RegionName": "eu-central-1",
+              "Status": "available"
+            },
+            {
+              "Endpoint": "https://rds.eu-west-1.amazonaws.com",
+              "RegionName": "eu-west-1",
+              "Status": "available"
+            },
+            {
+              "Endpoint": "https://rds.sa-east-1.amazonaws.com",
+              "RegionName": "sa-east-1",
+              "Status": "available"
+            },
+            {
+              "Endpoint": "https://rds.us-west-1.amazonaws.com",
+              "RegionName": "us-west-1",
+              "Status": "available"
+            },
+            {
+              "Endpoint": "https://rds.us-west-2.amazonaws.com",
+              "RegionName": "us-west-2",
+              "Status": "available"
+            }
+          ]
+        },
+        "comments": {
+        },
+        "description": "To list the AWS regions where a Read Replica can be created.",
+        "id": "to-describe-source-regions-1473457722410",
+        "title": "To describe source regions"
+      }
+    ],
+    "DownloadDBLogFilePortion": [
+      {
+        "input": {
+          "DBInstanceIdentifier": "mymysqlinstance",
+          "LogFileName": "mysqlUpgrade"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example lists information for the specified log file for the specified DB instance.",
+        "id": "download-db-log-file-portion-54a82731-a441-4fc7-a010-8eccae6fa202",
+        "title": "To list information about DB log files"
+      }
+    ],
+    "FailoverDBCluster": [
+      {
+        "input": {
+          "DBClusterIdentifier": "myaurorainstance-cluster",
+          "TargetDBInstanceIdentifier": "myaurorareplica"
+        },
+        "output": {
+          "DBCluster": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example performs a failover for the specified DB cluster to the specified DB instance.",
+        "id": "failover-db-cluster-9e7f2f93-d98c-42c7-bb0e-d6c485c096d6",
+        "title": "To perform a failover for a DB cluster"
+      }
+    ],
+    "ListTagsForResource": [
+      {
+        "input": {
+          "ResourceName": "arn:aws:rds:us-east-1:992648334831:og:mymysqloptiongroup"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example lists information about all tags associated with the specified DB option group.",
+        "id": "list-tags-for-resource-8401f3c2-77cd-4f90-bfd5-b523f0adcc2f",
+        "title": "To list information about tags associated with a resource"
+      }
+    ],
+    "ModifyDBCluster": [
+      {
+        "input": {
+          "ApplyImmediately": true,
+          "DBClusterIdentifier": "mydbcluster",
+          "MasterUserPassword": "mynewpassword",
+          "NewDBClusterIdentifier": "mynewdbcluster",
+          "PreferredBackupWindow": "04:00-04:30",
+          "PreferredMaintenanceWindow": "Tue:05:00-Tue:05:30"
+        },
+        "output": {
+          "DBCluster": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example changes the specified settings for the specified DB cluster.",
+        "id": "modify-db-cluster-a370ee1b-768d-450a-853b-707cb1ab663d",
+        "title": "To change DB cluster settings"
+      }
+    ],
+    "ModifyDBClusterParameterGroup": [
+      {
+        "input": {
+          "DBClusterParameterGroupName": "mydbclusterparametergroup",
+          "Parameters": [
+            {
+              "ApplyMethod": "immediate",
+              "ParameterName": "time_zone",
+              "ParameterValue": "America/Phoenix"
+            }
+          ]
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example immediately changes the specified setting for the specified DB cluster parameter group.",
+        "id": "modify-db-cluster-parameter-group-f9156bc9-082a-442e-8d12-239542c1a113",
+        "title": "To change DB cluster parameter group settings"
+      }
+    ],
+    "ModifyDBClusterSnapshotAttribute": [
+      {
+        "input": {
+          "AttributeName": "restore",
+          "DBClusterSnapshotIdentifier": "manual-cluster-snapshot1",
+          "ValuesToAdd": [
+            "123451234512",
+            "123456789012"
+          ],
+          "ValuesToRemove": [
+            "all"
+          ]
+        },
+        "output": {
+          "DBClusterSnapshotAttributesResult": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example gives two AWS accounts access to a manual DB cluster snapshot and ensures that the DB cluster snapshot is private by removing the value \"all\".",
+        "id": "to-add-or-remove-access-to-a-manual-db-cluster-snapshot-1473889426431",
+        "title": "To add or remove access to a manual DB cluster snapshot"
+      }
+    ],
+    "ModifyDBInstance": [
+      {
+        "input": {
+          "AllocatedStorage": 10,
+          "ApplyImmediately": true,
+          "BackupRetentionPeriod": 1,
+          "DBInstanceClass": "db.t2.small",
+          "DBInstanceIdentifier": "mymysqlinstance",
+          "MasterUserPassword": "mynewpassword",
+          "PreferredBackupWindow": "04:00-04:30",
+          "PreferredMaintenanceWindow": "Tue:05:00-Tue:05:30"
+        },
+        "output": {
+          "DBInstance": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example immediately changes the specified settings for the specified DB instance.",
+        "id": "modify-db-instance-6979a368-6254-467b-8a8d-61103f4fcde9",
+        "title": "To change DB instance settings"
+      }
+    ],
+    "ModifyDBParameterGroup": [
+      {
+        "input": {
+          "DBParameterGroupName": "mymysqlparametergroup",
+          "Parameters": [
+            {
+              "ApplyMethod": "immediate",
+              "ParameterName": "time_zone",
+              "ParameterValue": "America/Phoenix"
+            }
+          ]
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example immediately changes the specified setting for the specified DB parameter group.",
+        "id": "modify-db-parameter-group-f3a4e52a-68e4-4b88-b559-f912d34c457a",
+        "title": "To change DB parameter group settings"
+      }
+    ],
+    "ModifyDBSnapshotAttribute": [
+      {
+        "input": {
+          "AttributeName": "restore",
+          "DBSnapshotIdentifier": "mydbsnapshot",
+          "ValuesToAdd": [
+            "all"
+          ]
+        },
+        "output": {
+          "DBSnapshotAttributesResult": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example adds the specified attribute for the specified DB snapshot.",
+        "id": "modify-db-snapshot-attribute-2e66f120-2b21-4a7c-890b-4474da88bde6",
+        "title": "To change DB snapshot attributes"
+      }
+    ],
+    "ModifyDBSubnetGroup": [
+      {
+        "input": {
+          "DBSubnetGroupName": "mydbsubnetgroup",
+          "SubnetIds": [
+            "subnet-70e1975a",
+            "subnet-747a5c49"
+          ]
+        },
+        "output": {
+          "DBSubnetGroup": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example changes the specified setting for the specified DB subnet group.",
+        "id": "modify-db-subnet-group-e34a97d9-8fe6-4239-a4ed-ad6e73a956b0",
+        "title": "To change DB subnet group settings"
+      }
+    ],
+    "ModifyEventSubscription": [
+      {
+        "input": {
+          "Enabled": true,
+          "EventCategories": [
+            "deletion",
+            "low storage"
+          ],
+          "SourceType": "db-instance",
+          "SubscriptionName": "mymysqleventsubscription"
+        },
+        "output": {
+          "EventSubscription": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example changes the specified setting for the specified event notification subscription.",
+        "id": "modify-event-subscription-405ac869-1f02-42cd-b8f4-6950a435f30e",
+        "title": "To change event notification subscription settings"
+      }
+    ],
+    "ModifyOptionGroup": [
+      {
+        "input": {
+          "ApplyImmediately": true,
+          "OptionGroupName": "myawsuser-og02",
+          "OptionsToInclude": [
+            {
+              "DBSecurityGroupMemberships": [
+                "default"
+              ],
+              "OptionName": "MEMCACHED"
+            }
+          ]
+        },
+        "output": {
+          "OptionGroup": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example adds an option to an option group.",
+        "id": "to-modify-an-option-group-1473890247875",
+        "title": "To modify an option group"
+      }
+    ],
+    "PromoteReadReplica": [
+      {
+        "input": {
+          "BackupRetentionPeriod": 1,
+          "DBInstanceIdentifier": "mydbreadreplica",
+          "PreferredBackupWindow": "03:30-04:00"
+        },
+        "output": {
+          "DBInstance": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example promotes the specified read replica and sets its backup retention period and preferred backup window.",
+        "id": "promote-read-replica-cc580039-c55d-4035-838a-def4a1ae4181",
+        "title": "To promote a read replica"
+      }
+    ],
+    "PurchaseReservedDBInstancesOffering": [
+      {
+        "input": {
+          "ReservedDBInstanceId": "myreservationid",
+          "ReservedDBInstancesOfferingId": "fb29428a-646d-4390-850e-5fe89926e727"
+        },
+        "output": {
+          "ReservedDBInstance": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example purchases a reserved DB instance offering that matches the specified settings.",
+        "id": "purchase-reserved-db-instances-offfering-f423c736-8413-429b-ba13-850fd4fa4dcd",
+        "title": "To purchase a reserved DB instance offering"
+      }
+    ],
+    "RebootDBInstance": [
+      {
+        "input": {
+          "DBInstanceIdentifier": "mymysqlinstance",
+          "ForceFailover": false
+        },
+        "output": {
+          "DBInstance": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example reboots the specified DB instance without forcing a failover.",
+        "id": "reboot-db-instance-b9ce8a0a-2920-451d-a1f3-01d288aa7366",
+        "title": "To reboot a DB instance"
+      }
+    ],
+    "RemoveSourceIdentifierFromSubscription": [
+      {
+        "input": {
+          "SourceIdentifier": "mymysqlinstance",
+          "SubscriptionName": "myeventsubscription"
+        },
+        "output": {
+          "EventSubscription": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example removes the specified source identifier from the specified DB event subscription.",
+        "id": "remove-source-identifier-from-subscription-30d25493-c19d-4cf7-b4e5-68371d0d8770",
+        "title": "To remove a source identifier from a DB event subscription"
+      }
+    ],
+    "RemoveTagsFromResource": [
+      {
+        "input": {
+          "ResourceName": "arn:aws:rds:us-east-1:992648334831:og:mydboptiongroup",
+          "TagKeys": [
+            "MyKey"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example removes the specified tag associated with the specified DB option group.",
+        "id": "remove-tags-from-resource-49f00574-38f6-4d01-ac89-d3c668449ce3",
+        "title": "To remove tags from a resource"
+      }
+    ],
+    "ResetDBClusterParameterGroup": [
+      {
+        "input": {
+          "DBClusterParameterGroupName": "mydbclusterparametergroup",
+          "ResetAllParameters": true
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example resets all parameters for the specified DB cluster parameter group to their default values.",
+        "id": "reset-db-cluster-parameter-group-b04aeaf7-7f73-49e1-9bb4-857573ea3ee4",
+        "title": "To reset the values of a DB cluster parameter group"
+      }
+    ],
+    "ResetDBParameterGroup": [
+      {
+        "input": {
+          "DBParameterGroupName": "mydbparametergroup",
+          "ResetAllParameters": true
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example resets all parameters for the specified DB parameter group to their default values.",
+        "id": "reset-db-parameter-group-ed2ed723-de0d-4824-8af5-3c65fa130abf",
+        "title": "To reset the values of a DB parameter group"
+      }
+    ],
+    "RestoreDBClusterFromSnapshot": [
+      {
+        "input": {
+          "DBClusterIdentifier": "restored-cluster1",
+          "Engine": "aurora",
+          "SnapshotIdentifier": "sample-cluster-snapshot1"
+        },
+        "output": {
+          "DBCluster": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example restores an Amazon Aurora DB cluster from a DB cluster snapshot.",
+        "id": "to-restore-an-amazon-aurora-db-cluster-from-a-db-cluster-snapshot-1473958144325",
+        "title": "To restore an Amazon Aurora DB cluster from a DB cluster snapshot"
+      }
+    ],
+    "RestoreDBClusterToPointInTime": [
+      {
+        "input": {
+          "DBClusterIdentifier": "sample-restored-cluster1",
+          "RestoreToTime": "2016-09-13T18:45:00Z",
+          "SourceDBClusterIdentifier": "sample-cluster1"
+        },
+        "output": {
+          "DBCluster": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example restores a DB cluster to a new DB cluster at a point in time from the source DB cluster.",
+        "id": "to-restore-a-db-cluster-to-a-point-in-time-1473962082214",
+        "title": "To restore a DB cluster to a point in time."
+      }
+    ],
+    "RestoreDBInstanceFromDBSnapshot": [
+      {
+        "input": {
+          "DBInstanceIdentifier": "mysqldb-restored",
+          "DBSnapshotIdentifier": "rds:mysqldb-2014-04-22-08-15"
+        },
+        "output": {
+          "DBInstance": {
+            "AllocatedStorage": 200,
+            "AutoMinorVersionUpgrade": true,
+            "AvailabilityZone": "us-west-2b",
+            "BackupRetentionPeriod": 7,
+            "CACertificateIdentifier": "rds-ca-2015",
+            "CopyTagsToSnapshot": false,
+            "DBInstanceArn": "arn:aws:rds:us-west-2:123456789012:db:mysqldb-restored",
+            "DBInstanceClass": "db.t2.small",
+            "DBInstanceIdentifier": "mysqldb-restored",
+            "DBInstanceStatus": "available",
+            "DBName": "sample",
+            "DBParameterGroups": [
+              {
+                "DBParameterGroupName": "default.mysql5.6",
+                "ParameterApplyStatus": "in-sync"
+              }
+            ],
+            "DBSecurityGroups": [
+
+            ],
+            "DBSubnetGroup": {
+              "DBSubnetGroupDescription": "default",
+              "DBSubnetGroupName": "default",
+              "SubnetGroupStatus": "Complete",
+              "Subnets": [
+                {
+                  "SubnetAvailabilityZone": {
+                    "Name": "us-west-2a"
+                  },
+                  "SubnetIdentifier": "subnet-77e8db03",
+                  "SubnetStatus": "Active"
+                },
+                {
+                  "SubnetAvailabilityZone": {
+                    "Name": "us-west-2b"
+                  },
+                  "SubnetIdentifier": "subnet-c39989a1",
+                  "SubnetStatus": "Active"
+                },
+                {
+                  "SubnetAvailabilityZone": {
+                    "Name": "us-west-2c"
+                  },
+                  "SubnetIdentifier": "subnet-4b267b0d",
+                  "SubnetStatus": "Active"
+                }
+              ],
+              "VpcId": "vpc-c1c5b3a3"
+            },
+            "DbInstancePort": 0,
+            "DbiResourceId": "db-VNZUCCBTEDC4WR7THXNJO72HVQ",
+            "DomainMemberships": [
+
+            ],
+            "Engine": "mysql",
+            "EngineVersion": "5.6.27",
+            "LicenseModel": "general-public-license",
+            "MasterUsername": "mymasteruser",
+            "MonitoringInterval": 0,
+            "MultiAZ": false,
+            "OptionGroupMemberships": [
+              {
+                "OptionGroupName": "default:mysql-5-6",
+                "Status": "in-sync"
+              }
+            ],
+            "PendingModifiedValues": {
+            },
+            "PreferredBackupWindow": "12:58-13:28",
+            "PreferredMaintenanceWindow": "tue:10:16-tue:10:46",
+            "PubliclyAccessible": true,
+            "ReadReplicaDBInstanceIdentifiers": [
+
+            ],
+            "StorageEncrypted": false,
+            "StorageType": "gp2",
+            "VpcSecurityGroups": [
+              {
+                "Status": "active",
+                "VpcSecurityGroupId": "sg-e5e5b0d2"
+              }
+            ]
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example restores a DB instance from a DB snapshot.",
+        "id": "to-restore-a-db-instance-from-a-db-snapshot-1473961657311",
+        "title": "To restore a DB instance from a DB snapshot."
+      }
+    ],
+    "RestoreDBInstanceToPointInTime": [
+      {
+        "input": {
+          "RestoreTime": "2016-09-13T18:45:00Z",
+          "SourceDBInstanceIdentifier": "mysql-sample",
+          "TargetDBInstanceIdentifier": "mysql-sample-restored"
+        },
+        "output": {
+          "DBInstance": {
+            "AllocatedStorage": 200,
+            "AutoMinorVersionUpgrade": true,
+            "AvailabilityZone": "us-west-2b",
+            "BackupRetentionPeriod": 7,
+            "CACertificateIdentifier": "rds-ca-2015",
+            "CopyTagsToSnapshot": false,
+            "DBInstanceArn": "arn:aws:rds:us-west-2:123456789012:db:mysql-sample-restored",
+            "DBInstanceClass": "db.t2.small",
+            "DBInstanceIdentifier": "mysql-sample-restored",
+            "DBInstanceStatus": "available",
+            "DBName": "sample",
+            "DBParameterGroups": [
+              {
+                "DBParameterGroupName": "default.mysql5.6",
+                "ParameterApplyStatus": "in-sync"
+              }
+            ],
+            "DBSecurityGroups": [
+
+            ],
+            "DBSubnetGroup": {
+              "DBSubnetGroupDescription": "default",
+              "DBSubnetGroupName": "default",
+              "SubnetGroupStatus": "Complete",
+              "Subnets": [
+                {
+                  "SubnetAvailabilityZone": {
+                    "Name": "us-west-2a"
+                  },
+                  "SubnetIdentifier": "subnet-77e8db03",
+                  "SubnetStatus": "Active"
+                },
+                {
+                  "SubnetAvailabilityZone": {
+                    "Name": "us-west-2b"
+                  },
+                  "SubnetIdentifier": "subnet-c39989a1",
+                  "SubnetStatus": "Active"
+                },
+                {
+                  "SubnetAvailabilityZone": {
+                    "Name": "us-west-2c"
+                  },
+                  "SubnetIdentifier": "subnet-4b267b0d",
+                  "SubnetStatus": "Active"
+                }
+              ],
+              "VpcId": "vpc-c1c5b3a3"
+            },
+            "DbInstancePort": 0,
+            "DbiResourceId": "db-VNZUCCBTEDC4WR7THXNJO72HVQ",
+            "DomainMemberships": [
+
+            ],
+            "Engine": "mysql",
+            "EngineVersion": "5.6.27",
+            "LicenseModel": "general-public-license",
+            "MasterUsername": "mymasteruser",
+            "MonitoringInterval": 0,
+            "MultiAZ": false,
+            "OptionGroupMemberships": [
+              {
+                "OptionGroupName": "default:mysql-5-6",
+                "Status": "in-sync"
+              }
+            ],
+            "PendingModifiedValues": {
+            },
+            "PreferredBackupWindow": "12:58-13:28",
+            "PreferredMaintenanceWindow": "tue:10:16-tue:10:46",
+            "PubliclyAccessible": true,
+            "ReadReplicaDBInstanceIdentifiers": [
+
+            ],
+            "StorageEncrypted": false,
+            "StorageType": "gp2",
+            "VpcSecurityGroups": [
+              {
+                "Status": "active",
+                "VpcSecurityGroupId": "sg-e5e5b0d2"
+              }
+            ]
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example restores a DB instance to a new DB instance at a point in time from the source DB instance.",
+        "id": "to-restore-a-db-instance-to-a-point-in-time-1473962652154",
+        "title": "To restore a DB instance to a point in time."
+      }
+    ],
+    "RevokeDBSecurityGroupIngress": [
+      {
+        "input": {
+          "CIDRIP": "203.0.113.5/32",
+          "DBSecurityGroupName": "mydbsecuritygroup"
+        },
+        "output": {
+          "DBSecurityGroup": {
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example revokes ingress for the specified CIDR block associated with the specified DB security group.",
+        "id": "revoke-db-security-group-ingress-ce5b2c1c-bd4e-4809-b04a-6d78ec448813",
+        "title": "To revoke ingress for a DB security group"
+      }
+    ]
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/rds/2014-10-31/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/rds/2014-10-31/paginators-1.json
new file mode 100644
index 00000000..ea213b11
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/rds/2014-10-31/paginators-1.json
@@ -0,0 +1,245 @@
+{
+  "pagination": {
+    "DescribeCertificates": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "Certificates"
+    },
+    "DescribeDBClusterBacktracks": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "DBClusterBacktracks"
+    },
+    "DescribeDBClusterParameterGroups": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "DBClusterParameterGroups"
+    },
+    "DescribeDBClusterParameters": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "Parameters"
+    },
+    "DescribeDBClusterSnapshots": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "DBClusterSnapshots"
+    },
+    "DescribeDBClusters": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "DBClusters"
+    },
+    "DescribeDBEngineVersions": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "DBEngineVersions"
+    },
+    "DescribeDBInstanceAutomatedBackups": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "DBInstanceAutomatedBackups"
+    },
+    "DescribeDBInstances": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "DBInstances"
+    },
+    "DescribeDBLogFiles": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "DescribeDBLogFiles"
+    },
+    "DescribeDBParameterGroups": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "DBParameterGroups"
+    },
+    "DescribeDBParameters": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "Parameters"
+    },
+    "DescribeDBSecurityGroups": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "DBSecurityGroups"
+    },
+    "DescribeDBSnapshots": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "DBSnapshots"
+    },
+    "DescribeDBSubnetGroups": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "DBSubnetGroups"
+    },
+    "DescribeEngineDefaultClusterParameters": {
+      "input_token": "Marker",
+      "output_token": "EngineDefaults.Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "EngineDefaults.Parameters"
+    },
+    "DescribeEngineDefaultParameters": {
+      "input_token": "Marker",
+      "output_token": "EngineDefaults.Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "EngineDefaults.Parameters"
+    },
+    "DescribeEventSubscriptions": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "EventSubscriptionsList"
+    },
+    "DescribeEvents": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "Events"
+    },
+    "DescribeGlobalClusters": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "GlobalClusters"
+    },
+    "DescribeOptionGroupOptions": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "OptionGroupOptions"
+    },
+    "DescribeOptionGroups": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "OptionGroupsList"
+    },
+    "DescribeOrderableDBInstanceOptions": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "OrderableDBInstanceOptions"
+    },
+    "DescribePendingMaintenanceActions": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "PendingMaintenanceActions"
+    },
+    "DescribeReservedDBInstances": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "ReservedDBInstances"
+    },
+    "DescribeReservedDBInstancesOfferings": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "ReservedDBInstancesOfferings"
+    },
+    "DescribeSourceRegions": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "SourceRegions"
+    },
+    "DownloadDBLogFilePortion": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "NumberOfLines",
+      "more_results": "AdditionalDataPending",
+      "result_key": "LogFileData"
+    },
+    "DescribeDBClusterEndpoints": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "DBClusterEndpoints"
+    },
+    "DescribeDBProxies": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "DBProxies"
+    },
+    "DescribeDBProxyTargetGroups": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "TargetGroups"
+    },
+    "DescribeDBProxyTargets": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "Targets"
+    },
+    "DescribeExportTasks": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "ExportTasks"
+    },
+    "DescribeDBProxyEndpoints": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "DBProxyEndpoints"
+    },
+    "DescribeBlueGreenDeployments": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "BlueGreenDeployments"
+    },
+    "DescribeDBClusterAutomatedBackups": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "DBClusterAutomatedBackups"
+    },
+    "DescribeIntegrations": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "Integrations"
+    },
+    "DescribeDBSnapshotTenantDatabases": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "DBSnapshotTenantDatabases"
+    },
+    "DescribeTenantDatabases": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "TenantDatabases"
+    },
+    "DescribeDBRecommendations": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "DBRecommendations"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/rds/2014-10-31/paginators-1.sdk-extras.json b/.venv/lib/python3.12/site-packages/botocore/data/rds/2014-10-31/paginators-1.sdk-extras.json
new file mode 100644
index 00000000..5016e028
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/rds/2014-10-31/paginators-1.sdk-extras.json
@@ -0,0 +1,12 @@
+{
+  "version": 1.0,
+  "merge": {
+    "pagination": {
+      "DescribeCertificates": {
+        "non_aggregate_keys": [
+          "DefaultCertificateForNewLaunches"
+        ]
+      }
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/rds/2014-10-31/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/rds/2014-10-31/service-2.json.gz
new file mode 100644
index 00000000..16ad2b29
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/rds/2014-10-31/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/rds/2014-10-31/service-2.sdk-extras.json b/.venv/lib/python3.12/site-packages/botocore/data/rds/2014-10-31/service-2.sdk-extras.json
new file mode 100644
index 00000000..36aea1fc
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/rds/2014-10-31/service-2.sdk-extras.json
@@ -0,0 +1,47 @@
+ {
+  "version": 1.0,
+  "merge": {
+    "shapes": {
+      "CopyDBClusterSnapshotMessage": {
+        "members": {
+          "SourceRegion": {
+            "shape": "String",
+            "documentation": "<p>The ID of the region that contains the snapshot to be copied.</p>"
+          }
+        }
+      },
+      "CreateDBClusterMessage": {
+        "members": {
+          "SourceRegion": {
+            "shape": "String",
+            "documentation": "<p>The ID of the region that contains the source for the db cluster.</p>"
+          }
+        }
+      },
+      "CopyDBSnapshotMessage": {
+        "members": {
+          "SourceRegion": {
+            "shape": "String",
+            "documentation": "<p>The ID of the region that contains the snapshot to be copied.</p>"
+          }
+        }
+      },
+      "CreateDBInstanceReadReplicaMessage": {
+        "members": {
+          "SourceRegion": {
+            "shape": "String",
+            "documentation": "<p>The ID of the region that contains the source for the read replica.</p>"
+          }
+        }
+      },
+      "StartDBInstanceAutomatedBackupsReplicationMessage": {
+        "members": {
+          "SourceRegion": {
+            "shape": "String",
+            "documentation": "<p>The ID of the region that contains the source for the db instance.</p>"
+          }
+        }
+      }
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/rds/2014-10-31/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/rds/2014-10-31/waiters-2.json
new file mode 100644
index 00000000..d91adea3
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/rds/2014-10-31/waiters-2.json
@@ -0,0 +1,412 @@
+{
+  "version": 2,
+  "waiters": {
+    "DBInstanceAvailable": {
+      "delay": 30,
+      "operation": "DescribeDBInstances",
+      "maxAttempts": 60,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "DBInstances[].DBInstanceStatus"
+        },
+        {
+          "expected": "deleted",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBInstances[].DBInstanceStatus"
+        },
+        {
+          "expected": "deleting",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBInstances[].DBInstanceStatus"
+        },
+        {
+          "expected": "failed",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBInstances[].DBInstanceStatus"
+        },
+        {
+          "expected": "incompatible-restore",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBInstances[].DBInstanceStatus"
+        },
+        {
+          "expected": "incompatible-parameters",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBInstances[].DBInstanceStatus"
+        }
+      ]
+    },
+    "DBInstanceDeleted": {
+      "delay": 30,
+      "operation": "DescribeDBInstances",
+      "maxAttempts": 60,
+      "acceptors": [
+        {
+          "expected": true,
+          "matcher": "path",
+          "state": "success",
+          "argument": "length(DBInstances) == `0`"
+        },
+        {
+          "expected": "DBInstanceNotFound",
+          "matcher": "error",
+          "state": "success"
+        },
+        {
+          "expected": "creating",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBInstances[].DBInstanceStatus"
+        },
+        {
+          "expected": "modifying",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBInstances[].DBInstanceStatus"
+        },
+        {
+          "expected": "rebooting",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBInstances[].DBInstanceStatus"
+        },
+        {
+          "expected": "resetting-master-credentials",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBInstances[].DBInstanceStatus"
+        }
+      ]
+    },
+    "DBSnapshotAvailable": {
+      "delay": 30,
+      "operation": "DescribeDBSnapshots",
+      "maxAttempts": 60,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "DBSnapshots[].Status"
+        },
+        {
+          "expected": "deleted",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBSnapshots[].Status"
+        },
+        {
+          "expected": "deleting",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBSnapshots[].Status"
+        },
+        {
+          "expected": "failed",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBSnapshots[].Status"
+        },
+        {
+          "expected": "incompatible-restore",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBSnapshots[].Status"
+        },
+        {
+          "expected": "incompatible-parameters",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBSnapshots[].Status"
+        }
+      ]
+    },
+    "DBSnapshotDeleted": {
+      "delay": 30,
+      "operation": "DescribeDBSnapshots",
+      "maxAttempts": 60,
+      "acceptors": [
+        {
+          "expected": true,
+          "matcher": "path",
+          "state": "success",
+          "argument": "length(DBSnapshots) == `0`"
+        },
+        {
+          "expected": "DBSnapshotNotFound",
+          "matcher": "error",
+          "state": "success"
+        },
+        {
+          "expected": "creating",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBSnapshots[].Status"
+        },
+        {
+          "expected": "modifying",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBSnapshots[].Status"
+        },
+        {
+          "expected": "rebooting",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBSnapshots[].Status"
+        },
+        {
+          "expected": "resetting-master-credentials",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBSnapshots[].Status"
+        }
+      ]
+    },
+    "DBClusterSnapshotAvailable": {
+      "delay": 30,
+      "operation": "DescribeDBClusterSnapshots",
+      "maxAttempts": 60,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "DBClusterSnapshots[].Status"
+        },
+        {
+          "expected": "deleted",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBClusterSnapshots[].Status"
+        },
+        {
+          "expected": "deleting",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBClusterSnapshots[].Status"
+        },
+        {
+          "expected": "failed",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBClusterSnapshots[].Status"
+        },
+        {
+          "expected": "incompatible-restore",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBClusterSnapshots[].Status"
+        },
+        {
+          "expected": "incompatible-parameters",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBClusterSnapshots[].Status"
+        }
+      ]
+    },
+    "DBClusterSnapshotDeleted": {
+      "delay": 30,
+      "operation": "DescribeDBClusterSnapshots",
+      "maxAttempts": 60,
+      "acceptors": [
+        {
+          "expected": true,
+          "matcher": "path",
+          "state": "success",
+          "argument": "length(DBClusterSnapshots) == `0`"
+        },
+        {
+          "expected": "DBClusterSnapshotNotFoundFault",
+          "matcher": "error",
+          "state": "success"
+        },
+        {
+          "expected": "creating",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBClusterSnapshots[].Status"
+        },
+        {
+          "expected": "modifying",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBClusterSnapshots[].Status"
+        },
+        {
+          "expected": "rebooting",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBClusterSnapshots[].Status"
+        },
+        {
+          "expected": "resetting-master-credentials",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBClusterSnapshots[].Status"
+        }
+      ]
+    },
+    "DBClusterAvailable": {
+      "delay": 30,
+      "operation": "DescribeDBClusters",
+      "maxAttempts": 60,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "DBClusters[].Status"
+        },
+        {
+          "expected": "deleted",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBClusters[].Status"
+        },
+        {
+          "expected": "deleting",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBClusters[].Status"
+        },
+        {
+          "expected": "failed",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBClusters[].Status"
+        },
+        {
+          "expected": "incompatible-restore",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBClusters[].Status"
+        },
+        {
+          "expected": "incompatible-parameters",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBClusters[].Status"
+        }
+      ]
+    },
+    "DBClusterDeleted": {
+      "delay": 30,
+      "operation": "DescribeDBClusters",
+      "maxAttempts": 60,
+      "acceptors": [
+        {
+          "expected": true,
+          "matcher": "path",
+          "state": "success",
+          "argument": "length(DBClusters) == `0`"
+        },
+        {
+          "expected": "DBClusterNotFoundFault",
+          "matcher": "error",
+          "state": "success"
+        },
+        {
+          "expected": "creating",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBClusters[].Status"
+        },
+        {
+          "expected": "modifying",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBClusters[].Status"
+        },
+        {
+          "expected": "rebooting",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBClusters[].Status"
+        },
+        {
+          "expected": "resetting-master-credentials",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "DBClusters[].Status"
+        }
+      ]
+    },
+    "TenantDatabaseAvailable": {
+      "delay": 30,
+      "operation": "DescribeTenantDatabases",
+      "maxAttempts": 60,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "TenantDatabases[].Status"
+        },
+        {
+          "expected": "deleted",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "TenantDatabases[].Status"
+        },
+        {
+          "expected": "incompatible-parameters",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "TenantDatabases[].Status"
+        },
+        {
+          "expected": "incompatible-restore",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "TenantDatabases[].Status"
+        }
+      ]
+    },
+    "TenantDatabaseDeleted": {
+      "delay": 30,
+      "operation": "DescribeTenantDatabases",
+      "maxAttempts": 60,
+      "acceptors": [
+        {
+          "expected": true,
+          "matcher": "path",
+          "state": "success",
+          "argument": "length(TenantDatabases) == `0`"
+        },
+        {
+          "expected": "DBInstanceNotFoundFault",
+          "matcher": "error",
+          "state": "success"
+        }
+      ]
+    },
+    "DBSnapshotCompleted": {
+      "delay": 15,
+      "operation": "DescribeDBSnapshots",
+      "maxAttempts": 40,
+      "acceptors": [
+        {
+          "expected": "DBSnapshotNotFound",
+          "matcher": "error",
+          "state": "success"
+        },
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "DBSnapshots[].Status"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/redshift-data/2019-12-20/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/redshift-data/2019-12-20/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..9559af8e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/redshift-data/2019-12-20/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/redshift-data/2019-12-20/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/redshift-data/2019-12-20/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/redshift-data/2019-12-20/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/redshift-data/2019-12-20/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/redshift-data/2019-12-20/paginators-1.json
new file mode 100644
index 00000000..ba46aa4b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/redshift-data/2019-12-20/paginators-1.json
@@ -0,0 +1,44 @@
+{
+  "pagination": {
+    "DescribeTable": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ColumnList"
+    },
+    "GetStatementResult": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "Records"
+    },
+    "ListDatabases": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Databases"
+    },
+    "ListSchemas": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Schemas"
+    },
+    "ListStatements": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Statements"
+    },
+    "ListTables": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Tables"
+    },
+    "GetStatementResultV2": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "Records"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/redshift-data/2019-12-20/paginators-1.sdk-extras.json b/.venv/lib/python3.12/site-packages/botocore/data/redshift-data/2019-12-20/paginators-1.sdk-extras.json
new file mode 100644
index 00000000..8a060167
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/redshift-data/2019-12-20/paginators-1.sdk-extras.json
@@ -0,0 +1,25 @@
+{
+  "version": 1.0,
+  "merge": {
+    "pagination": {
+      "GetStatementResult": {
+        "non_aggregate_keys": [
+          "ColumnMetadata",
+          "TotalNumRows"
+        ]
+      },
+      "GetStatementResultV2": {
+        "non_aggregate_keys": [
+          "ColumnMetadata",
+          "TotalNumRows",
+          "ResultFormat"
+        ]
+      },
+      "DescribeTable": {
+        "non_aggregate_keys": [
+          "TableName"
+        ]
+      }
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/redshift-data/2019-12-20/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/redshift-data/2019-12-20/service-2.json.gz
new file mode 100644
index 00000000..31fa7179
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/redshift-data/2019-12-20/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/redshift-serverless/2021-04-21/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/redshift-serverless/2021-04-21/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..aa110090
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/redshift-serverless/2021-04-21/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/redshift-serverless/2021-04-21/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/redshift-serverless/2021-04-21/paginators-1.json
new file mode 100644
index 00000000..6b74f501
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/redshift-serverless/2021-04-21/paginators-1.json
@@ -0,0 +1,76 @@
+{
+  "pagination": {
+    "ListEndpointAccess": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "endpoints"
+    },
+    "ListNamespaces": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "namespaces"
+    },
+    "ListRecoveryPoints": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "recoveryPoints"
+    },
+    "ListSnapshots": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "snapshots"
+    },
+    "ListUsageLimits": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "usageLimits"
+    },
+    "ListWorkgroups": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "workgroups"
+    },
+    "ListTableRestoreStatus": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "tableRestoreStatuses"
+    },
+    "ListCustomDomainAssociations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "associations"
+    },
+    "ListScheduledActions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "scheduledActions"
+    },
+    "ListSnapshotCopyConfigurations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "snapshotCopyConfigurations"
+    },
+    "ListManagedWorkgroups": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "managedWorkgroups"
+    },
+    "ListTracks": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "tracks"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/redshift-serverless/2021-04-21/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/redshift-serverless/2021-04-21/service-2.json.gz
new file mode 100644
index 00000000..ed5e7748
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/redshift-serverless/2021-04-21/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/redshift/2012-12-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/redshift/2012-12-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..45c07df9
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/redshift/2012-12-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/redshift/2012-12-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/redshift/2012-12-01/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/redshift/2012-12-01/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/redshift/2012-12-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/redshift/2012-12-01/paginators-1.json
new file mode 100644
index 00000000..97559e47
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/redshift/2012-12-01/paginators-1.json
@@ -0,0 +1,226 @@
+{
+  "pagination": {
+    "DescribeClusterParameterGroups": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "ParameterGroups"
+    },
+    "DescribeClusterParameters": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "Parameters"
+    },
+    "DescribeClusterSecurityGroups": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "ClusterSecurityGroups"
+    },
+    "DescribeClusterSnapshots": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "Snapshots"
+    },
+    "DescribeClusterSubnetGroups": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "ClusterSubnetGroups"
+    },
+    "DescribeClusterVersions": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "ClusterVersions"
+    },
+    "DescribeClusters": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "Clusters"
+    },
+    "DescribeDefaultClusterParameters": {
+      "input_token": "Marker",
+      "output_token": "DefaultClusterParameters.Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "DefaultClusterParameters.Parameters"
+    },
+    "DescribeEventSubscriptions": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "EventSubscriptionsList"
+    },
+    "DescribeEvents": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "Events"
+    },
+    "DescribeHsmClientCertificates": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "HsmClientCertificates"
+    },
+    "DescribeHsmConfigurations": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "HsmConfigurations"
+    },
+    "DescribeOrderableClusterOptions": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "OrderableClusterOptions"
+    },
+    "DescribeReservedNodeOfferings": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "ReservedNodeOfferings"
+    },
+    "DescribeReservedNodes": {
+      "input_token": "Marker",
+      "output_token": "Marker",
+      "limit_key": "MaxRecords",
+      "result_key": "ReservedNodes"
+    },
+    "DescribeClusterDbRevisions": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "ClusterDbRevisions"
+    },
+    "DescribeClusterTracks": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "MaintenanceTracks"
+    },
+    "DescribeSnapshotCopyGrants": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "SnapshotCopyGrants"
+    },
+    "DescribeSnapshotSchedules": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "SnapshotSchedules"
+    },
+    "DescribeTableRestoreStatus": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "TableRestoreStatusDetails"
+    },
+    "DescribeTags": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "TaggedResources"
+    },
+    "GetReservedNodeExchangeOfferings": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "ReservedNodeOfferings"
+    },
+    "DescribeNodeConfigurationOptions": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "NodeConfigurationOptionList"
+    },
+    "DescribeScheduledActions": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "ScheduledActions"
+    },
+    "DescribeUsageLimits": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "UsageLimits"
+    },
+    "DescribeEndpointAccess": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "EndpointAccessList"
+    },
+    "DescribeEndpointAuthorization": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "EndpointAuthorizationList"
+    },
+    "DescribeDataShares": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "DataShares"
+    },
+    "DescribeDataSharesForConsumer": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "DataShares"
+    },
+    "DescribeDataSharesForProducer": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "DataShares"
+    },
+    "DescribeReservedNodeExchangeStatus": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "ReservedNodeExchangeStatusDetails"
+    },
+    "GetReservedNodeExchangeConfigurationOptions": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "ReservedNodeConfigurationOptionList"
+    },
+    "DescribeCustomDomainAssociations": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "Associations"
+    },
+    "DescribeInboundIntegrations": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "InboundIntegrations"
+    },
+    "DescribeRedshiftIdcApplications": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "RedshiftIdcApplications"
+    },
+    "ListRecommendations": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "Recommendations"
+    },
+    "DescribeIntegrations": {
+      "input_token": "Marker",
+      "limit_key": "MaxRecords",
+      "output_token": "Marker",
+      "result_key": "Integrations"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/redshift/2012-12-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/redshift/2012-12-01/service-2.json.gz
new file mode 100644
index 00000000..99900d82
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/redshift/2012-12-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/redshift/2012-12-01/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/redshift/2012-12-01/waiters-2.json
new file mode 100644
index 00000000..164e9b0d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/redshift/2012-12-01/waiters-2.json
@@ -0,0 +1,97 @@
+{
+  "version": 2,
+  "waiters": {
+    "ClusterAvailable": {
+      "delay": 60,
+      "operation": "DescribeClusters",
+      "maxAttempts": 30,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Clusters[].ClusterStatus"
+        },
+        {
+          "expected": "deleting",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Clusters[].ClusterStatus"
+        },
+        {
+          "expected": "ClusterNotFound",
+          "matcher": "error",
+          "state": "retry"
+        }
+      ]
+    },
+    "ClusterDeleted": {
+      "delay": 60,
+      "operation": "DescribeClusters",
+      "maxAttempts": 30,
+      "acceptors": [
+        {
+          "expected": "ClusterNotFound",
+          "matcher": "error",
+          "state": "success"
+        },
+        {
+          "expected": "creating",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Clusters[].ClusterStatus"
+        },
+        {
+          "expected": "modifying",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Clusters[].ClusterStatus"
+        }
+      ]
+    },
+    "ClusterRestored": {
+      "operation": "DescribeClusters",
+      "maxAttempts": 30,
+      "delay": 60,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "pathAll",
+          "argument": "Clusters[].RestoreStatus.Status",
+          "expected": "completed"
+        },
+        {
+          "state": "failure",
+          "matcher": "pathAny",
+          "argument": "Clusters[].ClusterStatus",
+          "expected": "deleting"
+        }
+      ]
+    },
+    "SnapshotAvailable": {
+      "delay": 15,
+      "operation": "DescribeClusterSnapshots",
+      "maxAttempts": 20,
+      "acceptors": [
+        {
+          "expected": "available",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "Snapshots[].Status"
+        },
+        {
+          "expected": "failed",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Snapshots[].Status"
+        },
+        {
+          "expected": "deleted",
+          "matcher": "pathAny",
+          "state": "failure",
+          "argument": "Snapshots[].Status"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/rekognition/2016-06-27/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/rekognition/2016-06-27/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..0aaa4e4e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/rekognition/2016-06-27/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/rekognition/2016-06-27/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/rekognition/2016-06-27/examples-1.json
new file mode 100644
index 00000000..039e04d6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/rekognition/2016-06-27/examples-1.json
@@ -0,0 +1,651 @@
+{
+  "version": "1.0",
+  "examples": {
+    "CompareFaces": [
+      {
+        "input": {
+          "SimilarityThreshold": 90,
+          "SourceImage": {
+            "S3Object": {
+              "Bucket": "mybucket",
+              "Name": "mysourceimage"
+            }
+          },
+          "TargetImage": {
+            "S3Object": {
+              "Bucket": "mybucket",
+              "Name": "mytargetimage"
+            }
+          }
+        },
+        "output": {
+          "FaceMatches": [
+            {
+              "Face": {
+                "BoundingBox": {
+                  "Height": 0.33481481671333313,
+                  "Left": 0.31888890266418457,
+                  "Top": 0.4933333396911621,
+                  "Width": 0.25
+                },
+                "Confidence": 99.9991226196289
+              },
+              "Similarity": 100
+            }
+          ],
+          "SourceImageFace": {
+            "BoundingBox": {
+              "Height": 0.33481481671333313,
+              "Left": 0.31888890266418457,
+              "Top": 0.4933333396911621,
+              "Width": 0.25
+            },
+            "Confidence": 99.9991226196289
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This operation compares the largest face detected in the source image with each face detected in the target image.",
+        "id": "to-compare-two-images-1482181985581",
+        "title": "To compare two images"
+      }
+    ],
+    "CreateCollection": [
+      {
+        "input": {
+          "CollectionId": "myphotos"
+        },
+        "output": {
+          "CollectionArn": "aws:rekognition:us-west-2:123456789012:collection/myphotos",
+          "StatusCode": 200
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This operation creates a Rekognition collection for storing image data.",
+        "id": "to-create-a-collection-1481833313674",
+        "title": "To create a collection"
+      }
+    ],
+    "DeleteCollection": [
+      {
+        "input": {
+          "CollectionId": "myphotos"
+        },
+        "output": {
+          "StatusCode": 200
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This operation deletes a Rekognition collection.",
+        "id": "to-delete-a-collection-1481838179973",
+        "title": "To delete a collection"
+      }
+    ],
+    "DeleteFaces": [
+      {
+        "input": {
+          "CollectionId": "myphotos",
+          "FaceIds": [
+            "ff43d742-0c13-5d16-a3e8-03d3f58e980b"
+          ]
+        },
+        "output": {
+          "DeletedFaces": [
+            "ff43d742-0c13-5d16-a3e8-03d3f58e980b"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This operation deletes one or more faces from a Rekognition collection.",
+        "id": "to-delete-a-face-1482182799377",
+        "title": "To delete a face"
+      }
+    ],
+    "DetectFaces": [
+      {
+        "input": {
+          "Image": {
+            "S3Object": {
+              "Bucket": "mybucket",
+              "Name": "myphoto"
+            }
+          }
+        },
+        "output": {
+          "FaceDetails": [
+            {
+              "BoundingBox": {
+                "Height": 0.18000000715255737,
+                "Left": 0.5555555820465088,
+                "Top": 0.33666667342185974,
+                "Width": 0.23999999463558197
+              },
+              "Confidence": 100,
+              "Landmarks": [
+                {
+                  "Type": "eyeLeft",
+                  "X": 0.6394737362861633,
+                  "Y": 0.40819624066352844
+                },
+                {
+                  "Type": "eyeRight",
+                  "X": 0.7266660928726196,
+                  "Y": 0.41039225459098816
+                },
+                {
+                  "Type": "eyeRight",
+                  "X": 0.6912462115287781,
+                  "Y": 0.44240960478782654
+                },
+                {
+                  "Type": "mouthDown",
+                  "X": 0.6306198239326477,
+                  "Y": 0.46700039505958557
+                },
+                {
+                  "Type": "mouthUp",
+                  "X": 0.7215608954429626,
+                  "Y": 0.47114261984825134
+                }
+              ],
+              "Pose": {
+                "Pitch": 4.050806522369385,
+                "Roll": 0.9950747489929199,
+                "Yaw": 13.693790435791016
+              },
+              "Quality": {
+                "Brightness": 37.60169982910156,
+                "Sharpness": 80
+              }
+            }
+          ],
+          "OrientationCorrection": "ROTATE_0"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This operation detects faces in an image stored in an AWS S3 bucket.",
+        "id": "to-detect-faces-in-an-image-1481841782793",
+        "title": "To detect faces in an image"
+      }
+    ],
+    "DetectLabels": [
+      {
+        "input": {
+          "Image": {
+            "S3Object": {
+              "Bucket": "mybucket",
+              "Name": "myphoto"
+            }
+          },
+          "MaxLabels": 123,
+          "MinConfidence": 70
+        },
+        "output": {
+          "Labels": [
+            {
+              "Confidence": 99.25072479248047,
+              "Name": "People"
+            },
+            {
+              "Confidence": 99.25074005126953,
+              "Name": "Person"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This operation detects labels in the supplied image",
+        "id": "to-detect-labels-1481834255770",
+        "title": "To detect labels"
+      }
+    ],
+    "IndexFaces": [
+      {
+        "input": {
+          "CollectionId": "myphotos",
+          "DetectionAttributes": [
+
+          ],
+          "ExternalImageId": "myphotoid",
+          "Image": {
+            "S3Object": {
+              "Bucket": "mybucket",
+              "Name": "myphoto"
+            }
+          }
+        },
+        "output": {
+          "FaceRecords": [
+            {
+              "Face": {
+                "BoundingBox": {
+                  "Height": 0.33481481671333313,
+                  "Left": 0.31888890266418457,
+                  "Top": 0.4933333396911621,
+                  "Width": 0.25
+                },
+                "Confidence": 99.9991226196289,
+                "FaceId": "ff43d742-0c13-5d16-a3e8-03d3f58e980b",
+                "ImageId": "465f4e93-763e-51d0-b030-b9667a2d94b1"
+              },
+              "FaceDetail": {
+                "BoundingBox": {
+                  "Height": 0.33481481671333313,
+                  "Left": 0.31888890266418457,
+                  "Top": 0.4933333396911621,
+                  "Width": 0.25
+                },
+                "Confidence": 99.9991226196289,
+                "Landmarks": [
+                  {
+                    "Type": "eyeLeft",
+                    "X": 0.3976764678955078,
+                    "Y": 0.6248345971107483
+                  },
+                  {
+                    "Type": "eyeRight",
+                    "X": 0.4810936450958252,
+                    "Y": 0.6317117214202881
+                  },
+                  {
+                    "Type": "noseLeft",
+                    "X": 0.41986238956451416,
+                    "Y": 0.7111940383911133
+                  },
+                  {
+                    "Type": "mouthDown",
+                    "X": 0.40525302290916443,
+                    "Y": 0.7497701048851013
+                  },
+                  {
+                    "Type": "mouthUp",
+                    "X": 0.4753248989582062,
+                    "Y": 0.7558549642562866
+                  }
+                ],
+                "Pose": {
+                  "Pitch": -9.713645935058594,
+                  "Roll": 4.707281112670898,
+                  "Yaw": -24.438663482666016
+                },
+                "Quality": {
+                  "Brightness": 29.23358917236328,
+                  "Sharpness": 80
+                }
+              }
+            },
+            {
+              "Face": {
+                "BoundingBox": {
+                  "Height": 0.32592591643333435,
+                  "Left": 0.5144444704055786,
+                  "Top": 0.15111111104488373,
+                  "Width": 0.24444444477558136
+                },
+                "Confidence": 99.99950408935547,
+                "FaceId": "8be04dba-4e58-520d-850e-9eae4af70eb2",
+                "ImageId": "465f4e93-763e-51d0-b030-b9667a2d94b1"
+              },
+              "FaceDetail": {
+                "BoundingBox": {
+                  "Height": 0.32592591643333435,
+                  "Left": 0.5144444704055786,
+                  "Top": 0.15111111104488373,
+                  "Width": 0.24444444477558136
+                },
+                "Confidence": 99.99950408935547,
+                "Landmarks": [
+                  {
+                    "Type": "eyeLeft",
+                    "X": 0.6006892323493958,
+                    "Y": 0.290842205286026
+                  },
+                  {
+                    "Type": "eyeRight",
+                    "X": 0.6808141469955444,
+                    "Y": 0.29609042406082153
+                  },
+                  {
+                    "Type": "noseLeft",
+                    "X": 0.6395332217216492,
+                    "Y": 0.3522595763206482
+                  },
+                  {
+                    "Type": "mouthDown",
+                    "X": 0.5892083048820496,
+                    "Y": 0.38689887523651123
+                  },
+                  {
+                    "Type": "mouthUp",
+                    "X": 0.674560010433197,
+                    "Y": 0.394125759601593
+                  }
+                ],
+                "Pose": {
+                  "Pitch": -4.683138370513916,
+                  "Roll": 2.1029529571533203,
+                  "Yaw": 6.716655254364014
+                },
+                "Quality": {
+                  "Brightness": 34.951698303222656,
+                  "Sharpness": 160
+                }
+              }
+            }
+          ],
+          "OrientationCorrection": "ROTATE_0"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This operation detects faces in an image and adds them to the specified Rekognition collection.",
+        "id": "to-add-a-face-to-a-collection-1482179542923",
+        "title": "To add a face to a collection"
+      }
+    ],
+    "ListCollections": [
+      {
+        "input": {
+        },
+        "output": {
+          "CollectionIds": [
+            "myphotos"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This operation returns a list of Rekognition collections.",
+        "id": "to-list-the-collections-1482179199088",
+        "title": "To list the collections"
+      }
+    ],
+    "ListFaces": [
+      {
+        "input": {
+          "CollectionId": "myphotos",
+          "MaxResults": 20
+        },
+        "output": {
+          "Faces": [
+            {
+              "BoundingBox": {
+                "Height": 0.18000000715255737,
+                "Left": 0.5555559992790222,
+                "Top": 0.336667001247406,
+                "Width": 0.23999999463558197
+              },
+              "Confidence": 100,
+              "FaceId": "1c62e8b5-69a7-5b7d-b3cd-db4338a8a7e7",
+              "ImageId": "147fdf82-7a71-52cf-819b-e786c7b9746e"
+            },
+            {
+              "BoundingBox": {
+                "Height": 0.16555599868297577,
+                "Left": 0.30963000655174255,
+                "Top": 0.7066670060157776,
+                "Width": 0.22074100375175476
+              },
+              "Confidence": 100,
+              "FaceId": "29a75abe-397b-5101-ba4f-706783b2246c",
+              "ImageId": "147fdf82-7a71-52cf-819b-e786c7b9746e"
+            },
+            {
+              "BoundingBox": {
+                "Height": 0.3234420120716095,
+                "Left": 0.3233329951763153,
+                "Top": 0.5,
+                "Width": 0.24222199618816376
+              },
+              "Confidence": 99.99829864501953,
+              "FaceId": "38271d79-7bc2-5efb-b752-398a8d575b85",
+              "ImageId": "d5631190-d039-54e4-b267-abd22c8647c5"
+            },
+            {
+              "BoundingBox": {
+                "Height": 0.03555560111999512,
+                "Left": 0.37388700246810913,
+                "Top": 0.2477779984474182,
+                "Width": 0.04747769981622696
+              },
+              "Confidence": 99.99210357666016,
+              "FaceId": "3b01bef0-c883-5654-ba42-d5ad28b720b3",
+              "ImageId": "812d9f04-86f9-54fc-9275-8d0dcbcb6784"
+            },
+            {
+              "BoundingBox": {
+                "Height": 0.05333330109715462,
+                "Left": 0.2937690019607544,
+                "Top": 0.35666701197624207,
+                "Width": 0.07121659815311432
+              },
+              "Confidence": 99.99919891357422,
+              "FaceId": "4839a608-49d0-566c-8301-509d71b534d1",
+              "ImageId": "812d9f04-86f9-54fc-9275-8d0dcbcb6784"
+            },
+            {
+              "BoundingBox": {
+                "Height": 0.3249259889125824,
+                "Left": 0.5155559778213501,
+                "Top": 0.1513350009918213,
+                "Width": 0.24333299696445465
+              },
+              "Confidence": 99.99949645996094,
+              "FaceId": "70008e50-75e4-55d0-8e80-363fb73b3a14",
+              "ImageId": "d5631190-d039-54e4-b267-abd22c8647c5"
+            },
+            {
+              "BoundingBox": {
+                "Height": 0.03777780011296272,
+                "Left": 0.7002969980239868,
+                "Top": 0.18777799606323242,
+                "Width": 0.05044509842991829
+              },
+              "Confidence": 99.92639923095703,
+              "FaceId": "7f5f88ed-d684-5a88-b0df-01e4a521552b",
+              "ImageId": "812d9f04-86f9-54fc-9275-8d0dcbcb6784"
+            },
+            {
+              "BoundingBox": {
+                "Height": 0.05555560067296028,
+                "Left": 0.13946600258350372,
+                "Top": 0.46333301067352295,
+                "Width": 0.07270029932260513
+              },
+              "Confidence": 99.99469757080078,
+              "FaceId": "895b4e2c-81de-5902-a4bd-d1792bda00b2",
+              "ImageId": "812d9f04-86f9-54fc-9275-8d0dcbcb6784"
+            },
+            {
+              "BoundingBox": {
+                "Height": 0.3259260058403015,
+                "Left": 0.5144439935684204,
+                "Top": 0.15111100673675537,
+                "Width": 0.24444399774074554
+              },
+              "Confidence": 99.99949645996094,
+              "FaceId": "8be04dba-4e58-520d-850e-9eae4af70eb2",
+              "ImageId": "465f4e93-763e-51d0-b030-b9667a2d94b1"
+            },
+            {
+              "BoundingBox": {
+                "Height": 0.18888899683952332,
+                "Left": 0.3783380091190338,
+                "Top": 0.2355560064315796,
+                "Width": 0.25222599506378174
+              },
+              "Confidence": 99.9999008178711,
+              "FaceId": "908544ad-edc3-59df-8faf-6a87cc256cf5",
+              "ImageId": "3c731605-d772-541a-a5e7-0375dbc68a07"
+            },
+            {
+              "BoundingBox": {
+                "Height": 0.33481499552726746,
+                "Left": 0.31888899207115173,
+                "Top": 0.49333301186561584,
+                "Width": 0.25
+              },
+              "Confidence": 99.99909973144531,
+              "FaceId": "ff43d742-0c13-5d16-a3e8-03d3f58e980b",
+              "ImageId": "465f4e93-763e-51d0-b030-b9667a2d94b1"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This operation lists the faces in a Rekognition collection.",
+        "id": "to-list-the-faces-in-a-collection-1482181416530",
+        "title": "To list the faces in a collection"
+      }
+    ],
+    "SearchFaces": [
+      {
+        "input": {
+          "CollectionId": "myphotos",
+          "FaceId": "70008e50-75e4-55d0-8e80-363fb73b3a14",
+          "FaceMatchThreshold": 90,
+          "MaxFaces": 10
+        },
+        "output": {
+          "FaceMatches": [
+            {
+              "Face": {
+                "BoundingBox": {
+                  "Height": 0.3259260058403015,
+                  "Left": 0.5144439935684204,
+                  "Top": 0.15111100673675537,
+                  "Width": 0.24444399774074554
+                },
+                "Confidence": 99.99949645996094,
+                "FaceId": "8be04dba-4e58-520d-850e-9eae4af70eb2",
+                "ImageId": "465f4e93-763e-51d0-b030-b9667a2d94b1"
+              },
+              "Similarity": 99.97222137451172
+            },
+            {
+              "Face": {
+                "BoundingBox": {
+                  "Height": 0.16555599868297577,
+                  "Left": 0.30963000655174255,
+                  "Top": 0.7066670060157776,
+                  "Width": 0.22074100375175476
+                },
+                "Confidence": 100,
+                "FaceId": "29a75abe-397b-5101-ba4f-706783b2246c",
+                "ImageId": "147fdf82-7a71-52cf-819b-e786c7b9746e"
+              },
+              "Similarity": 97.04154968261719
+            },
+            {
+              "Face": {
+                "BoundingBox": {
+                  "Height": 0.18888899683952332,
+                  "Left": 0.3783380091190338,
+                  "Top": 0.2355560064315796,
+                  "Width": 0.25222599506378174
+                },
+                "Confidence": 99.9999008178711,
+                "FaceId": "908544ad-edc3-59df-8faf-6a87cc256cf5",
+                "ImageId": "3c731605-d772-541a-a5e7-0375dbc68a07"
+              },
+              "Similarity": 95.94520568847656
+            }
+          ],
+          "SearchedFaceId": "70008e50-75e4-55d0-8e80-363fb73b3a14"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This operation searches for matching faces in the collection the supplied face belongs to.",
+        "id": "to-delete-a-face-1482182799377",
+        "title": "To delete a face"
+      }
+    ],
+    "SearchFacesByImage": [
+      {
+        "input": {
+          "CollectionId": "myphotos",
+          "FaceMatchThreshold": 95,
+          "Image": {
+            "S3Object": {
+              "Bucket": "mybucket",
+              "Name": "myphoto"
+            }
+          },
+          "MaxFaces": 5
+        },
+        "output": {
+          "FaceMatches": [
+            {
+              "Face": {
+                "BoundingBox": {
+                  "Height": 0.3234420120716095,
+                  "Left": 0.3233329951763153,
+                  "Top": 0.5,
+                  "Width": 0.24222199618816376
+                },
+                "Confidence": 99.99829864501953,
+                "FaceId": "38271d79-7bc2-5efb-b752-398a8d575b85",
+                "ImageId": "d5631190-d039-54e4-b267-abd22c8647c5"
+              },
+              "Similarity": 99.97036743164062
+            }
+          ],
+          "SearchedFaceBoundingBox": {
+            "Height": 0.33481481671333313,
+            "Left": 0.31888890266418457,
+            "Top": 0.4933333396911621,
+            "Width": 0.25
+          },
+          "SearchedFaceConfidence": 99.9991226196289
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This operation searches for faces in a Rekognition collection that match the largest face in an S3 bucket stored image.",
+        "id": "to-search-for-faces-matching-a-supplied-image-1482175994491",
+        "title": "To search for faces matching a supplied image"
+      }
+    ]
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/rekognition/2016-06-27/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/rekognition/2016-06-27/paginators-1.json
new file mode 100644
index 00000000..436503d6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/rekognition/2016-06-27/paginators-1.json
@@ -0,0 +1,64 @@
+{
+  "pagination": {
+    "ListCollections": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": [
+        "CollectionIds",
+        "FaceModelVersions"
+      ]
+    },
+    "ListFaces": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Faces",
+      "non_aggregate_keys": [
+        "FaceModelVersion"
+      ]
+    },
+    "ListStreamProcessors": {
+      "result_key": "StreamProcessors",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "DescribeProjectVersions": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ProjectVersionDescriptions"
+    },
+    "DescribeProjects": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ProjectDescriptions"
+    },
+    "ListDatasetEntries": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "DatasetEntries"
+    },
+    "ListDatasetLabels": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "DatasetLabelDescriptions"
+    },
+    "ListProjectPolicies": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ProjectPolicies"
+    },
+    "ListUsers": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Users"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/rekognition/2016-06-27/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/rekognition/2016-06-27/service-2.json.gz
new file mode 100644
index 00000000..2f4fa5fc
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/rekognition/2016-06-27/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/rekognition/2016-06-27/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/rekognition/2016-06-27/waiters-2.json
new file mode 100644
index 00000000..c67dc623
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/rekognition/2016-06-27/waiters-2.json
@@ -0,0 +1,45 @@
+{
+    "version": 2,
+    "waiters": {
+        "ProjectVersionTrainingCompleted": {
+            "description": "Wait until the ProjectVersion training completes.",
+            "operation": "DescribeProjectVersions",
+            "delay": 120,
+            "maxAttempts": 360,
+            "acceptors": [
+                {
+                    "state": "success",
+                    "matcher": "pathAll",
+                    "argument": "ProjectVersionDescriptions[].Status",
+                    "expected": "TRAINING_COMPLETED"
+                },
+                {
+                    "state": "failure",
+                    "matcher": "pathAny",
+                    "argument": "ProjectVersionDescriptions[].Status",
+                    "expected": "TRAINING_FAILED"
+                }
+            ]
+        },
+        "ProjectVersionRunning": {
+            "description": "Wait until the ProjectVersion is running.",
+            "delay": 30,
+            "maxAttempts": 40,
+            "operation": "DescribeProjectVersions",
+            "acceptors": [
+                {
+                    "state": "success",
+                    "matcher": "pathAll",
+                    "argument": "ProjectVersionDescriptions[].Status",
+                    "expected": "RUNNING"
+                },
+                {
+                    "state": "failure",
+                    "matcher": "pathAny",
+                    "argument": "ProjectVersionDescriptions[].Status",
+                    "expected": "FAILED"
+                }
+            ]
+        }
+    }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/repostspace/2022-05-13/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/repostspace/2022-05-13/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..3badf3c8
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/repostspace/2022-05-13/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/repostspace/2022-05-13/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/repostspace/2022-05-13/paginators-1.json
new file mode 100644
index 00000000..75eb51bd
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/repostspace/2022-05-13/paginators-1.json
@@ -0,0 +1,10 @@
+{
+  "pagination": {
+    "ListSpaces": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "spaces"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/repostspace/2022-05-13/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/repostspace/2022-05-13/service-2.json.gz
new file mode 100644
index 00000000..7c4d43eb
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/repostspace/2022-05-13/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/resiliencehub/2020-04-30/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/resiliencehub/2020-04-30/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..2f2ba298
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/resiliencehub/2020-04-30/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/resiliencehub/2020-04-30/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/resiliencehub/2020-04-30/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/resiliencehub/2020-04-30/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/resiliencehub/2020-04-30/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/resiliencehub/2020-04-30/paginators-1.json
new file mode 100644
index 00000000..665877a8
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/resiliencehub/2020-04-30/paginators-1.json
@@ -0,0 +1,22 @@
+{
+  "pagination": {
+    "ListAppAssessmentResourceDrifts": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "resourceDrifts"
+    },
+    "ListResourceGroupingRecommendations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "groupingRecommendations"
+    },
+    "ListMetrics": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "rows"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/resiliencehub/2020-04-30/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/resiliencehub/2020-04-30/service-2.json.gz
new file mode 100644
index 00000000..4be0ddc8
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/resiliencehub/2020-04-30/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/resource-explorer-2/2022-07-28/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/resource-explorer-2/2022-07-28/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..dddb88ea
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/resource-explorer-2/2022-07-28/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/resource-explorer-2/2022-07-28/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/resource-explorer-2/2022-07-28/paginators-1.json
new file mode 100644
index 00000000..ed6acb73
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/resource-explorer-2/2022-07-28/paginators-1.json
@@ -0,0 +1,46 @@
+{
+  "pagination": {
+    "ListIndexes": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Indexes"
+    },
+    "ListSupportedResourceTypes": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ResourceTypes"
+    },
+    "ListViews": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Views"
+    },
+    "Search": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Resources"
+    },
+    "ListIndexesForMembers": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Indexes"
+    },
+    "ListResources": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Resources"
+    },
+    "ListManagedViews": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ManagedViews"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/resource-explorer-2/2022-07-28/paginators-1.sdk-extras.json b/.venv/lib/python3.12/site-packages/botocore/data/resource-explorer-2/2022-07-28/paginators-1.sdk-extras.json
new file mode 100644
index 00000000..92a00fe2
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/resource-explorer-2/2022-07-28/paginators-1.sdk-extras.json
@@ -0,0 +1,18 @@
+{
+  "version": 1.0,
+  "merge": {
+    "pagination": {
+      "Search": {
+        "non_aggregate_keys": [
+          "ViewArn",
+          "Count"
+        ]
+      },
+      "ListResources": {
+        "non_aggregate_keys": [
+          "ViewArn"
+        ]
+      }
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/resource-explorer-2/2022-07-28/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/resource-explorer-2/2022-07-28/service-2.json.gz
new file mode 100644
index 00000000..88d892a4
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/resource-explorer-2/2022-07-28/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/resource-groups/2017-11-27/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/resource-groups/2017-11-27/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..ef7cf620
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/resource-groups/2017-11-27/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/resource-groups/2017-11-27/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/resource-groups/2017-11-27/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/resource-groups/2017-11-27/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/resource-groups/2017-11-27/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/resource-groups/2017-11-27/paginators-1.json
new file mode 100644
index 00000000..1210885d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/resource-groups/2017-11-27/paginators-1.json
@@ -0,0 +1,40 @@
+{
+  "pagination": {
+    "ListGroups": {
+      "result_key": [
+        "GroupIdentifiers",
+        "Groups"
+      ],
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "SearchResources": {
+      "result_key": "ResourceIdentifiers",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListGroupResources": {
+      "result_key": [
+        "ResourceIdentifiers",
+        "Resources"
+      ],
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListGroupingStatuses": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "GroupingStatuses"
+    },
+    "ListTagSyncTasks": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "TagSyncTasks"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/resource-groups/2017-11-27/paginators-1.sdk-extras.json b/.venv/lib/python3.12/site-packages/botocore/data/resource-groups/2017-11-27/paginators-1.sdk-extras.json
new file mode 100644
index 00000000..eaa52320
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/resource-groups/2017-11-27/paginators-1.sdk-extras.json
@@ -0,0 +1,12 @@
+{
+  "version": 1.0,
+  "merge": {
+    "pagination": {
+      "ListGroupingStatuses": {
+        "non_aggregate_keys": [
+          "Group"
+        ]
+      }
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/resource-groups/2017-11-27/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/resource-groups/2017-11-27/service-2.json.gz
new file mode 100644
index 00000000..2b5f725a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/resource-groups/2017-11-27/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/resourcegroupstaggingapi/2017-01-26/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/resourcegroupstaggingapi/2017-01-26/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..159fbd98
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/resourcegroupstaggingapi/2017-01-26/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/resourcegroupstaggingapi/2017-01-26/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/resourcegroupstaggingapi/2017-01-26/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/resourcegroupstaggingapi/2017-01-26/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/resourcegroupstaggingapi/2017-01-26/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/resourcegroupstaggingapi/2017-01-26/paginators-1.json
new file mode 100644
index 00000000..7312afc5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/resourcegroupstaggingapi/2017-01-26/paginators-1.json
@@ -0,0 +1,26 @@
+{
+  "pagination": {
+    "GetResources": {
+      "input_token": "PaginationToken",
+      "limit_key": "ResourcesPerPage",
+      "output_token": "PaginationToken",
+      "result_key": "ResourceTagMappingList"
+    },
+    "GetTagKeys": {
+      "input_token": "PaginationToken",
+      "output_token": "PaginationToken",
+      "result_key": "TagKeys"
+    },
+    "GetTagValues": {
+      "input_token": "PaginationToken",
+      "output_token": "PaginationToken",
+      "result_key": "TagValues"
+    },
+    "GetComplianceSummary": {
+      "input_token": "PaginationToken",
+      "limit_key": "MaxResults",
+      "output_token": "PaginationToken",
+      "result_key": "SummaryList"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/resourcegroupstaggingapi/2017-01-26/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/resourcegroupstaggingapi/2017-01-26/service-2.json.gz
new file mode 100644
index 00000000..579c09b3
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/resourcegroupstaggingapi/2017-01-26/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/robomaker/2018-06-29/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/robomaker/2018-06-29/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..f62c6f39
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/robomaker/2018-06-29/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/robomaker/2018-06-29/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/robomaker/2018-06-29/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/robomaker/2018-06-29/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/robomaker/2018-06-29/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/robomaker/2018-06-29/paginators-1.json
new file mode 100644
index 00000000..380e723c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/robomaker/2018-06-29/paginators-1.json
@@ -0,0 +1,70 @@
+{
+  "pagination": {
+    "ListDeploymentJobs": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "deploymentJobs"
+    },
+    "ListFleets": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "fleetDetails"
+    },
+    "ListRobotApplications": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "robotApplicationSummaries"
+    },
+    "ListRobots": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "robots"
+    },
+    "ListSimulationApplications": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "simulationApplicationSummaries"
+    },
+    "ListSimulationJobs": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "simulationJobSummaries"
+    },
+    "ListSimulationJobBatches": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "simulationJobBatchSummaries"
+    },
+    "ListWorldExportJobs": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "worldExportJobSummaries"
+    },
+    "ListWorldGenerationJobs": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "worldGenerationJobSummaries"
+    },
+    "ListWorldTemplates": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "templateSummaries"
+    },
+    "ListWorlds": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "worldSummaries"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/robomaker/2018-06-29/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/robomaker/2018-06-29/service-2.json.gz
new file mode 100644
index 00000000..fa1db5d0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/robomaker/2018-06-29/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/rolesanywhere/2018-05-10/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/rolesanywhere/2018-05-10/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..b957678b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/rolesanywhere/2018-05-10/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/rolesanywhere/2018-05-10/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/rolesanywhere/2018-05-10/paginators-1.json
new file mode 100644
index 00000000..97298614
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/rolesanywhere/2018-05-10/paginators-1.json
@@ -0,0 +1,24 @@
+{
+  "pagination": {
+    "ListCrls": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "crls"
+    },
+    "ListProfiles": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "profiles"
+    },
+    "ListSubjects": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "subjects"
+    },
+    "ListTrustAnchors": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "trustAnchors"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/rolesanywhere/2018-05-10/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/rolesanywhere/2018-05-10/service-2.json.gz
new file mode 100644
index 00000000..e7eaf612
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/rolesanywhere/2018-05-10/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/route53-recovery-cluster/2019-12-02/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/route53-recovery-cluster/2019-12-02/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..3c4d8253
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/route53-recovery-cluster/2019-12-02/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/route53-recovery-cluster/2019-12-02/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/route53-recovery-cluster/2019-12-02/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/route53-recovery-cluster/2019-12-02/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/route53-recovery-cluster/2019-12-02/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/route53-recovery-cluster/2019-12-02/paginators-1.json
new file mode 100644
index 00000000..a2ef01b9
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/route53-recovery-cluster/2019-12-02/paginators-1.json
@@ -0,0 +1,10 @@
+{
+  "pagination": {
+    "ListRoutingControls": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "RoutingControls"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/route53-recovery-cluster/2019-12-02/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/route53-recovery-cluster/2019-12-02/service-2.json.gz
new file mode 100644
index 00000000..314c3c9e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/route53-recovery-cluster/2019-12-02/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/route53-recovery-control-config/2020-11-02/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/route53-recovery-control-config/2020-11-02/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..bcc15545
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/route53-recovery-control-config/2020-11-02/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/route53-recovery-control-config/2020-11-02/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/route53-recovery-control-config/2020-11-02/paginators-1.json
new file mode 100644
index 00000000..024682ba
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/route53-recovery-control-config/2020-11-02/paginators-1.json
@@ -0,0 +1,34 @@
+{
+  "pagination": {
+    "ListAssociatedRoute53HealthChecks": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "HealthCheckIds"
+    },
+    "ListClusters": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Clusters"
+    },
+    "ListControlPanels": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ControlPanels"
+    },
+    "ListRoutingControls": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "RoutingControls"
+    },
+    "ListSafetyRules": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "SafetyRules"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/route53-recovery-control-config/2020-11-02/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/route53-recovery-control-config/2020-11-02/service-2.json.gz
new file mode 100644
index 00000000..0e8348f0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/route53-recovery-control-config/2020-11-02/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/route53-recovery-control-config/2020-11-02/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/route53-recovery-control-config/2020-11-02/waiters-2.json
new file mode 100644
index 00000000..1794757e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/route53-recovery-control-config/2020-11-02/waiters-2.json
@@ -0,0 +1,152 @@
+{
+  "version": 2,
+  "waiters": {
+    "ClusterCreated": {
+      "description": "Wait until a cluster is created",
+      "operation": "DescribeCluster",
+      "delay": 5,
+      "maxAttempts": 26,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "path",
+          "argument": "Cluster.Status",
+          "expected": "DEPLOYED"
+        },
+        {
+          "state": "retry",
+          "matcher": "path",
+          "argument": "Cluster.Status",
+          "expected": "PENDING"
+        },
+        {
+          "state": "retry",
+          "matcher": "status",
+          "expected": 500
+        }
+      ]
+    },
+    "ClusterDeleted": {
+      "description": "Wait for a cluster to be deleted",
+      "operation": "DescribeCluster",
+      "delay": 5,
+      "maxAttempts": 26,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "status",
+          "expected": 404
+        },
+        {
+          "state": "retry",
+          "matcher": "path",
+          "argument": "Cluster.Status",
+          "expected": "PENDING_DELETION"
+        },
+        {
+          "state": "retry",
+          "matcher": "status",
+          "expected": 500
+        }
+      ]
+    },
+    "ControlPanelCreated": {
+      "description": "Wait until a control panel is created",
+      "operation": "DescribeControlPanel",
+      "delay": 5,
+      "maxAttempts": 26,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "path",
+          "argument": "ControlPanel.Status",
+          "expected": "DEPLOYED"
+        },
+        {
+          "state": "retry",
+          "matcher": "path",
+          "argument": "ControlPanel.Status",
+          "expected": "PENDING"
+        },
+        {
+          "state": "retry",
+          "matcher": "status",
+          "expected": 500
+        }
+      ]
+    },
+    "ControlPanelDeleted": {
+      "description": "Wait until a control panel is deleted",
+      "operation": "DescribeControlPanel",
+      "delay": 5,
+      "maxAttempts": 26,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "status",
+          "expected": 404
+        },
+        {
+          "state": "retry",
+          "matcher": "path",
+          "argument": "ControlPanel.Status",
+          "expected": "PENDING_DELETION"
+        },
+        {
+          "state": "retry",
+          "matcher": "status",
+          "expected": 500
+        }
+      ]
+    },
+    "RoutingControlCreated": {
+      "description": "Wait until a routing control is created",
+      "operation": "DescribeRoutingControl",
+      "delay": 5,
+      "maxAttempts": 26,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "path",
+          "argument": "RoutingControl.Status",
+          "expected": "DEPLOYED"
+        },
+        {
+          "state": "retry",
+          "matcher": "path",
+          "argument": "RoutingControl.Status",
+          "expected": "PENDING"
+        },
+        {
+          "state": "retry",
+          "matcher": "status",
+          "expected": 500
+        }
+      ]
+    },
+    "RoutingControlDeleted": {
+      "description": "Wait for a routing control to be deleted",
+      "operation": "DescribeRoutingControl",
+      "delay": 5,
+      "maxAttempts": 26,
+      "acceptors": [
+        {
+          "state": "success",
+          "matcher": "status",
+          "expected": 404
+        },
+        {
+          "state": "retry",
+          "matcher": "path",
+          "argument": "RoutingControl.Status",
+          "expected": "PENDING_DELETION"
+        },
+        {
+          "state": "retry",
+          "matcher": "status",
+          "expected": 500
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/route53-recovery-readiness/2019-12-02/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/route53-recovery-readiness/2019-12-02/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..405d5da8
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/route53-recovery-readiness/2019-12-02/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/route53-recovery-readiness/2019-12-02/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/route53-recovery-readiness/2019-12-02/paginators-1.json
new file mode 100644
index 00000000..a71f0880
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/route53-recovery-readiness/2019-12-02/paginators-1.json
@@ -0,0 +1,77 @@
+{
+  "pagination": {
+    "ListReadinessChecks": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ReadinessChecks"
+    },
+    "ListResourceSets": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ResourceSets"
+    },
+    "ListCells": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Cells"
+    },
+    "ListRecoveryGroups": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "RecoveryGroups"
+    },
+    "ListRules": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Rules"
+    },
+    "ListCrossAccountAuthorizations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "CrossAccountAuthorizations"
+    },
+    "GetCellReadinessSummary": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ReadinessChecks",
+      "non_aggregate_keys": [
+        "Readiness"
+      ]
+    },
+    "GetRecoveryGroupReadinessSummary": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ReadinessChecks",
+      "non_aggregate_keys": [
+        "Readiness"
+      ]
+    },
+    "GetReadinessCheckStatus": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Resources",
+      "non_aggregate_keys": [
+        "Readiness",
+        "Messages"
+      ]
+    },
+    "GetReadinessCheckResourceStatus": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Rules",
+      "non_aggregate_keys": [
+        "Readiness"
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/route53-recovery-readiness/2019-12-02/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/route53-recovery-readiness/2019-12-02/service-2.json.gz
new file mode 100644
index 00000000..974b7919
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/route53-recovery-readiness/2019-12-02/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/route53/2013-04-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/route53/2013-04-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..de47c0f5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/route53/2013-04-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/route53/2013-04-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/route53/2013-04-01/examples-1.json
new file mode 100644
index 00000000..d757c2b9
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/route53/2013-04-01/examples-1.json
@@ -0,0 +1,762 @@
+{
+  "version": "1.0",
+  "examples": {
+    "AssociateVPCWithHostedZone": [
+      {
+        "input": {
+          "Comment": "",
+          "HostedZoneId": "Z3M3LMPEXAMPLE",
+          "VPC": {
+            "VPCId": "vpc-1a2b3c4d",
+            "VPCRegion": "us-east-2"
+          }
+        },
+        "output": {
+          "ChangeInfo": {
+            "Comment": "",
+            "Id": "/change/C3HC6WDB2UANE2",
+            "Status": "INSYNC",
+            "SubmittedAt": "2017-01-31T01:36:41.958Z"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+            "Status": "Valid values are PENDING and INSYNC.",
+            "SubmittedAt": "The date and time are in Coordinated Universal Time (UTC) and ISO 8601 format."
+          }
+        },
+        "description": "The following example associates the VPC with ID vpc-1a2b3c4d with the hosted zone with ID Z3M3LMPEXAMPLE.",
+        "id": "to-associate-a-vpc-with-a-hosted-zone-1484069228699",
+        "title": "To associate a VPC with a hosted zone"
+      }
+    ],
+    "ChangeResourceRecordSets": [
+      {
+        "input": {
+          "ChangeBatch": {
+            "Changes": [
+              {
+                "Action": "CREATE",
+                "ResourceRecordSet": {
+                  "Name": "example.com",
+                  "ResourceRecords": [
+                    {
+                      "Value": "192.0.2.44"
+                    }
+                  ],
+                  "TTL": 60,
+                  "Type": "A"
+                }
+              }
+            ],
+            "Comment": "Web server for example.com"
+          },
+          "HostedZoneId": "Z3M3LMPEXAMPLE"
+        },
+        "output": {
+          "ChangeInfo": {
+            "Comment": "Web server for example.com",
+            "Id": "/change/C2682N5HXP0BZ4",
+            "Status": "PENDING",
+            "SubmittedAt": "2017-02-10T01:36:41.958Z"
+          }
+        },
+        "comments": {
+          "input": {
+            "Action": "Valid values: CREATE, DELETE, UPSERT",
+            "TTL": "The amount of time in seconds that you want DNS resolvers to cache the values in this resource record set before submitting another request to Route 53",
+            "Value": "The value that is applicable to the value of Type. For example, if Type is A, Value is an IPv4 address"
+          },
+          "output": {
+            "SubmittedAt": "The date and time are in Coordinated Universal Time (UTC) and ISO 8601 format."
+          }
+        },
+        "description": "The following example creates a resource record set that routes Internet traffic to a resource with an IP address of 192.0.2.44.",
+        "id": "to-create-update-or-delete-resource-record-sets-1484344703668",
+        "title": "To create a basic resource record set"
+      },
+      {
+        "input": {
+          "ChangeBatch": {
+            "Changes": [
+              {
+                "Action": "CREATE",
+                "ResourceRecordSet": {
+                  "HealthCheckId": "abcdef11-2222-3333-4444-555555fedcba",
+                  "Name": "example.com",
+                  "ResourceRecords": [
+                    {
+                      "Value": "192.0.2.44"
+                    }
+                  ],
+                  "SetIdentifier": "Seattle data center",
+                  "TTL": 60,
+                  "Type": "A",
+                  "Weight": 100
+                }
+              },
+              {
+                "Action": "CREATE",
+                "ResourceRecordSet": {
+                  "HealthCheckId": "abcdef66-7777-8888-9999-000000fedcba",
+                  "Name": "example.com",
+                  "ResourceRecords": [
+                    {
+                      "Value": "192.0.2.45"
+                    }
+                  ],
+                  "SetIdentifier": "Portland data center",
+                  "TTL": 60,
+                  "Type": "A",
+                  "Weight": 200
+                }
+              }
+            ],
+            "Comment": "Web servers for example.com"
+          },
+          "HostedZoneId": "Z3M3LMPEXAMPLE"
+        },
+        "output": {
+          "ChangeInfo": {
+            "Comment": "Web servers for example.com",
+            "Id": "/change/C2682N5HXP0BZ4",
+            "Status": "PENDING",
+            "SubmittedAt": "2017-02-10T01:36:41.958Z"
+          }
+        },
+        "comments": {
+          "input": {
+            "Action": "Valid values: CREATE, DELETE, UPSERT",
+            "TTL": "The amount of time in seconds that you want DNS resolvers to cache the values in this resource record set before submitting another request to Route 53. TTLs must be the same for all weighted resource record sets that have the same name and type.",
+            "Value": "The value that is applicable to the value of Type. For example, if Type is A, Value is an IPv4 address"
+          },
+          "output": {
+            "SubmittedAt": "The date and time are in Coordinated Universal Time (UTC) and ISO 8601 format."
+          }
+        },
+        "description": "The following example creates two weighted resource record sets. The resource with a Weight of 100 will get 1/3rd of traffic (100/100+200), and the other resource will get the rest of the traffic for example.com.",
+        "id": "to-create-weighted-resource-record-sets-1484348208522",
+        "title": "To create weighted resource record sets"
+      },
+      {
+        "input": {
+          "ChangeBatch": {
+            "Changes": [
+              {
+                "Action": "CREATE",
+                "ResourceRecordSet": {
+                  "AliasTarget": {
+                    "DNSName": "d123rk29d0stfj.cloudfront.net",
+                    "EvaluateTargetHealth": false,
+                    "HostedZoneId": "Z2FDTNDATAQYW2"
+                  },
+                  "Name": "example.com",
+                  "Type": "A"
+                }
+              }
+            ],
+            "Comment": "CloudFront distribution for example.com"
+          },
+          "HostedZoneId": "Z3M3LMPEXAMPLE"
+        },
+        "output": {
+          "ChangeInfo": {
+            "Comment": "CloudFront distribution for example.com",
+            "Id": "/change/C2682N5HXP0BZ4",
+            "Status": "PENDING",
+            "SubmittedAt": "2017-02-10T01:36:41.958Z"
+          }
+        },
+        "comments": {
+          "input": {
+            "Action": "Valid values: CREATE, DELETE, UPSERT",
+            "DNSName": "The DNS name assigned to the resource",
+            "HostedZoneId": "Depends on the type of resource that you want to route traffic to",
+            "Type": "A or AAAA, depending on the type of resource that you want to route traffic to"
+          },
+          "output": {
+            "SubmittedAt": "The date and time are in Coordinated Universal Time (UTC) and ISO 8601 format."
+          }
+        },
+        "description": "The following example creates an alias resource record set that routes traffic to a CloudFront distribution.",
+        "id": "to-create-an-alias-resource-record-set-1484348404062",
+        "title": "To create an alias resource record set"
+      },
+      {
+        "input": {
+          "ChangeBatch": {
+            "Changes": [
+              {
+                "Action": "CREATE",
+                "ResourceRecordSet": {
+                  "AliasTarget": {
+                    "DNSName": "example-com-123456789.us-east-2.elb.amazonaws.com ",
+                    "EvaluateTargetHealth": true,
+                    "HostedZoneId": "Z3AADJGX6KTTL2"
+                  },
+                  "Name": "example.com",
+                  "SetIdentifier": "Ohio region",
+                  "Type": "A",
+                  "Weight": 100
+                }
+              },
+              {
+                "Action": "CREATE",
+                "ResourceRecordSet": {
+                  "AliasTarget": {
+                    "DNSName": "example-com-987654321.us-west-2.elb.amazonaws.com ",
+                    "EvaluateTargetHealth": true,
+                    "HostedZoneId": "Z1H1FL5HABSF5"
+                  },
+                  "Name": "example.com",
+                  "SetIdentifier": "Oregon region",
+                  "Type": "A",
+                  "Weight": 200
+                }
+              }
+            ],
+            "Comment": "ELB load balancers for example.com"
+          },
+          "HostedZoneId": "Z3M3LMPEXAMPLE"
+        },
+        "output": {
+          "ChangeInfo": {
+            "Comment": "ELB load balancers for example.com",
+            "Id": "/change/C2682N5HXP0BZ4",
+            "Status": "PENDING",
+            "SubmittedAt": "2017-02-10T01:36:41.958Z"
+          }
+        },
+        "comments": {
+          "input": {
+            "Action": "Valid values: CREATE, DELETE, UPSERT",
+            "DNSName": "The DNS name assigned to the resource",
+            "HostedZoneId": "Depends on the type of resource that you want to route traffic to",
+            "Type": "A or AAAA, depending on the type of resource that you want to route traffic to"
+          },
+          "output": {
+            "SubmittedAt": "The date and time are in Coordinated Universal Time (UTC) and ISO 8601 format."
+          }
+        },
+        "description": "The following example creates two weighted alias resource record sets that route traffic to ELB load balancers. The resource with a Weight of 100 will get 1/3rd of traffic (100/100+200), and the other resource will get the rest of the traffic for example.com.",
+        "id": "to-create-weighted-alias-resource-record-sets-1484349467416",
+        "title": "To create weighted alias resource record sets"
+      },
+      {
+        "input": {
+          "ChangeBatch": {
+            "Changes": [
+              {
+                "Action": "CREATE",
+                "ResourceRecordSet": {
+                  "HealthCheckId": "abcdef11-2222-3333-4444-555555fedcba",
+                  "Name": "example.com",
+                  "Region": "us-east-2",
+                  "ResourceRecords": [
+                    {
+                      "Value": "192.0.2.44"
+                    }
+                  ],
+                  "SetIdentifier": "Ohio region",
+                  "TTL": 60,
+                  "Type": "A"
+                }
+              },
+              {
+                "Action": "CREATE",
+                "ResourceRecordSet": {
+                  "HealthCheckId": "abcdef66-7777-8888-9999-000000fedcba",
+                  "Name": "example.com",
+                  "Region": "us-west-2",
+                  "ResourceRecords": [
+                    {
+                      "Value": "192.0.2.45"
+                    }
+                  ],
+                  "SetIdentifier": "Oregon region",
+                  "TTL": 60,
+                  "Type": "A"
+                }
+              }
+            ],
+            "Comment": "EC2 instances for example.com"
+          },
+          "HostedZoneId": "Z3M3LMPEXAMPLE"
+        },
+        "output": {
+          "ChangeInfo": {
+            "Comment": "EC2 instances for example.com",
+            "Id": "/change/C2682N5HXP0BZ4",
+            "Status": "PENDING",
+            "SubmittedAt": "2017-02-10T01:36:41.958Z"
+          }
+        },
+        "comments": {
+          "input": {
+            "Action": "Valid values: CREATE, DELETE, UPSERT",
+            "TTL": "The amount of time in seconds that you want DNS resolvers to cache the values in this resource record set before submitting another request to Route 53",
+            "Value": "The value that is applicable to the value of Type. For example, if Type is A, Value is an IPv4 address"
+          },
+          "output": {
+            "SubmittedAt": "The date and time are in Coordinated Universal Time (UTC) and ISO 8601 format."
+          }
+        },
+        "description": "The following example creates two latency resource record sets that route traffic to EC2 instances. Traffic for example.com is routed either to the Ohio region or the Oregon region, depending on the latency between the user and those regions.",
+        "id": "to-create-latency-resource-record-sets-1484350219917",
+        "title": "To create latency resource record sets"
+      },
+      {
+        "input": {
+          "ChangeBatch": {
+            "Changes": [
+              {
+                "Action": "CREATE",
+                "ResourceRecordSet": {
+                  "AliasTarget": {
+                    "DNSName": "example-com-123456789.us-east-2.elb.amazonaws.com ",
+                    "EvaluateTargetHealth": true,
+                    "HostedZoneId": "Z3AADJGX6KTTL2"
+                  },
+                  "Name": "example.com",
+                  "Region": "us-east-2",
+                  "SetIdentifier": "Ohio region",
+                  "Type": "A"
+                }
+              },
+              {
+                "Action": "CREATE",
+                "ResourceRecordSet": {
+                  "AliasTarget": {
+                    "DNSName": "example-com-987654321.us-west-2.elb.amazonaws.com ",
+                    "EvaluateTargetHealth": true,
+                    "HostedZoneId": "Z1H1FL5HABSF5"
+                  },
+                  "Name": "example.com",
+                  "Region": "us-west-2",
+                  "SetIdentifier": "Oregon region",
+                  "Type": "A"
+                }
+              }
+            ],
+            "Comment": "ELB load balancers for example.com"
+          },
+          "HostedZoneId": "Z3M3LMPEXAMPLE"
+        },
+        "output": {
+          "ChangeInfo": {
+            "Comment": "ELB load balancers for example.com",
+            "Id": "/change/C2682N5HXP0BZ4",
+            "Status": "PENDING",
+            "SubmittedAt": "2017-02-10T01:36:41.958Z"
+          }
+        },
+        "comments": {
+          "input": {
+            "Action": "Valid values: CREATE, DELETE, UPSERT",
+            "DNSName": "The DNS name assigned to the resource",
+            "HostedZoneId": "Depends on the type of resource that you want to route traffic to",
+            "Type": "A or AAAA, depending on the type of resource that you want to route traffic to"
+          },
+          "output": {
+            "SubmittedAt": "The date and time are in Coordinated Universal Time (UTC) and ISO 8601 format."
+          }
+        },
+        "description": "The following example creates two latency alias resource record sets that route traffic for example.com to ELB load balancers. Requests are routed either to the Ohio region or the Oregon region, depending on the latency between the user and those regions.",
+        "id": "to-create-latency-alias-resource-record-sets-1484601774179",
+        "title": "To create latency alias resource record sets"
+      },
+      {
+        "input": {
+          "ChangeBatch": {
+            "Changes": [
+              {
+                "Action": "CREATE",
+                "ResourceRecordSet": {
+                  "Failover": "PRIMARY",
+                  "HealthCheckId": "abcdef11-2222-3333-4444-555555fedcba",
+                  "Name": "example.com",
+                  "ResourceRecords": [
+                    {
+                      "Value": "192.0.2.44"
+                    }
+                  ],
+                  "SetIdentifier": "Ohio region",
+                  "TTL": 60,
+                  "Type": "A"
+                }
+              },
+              {
+                "Action": "CREATE",
+                "ResourceRecordSet": {
+                  "Failover": "SECONDARY",
+                  "HealthCheckId": "abcdef66-7777-8888-9999-000000fedcba",
+                  "Name": "example.com",
+                  "ResourceRecords": [
+                    {
+                      "Value": "192.0.2.45"
+                    }
+                  ],
+                  "SetIdentifier": "Oregon region",
+                  "TTL": 60,
+                  "Type": "A"
+                }
+              }
+            ],
+            "Comment": "Failover configuration for example.com"
+          },
+          "HostedZoneId": "Z3M3LMPEXAMPLE"
+        },
+        "output": {
+          "ChangeInfo": {
+            "Comment": "Failover configuration for example.com",
+            "Id": "/change/C2682N5HXP0BZ4",
+            "Status": "PENDING",
+            "SubmittedAt": "2017-02-10T01:36:41.958Z"
+          }
+        },
+        "comments": {
+          "input": {
+            "Action": "Valid values: CREATE, DELETE, UPSERT",
+            "TTL": "The amount of time in seconds that you want DNS resolvers to cache the values in this resource record set before submitting another request to Route 53",
+            "Value": "The value that is applicable to the value of Type. For example, if Type is A, Value is an IPv4 address"
+          },
+          "output": {
+            "SubmittedAt": "The date and time are in Coordinated Universal Time (UTC) and ISO 8601 format."
+          }
+        },
+        "description": "The following example creates primary and secondary failover resource record sets that route traffic to EC2 instances. Traffic is generally routed to the primary resource, in the Ohio region. If that resource is unavailable, traffic is routed to the secondary resource, in the Oregon region.",
+        "id": "to-create-failover-resource-record-sets-1484604541740",
+        "title": "To create failover resource record sets"
+      },
+      {
+        "input": {
+          "ChangeBatch": {
+            "Changes": [
+              {
+                "Action": "CREATE",
+                "ResourceRecordSet": {
+                  "AliasTarget": {
+                    "DNSName": "example-com-123456789.us-east-2.elb.amazonaws.com ",
+                    "EvaluateTargetHealth": true,
+                    "HostedZoneId": "Z3AADJGX6KTTL2"
+                  },
+                  "Failover": "PRIMARY",
+                  "Name": "example.com",
+                  "SetIdentifier": "Ohio region",
+                  "Type": "A"
+                }
+              },
+              {
+                "Action": "CREATE",
+                "ResourceRecordSet": {
+                  "AliasTarget": {
+                    "DNSName": "example-com-987654321.us-west-2.elb.amazonaws.com ",
+                    "EvaluateTargetHealth": true,
+                    "HostedZoneId": "Z1H1FL5HABSF5"
+                  },
+                  "Failover": "SECONDARY",
+                  "Name": "example.com",
+                  "SetIdentifier": "Oregon region",
+                  "Type": "A"
+                }
+              }
+            ],
+            "Comment": "Failover alias configuration for example.com"
+          },
+          "HostedZoneId": "Z3M3LMPEXAMPLE"
+        },
+        "output": {
+          "ChangeInfo": {
+            "Comment": "Failover alias configuration for example.com",
+            "Id": "/change/C2682N5HXP0BZ4",
+            "Status": "PENDING",
+            "SubmittedAt": "2017-02-10T01:36:41.958Z"
+          }
+        },
+        "comments": {
+          "input": {
+            "Action": "Valid values: CREATE, DELETE, UPSERT",
+            "DNSName": "The DNS name assigned to the resource",
+            "HostedZoneId": "Depends on the type of resource that you want to route traffic to",
+            "Type": "A or AAAA, depending on the type of resource that you want to route traffic to"
+          },
+          "output": {
+            "SubmittedAt": "The date and time are in Coordinated Universal Time (UTC) and ISO 8601 format."
+          }
+        },
+        "description": "The following example creates primary and secondary failover alias resource record sets that route traffic to ELB load balancers. Traffic is generally routed to the primary resource, in the Ohio region. If that resource is unavailable, traffic is routed to the secondary resource, in the Oregon region.",
+        "id": "to-create-failover-alias-resource-record-sets-1484607497724",
+        "title": "To create failover alias resource record sets"
+      },
+      {
+        "input": {
+          "ChangeBatch": {
+            "Changes": [
+              {
+                "Action": "CREATE",
+                "ResourceRecordSet": {
+                  "GeoLocation": {
+                    "ContinentCode": "NA"
+                  },
+                  "Name": "example.com",
+                  "ResourceRecords": [
+                    {
+                      "Value": "192.0.2.44"
+                    }
+                  ],
+                  "SetIdentifier": "North America",
+                  "TTL": 60,
+                  "Type": "A"
+                }
+              },
+              {
+                "Action": "CREATE",
+                "ResourceRecordSet": {
+                  "GeoLocation": {
+                    "ContinentCode": "SA"
+                  },
+                  "Name": "example.com",
+                  "ResourceRecords": [
+                    {
+                      "Value": "192.0.2.45"
+                    }
+                  ],
+                  "SetIdentifier": "South America",
+                  "TTL": 60,
+                  "Type": "A"
+                }
+              },
+              {
+                "Action": "CREATE",
+                "ResourceRecordSet": {
+                  "GeoLocation": {
+                    "ContinentCode": "EU"
+                  },
+                  "Name": "example.com",
+                  "ResourceRecords": [
+                    {
+                      "Value": "192.0.2.46"
+                    }
+                  ],
+                  "SetIdentifier": "Europe",
+                  "TTL": 60,
+                  "Type": "A"
+                }
+              },
+              {
+                "Action": "CREATE",
+                "ResourceRecordSet": {
+                  "GeoLocation": {
+                    "CountryCode": "*"
+                  },
+                  "Name": "example.com",
+                  "ResourceRecords": [
+                    {
+                      "Value": "192.0.2.47"
+                    }
+                  ],
+                  "SetIdentifier": "Other locations",
+                  "TTL": 60,
+                  "Type": "A"
+                }
+              }
+            ],
+            "Comment": "Geolocation configuration for example.com"
+          },
+          "HostedZoneId": "Z3M3LMPEXAMPLE"
+        },
+        "output": {
+          "ChangeInfo": {
+            "Comment": "Geolocation configuration for example.com",
+            "Id": "/change/C2682N5HXP0BZ4",
+            "Status": "PENDING",
+            "SubmittedAt": "2017-02-10T01:36:41.958Z"
+          }
+        },
+        "comments": {
+          "input": {
+            "Action": "Valid values: CREATE, DELETE, UPSERT",
+            "TTL": "The amount of time in seconds that you want DNS resolvers to cache the values in this resource record set before submitting another request to Route 53",
+            "Value": "The value that is applicable to the value of Type. For example, if Type is A, Value is an IPv4 address"
+          },
+          "output": {
+            "SubmittedAt": "The date and time are in Coordinated Universal Time (UTC) and ISO 8601 format."
+          }
+        },
+        "description": "The following example creates four geolocation resource record sets that use IPv4 addresses to route traffic to resources such as web servers running on EC2 instances. Traffic is routed to one of four IP addresses, for North America (NA), for South America (SA), for Europe (EU), and for all other locations (*).",
+        "id": "to-create-geolocation-resource-record-sets-1484612462466",
+        "title": "To create geolocation resource record sets"
+      },
+      {
+        "input": {
+          "ChangeBatch": {
+            "Changes": [
+              {
+                "Action": "CREATE",
+                "ResourceRecordSet": {
+                  "AliasTarget": {
+                    "DNSName": "example-com-123456789.us-east-2.elb.amazonaws.com ",
+                    "EvaluateTargetHealth": true,
+                    "HostedZoneId": "Z3AADJGX6KTTL2"
+                  },
+                  "GeoLocation": {
+                    "ContinentCode": "NA"
+                  },
+                  "Name": "example.com",
+                  "SetIdentifier": "North America",
+                  "Type": "A"
+                }
+              },
+              {
+                "Action": "CREATE",
+                "ResourceRecordSet": {
+                  "AliasTarget": {
+                    "DNSName": "example-com-234567890.sa-east-1.elb.amazonaws.com ",
+                    "EvaluateTargetHealth": true,
+                    "HostedZoneId": "Z2P70J7HTTTPLU"
+                  },
+                  "GeoLocation": {
+                    "ContinentCode": "SA"
+                  },
+                  "Name": "example.com",
+                  "SetIdentifier": "South America",
+                  "Type": "A"
+                }
+              },
+              {
+                "Action": "CREATE",
+                "ResourceRecordSet": {
+                  "AliasTarget": {
+                    "DNSName": "example-com-234567890.eu-central-1.elb.amazonaws.com ",
+                    "EvaluateTargetHealth": true,
+                    "HostedZoneId": "Z215JYRZR1TBD5"
+                  },
+                  "GeoLocation": {
+                    "ContinentCode": "EU"
+                  },
+                  "Name": "example.com",
+                  "SetIdentifier": "Europe",
+                  "Type": "A"
+                }
+              },
+              {
+                "Action": "CREATE",
+                "ResourceRecordSet": {
+                  "AliasTarget": {
+                    "DNSName": "example-com-234567890.ap-southeast-1.elb.amazonaws.com ",
+                    "EvaluateTargetHealth": true,
+                    "HostedZoneId": "Z1LMS91P8CMLE5"
+                  },
+                  "GeoLocation": {
+                    "CountryCode": "*"
+                  },
+                  "Name": "example.com",
+                  "SetIdentifier": "Other locations",
+                  "Type": "A"
+                }
+              }
+            ],
+            "Comment": "Geolocation alias configuration for example.com"
+          },
+          "HostedZoneId": "Z3M3LMPEXAMPLE"
+        },
+        "output": {
+          "ChangeInfo": {
+            "Comment": "Geolocation alias configuration for example.com",
+            "Id": "/change/C2682N5HXP0BZ4",
+            "Status": "PENDING",
+            "SubmittedAt": "2017-02-10T01:36:41.958Z"
+          }
+        },
+        "comments": {
+          "input": {
+            "Action": "Valid values: CREATE, DELETE, UPSERT",
+            "DNSName": "The DNS name assigned to the resource",
+            "HostedZoneId": "Depends on the type of resource that you want to route traffic to",
+            "Type": "A or AAAA, depending on the type of resource that you want to route traffic to"
+          },
+          "output": {
+            "SubmittedAt": "The date and time are in Coordinated Universal Time (UTC) and ISO 8601 format."
+          }
+        },
+        "description": "The following example creates four geolocation alias resource record sets that route traffic to ELB load balancers. Traffic is routed to one of four IP addresses, for North America (NA), for South America (SA), for Europe (EU), and for all other locations (*).",
+        "id": "to-create-geolocation-alias-resource-record-sets-1484612871203",
+        "title": "To create geolocation alias resource record sets"
+      }
+    ],
+    "ChangeTagsForResource": [
+      {
+        "input": {
+          "AddTags": [
+            {
+              "Key": "apex",
+              "Value": "3874"
+            },
+            {
+              "Key": "acme",
+              "Value": "4938"
+            }
+          ],
+          "RemoveTagKeys": [
+            "Nadir"
+          ],
+          "ResourceId": "Z3M3LMPEXAMPLE",
+          "ResourceType": "hostedzone"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+            "ResourceType": "Valid values are healthcheck and hostedzone."
+          },
+          "output": {
+          }
+        },
+        "description": "The following example adds two tags and removes one tag from the hosted zone with ID Z3M3LMPEXAMPLE.",
+        "id": "to-add-or-remove-tags-from-a-hosted-zone-or-health-check-1484084752409",
+        "title": "To add or remove tags from a hosted zone or health check"
+      }
+    ],
+    "GetHostedZone": [
+      {
+        "input": {
+          "Id": "Z3M3LMPEXAMPLE"
+        },
+        "output": {
+          "DelegationSet": {
+            "NameServers": [
+              "ns-2048.awsdns-64.com",
+              "ns-2049.awsdns-65.net",
+              "ns-2050.awsdns-66.org",
+              "ns-2051.awsdns-67.co.uk"
+            ]
+          },
+          "HostedZone": {
+            "CallerReference": "C741617D-04E4-F8DE-B9D7-0D150FC61C2E",
+            "Config": {
+              "PrivateZone": false
+            },
+            "Id": "/hostedzone/Z3M3LMPEXAMPLE",
+            "Name": "myawsbucket.com.",
+            "ResourceRecordSetCount": 8
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+            "Id": "The ID of the hosted zone that you specified in the GetHostedZone request.",
+            "Name": "The name of the hosted zone.",
+            "NameServers": "The servers that you specify in your domain configuration.",
+            "PrivateZone": "True if this is a private hosted zone, false if it's a public hosted zone."
+          }
+        },
+        "description": "The following example gets information about the Z3M3LMPEXAMPLE hosted zone.",
+        "id": "to-get-information-about-a-hosted-zone-1481752361124",
+        "title": "To get information about a hosted zone"
+      }
+    ]
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/route53/2013-04-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/route53/2013-04-01/paginators-1.json
new file mode 100644
index 00000000..2c370965
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/route53/2013-04-01/paginators-1.json
@@ -0,0 +1,67 @@
+{
+  "pagination": {
+    "ListHealthChecks": {
+      "input_token": "Marker",
+      "output_token": "NextMarker",
+      "more_results": "IsTruncated",
+      "limit_key": "MaxItems",
+      "result_key": "HealthChecks"
+    },
+    "ListHostedZones": {
+      "input_token": "Marker",
+      "output_token": "NextMarker",
+      "more_results": "IsTruncated",
+      "limit_key": "MaxItems",
+      "result_key": "HostedZones"
+    },
+    "ListResourceRecordSets": {
+      "more_results": "IsTruncated",
+      "limit_key": "MaxItems",
+      "result_key": "ResourceRecordSets",
+      "input_token": [
+        "StartRecordName",
+        "StartRecordType",
+        "StartRecordIdentifier"
+      ],
+      "output_token": [
+        "NextRecordName",
+        "NextRecordType",
+        "NextRecordIdentifier"
+      ]
+    },
+    "ListVPCAssociationAuthorizations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "non_aggregate_keys": [
+        "HostedZoneId"
+      ],
+      "result_key": [
+        "VPCs"
+      ]
+    },
+    "ListQueryLoggingConfigs": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "QueryLoggingConfigs"
+    },
+    "ListCidrBlocks": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "CidrBlocks"
+    },
+    "ListCidrCollections": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "CidrCollections"
+    },
+    "ListCidrLocations": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "CidrLocations"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/route53/2013-04-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/route53/2013-04-01/service-2.json.gz
new file mode 100644
index 00000000..ef0bd4cb
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/route53/2013-04-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/route53/2013-04-01/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/route53/2013-04-01/waiters-2.json
new file mode 100644
index 00000000..94aad399
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/route53/2013-04-01/waiters-2.json
@@ -0,0 +1,18 @@
+{
+  "version": 2,
+  "waiters": {
+    "ResourceRecordSetsChanged": {
+      "delay": 30,
+      "maxAttempts": 60,
+      "operation": "GetChange",
+      "acceptors": [
+        {
+          "matcher": "path",
+          "expected": "INSYNC",
+          "argument": "ChangeInfo.Status",
+          "state": "success"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/route53domains/2014-05-15/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/route53domains/2014-05-15/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..22257665
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/route53domains/2014-05-15/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/route53domains/2014-05-15/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/route53domains/2014-05-15/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/route53domains/2014-05-15/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/route53domains/2014-05-15/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/route53domains/2014-05-15/paginators-1.json
new file mode 100644
index 00000000..c2f5cbcb
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/route53domains/2014-05-15/paginators-1.json
@@ -0,0 +1,29 @@
+{
+  "version": "1.0",
+  "pagination": {
+    "ListDomains": {
+      "limit_key": "MaxItems",
+      "input_token": "Marker",
+      "output_token": "NextPageMarker",
+      "result_key": "Domains"
+    },
+    "ListOperations": {
+      "limit_key": "MaxItems",
+      "input_token": "Marker",
+      "output_token": "NextPageMarker",
+      "result_key": "Operations"
+    },
+    "ViewBilling": {
+      "input_token": "Marker",
+      "limit_key": "MaxItems",
+      "output_token": "NextPageMarker",
+      "result_key": "BillingRecords"
+    },
+    "ListPrices": {
+      "input_token": "Marker",
+      "limit_key": "MaxItems",
+      "output_token": "NextPageMarker",
+      "result_key": "Prices"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/route53domains/2014-05-15/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/route53domains/2014-05-15/service-2.json.gz
new file mode 100644
index 00000000..cc13594a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/route53domains/2014-05-15/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/route53profiles/2018-05-10/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/route53profiles/2018-05-10/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..885e99a5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/route53profiles/2018-05-10/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/route53profiles/2018-05-10/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/route53profiles/2018-05-10/paginators-1.json
new file mode 100644
index 00000000..a321bb7c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/route53profiles/2018-05-10/paginators-1.json
@@ -0,0 +1,22 @@
+{
+  "pagination": {
+    "ListProfileAssociations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ProfileAssociations"
+    },
+    "ListProfileResourceAssociations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ProfileResourceAssociations"
+    },
+    "ListProfiles": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ProfileSummaries"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/route53profiles/2018-05-10/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/route53profiles/2018-05-10/service-2.json.gz
new file mode 100644
index 00000000..c9123a7c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/route53profiles/2018-05-10/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/route53resolver/2018-04-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/route53resolver/2018-04-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..d6603631
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/route53resolver/2018-04-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/route53resolver/2018-04-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/route53resolver/2018-04-01/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/route53resolver/2018-04-01/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/route53resolver/2018-04-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/route53resolver/2018-04-01/paginators-1.json
new file mode 100644
index 00000000..d6529438
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/route53resolver/2018-04-01/paginators-1.json
@@ -0,0 +1,100 @@
+{
+  "pagination": {
+    "ListTagsForResource": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Tags"
+    },
+    "ListResolverEndpointIpAddresses": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "IpAddresses"
+    },
+    "ListResolverEndpoints": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ResolverEndpoints"
+    },
+    "ListResolverQueryLogConfigAssociations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ResolverQueryLogConfigAssociations"
+    },
+    "ListResolverQueryLogConfigs": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ResolverQueryLogConfigs"
+    },
+    "ListResolverRuleAssociations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ResolverRuleAssociations"
+    },
+    "ListResolverRules": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ResolverRules"
+    },
+    "ListResolverDnssecConfigs": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ResolverDnssecConfigs"
+    },
+    "ListFirewallConfigs": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "FirewallConfigs"
+    },
+    "ListFirewallDomainLists": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "FirewallDomainLists"
+    },
+    "ListFirewallDomains": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Domains"
+    },
+    "ListFirewallRuleGroupAssociations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "FirewallRuleGroupAssociations"
+    },
+    "ListFirewallRuleGroups": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "FirewallRuleGroups"
+    },
+    "ListFirewallRules": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "FirewallRules"
+    },
+    "ListResolverConfigs": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ResolverConfigs"
+    },
+    "ListOutpostResolvers": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "OutpostResolvers"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/route53resolver/2018-04-01/paginators-1.sdk-extras.json b/.venv/lib/python3.12/site-packages/botocore/data/route53resolver/2018-04-01/paginators-1.sdk-extras.json
new file mode 100644
index 00000000..68087936
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/route53resolver/2018-04-01/paginators-1.sdk-extras.json
@@ -0,0 +1,39 @@
+{
+  "version": 1.0,
+  "merge": {
+    "pagination": {
+      "ListResolverEndpointIpAddresses": {
+        "non_aggregate_keys": [
+          "MaxResults"
+        ]
+      },
+      "ListResolverEndpoints": {
+        "non_aggregate_keys": [
+          "MaxResults"
+        ]
+      },
+      "ListResolverQueryLogConfigAssociations": {
+        "non_aggregate_keys": [
+          "TotalCount",
+          "TotalFilteredCount"
+        ]
+      },
+      "ListResolverQueryLogConfigs": {
+        "non_aggregate_keys": [
+          "TotalCount",
+          "TotalFilteredCount"
+        ]
+      },
+      "ListResolverRuleAssociations": {
+        "non_aggregate_keys": [
+          "MaxResults"
+        ]
+      },
+      "ListResolverRules": {
+        "non_aggregate_keys": [
+          "MaxResults"
+        ]
+      }
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/route53resolver/2018-04-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/route53resolver/2018-04-01/service-2.json.gz
new file mode 100644
index 00000000..0d2e7a92
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/route53resolver/2018-04-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/rum/2018-05-10/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/rum/2018-05-10/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..cbd877ee
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/rum/2018-05-10/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/rum/2018-05-10/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/rum/2018-05-10/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/rum/2018-05-10/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/rum/2018-05-10/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/rum/2018-05-10/paginators-1.json
new file mode 100644
index 00000000..1a044920
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/rum/2018-05-10/paginators-1.json
@@ -0,0 +1,28 @@
+{
+  "pagination": {
+    "GetAppMonitorData": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Events"
+    },
+    "ListAppMonitors": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "AppMonitorSummaries"
+    },
+    "BatchGetRumMetricDefinitions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "MetricDefinitions"
+    },
+    "ListRumMetricsDestinations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Destinations"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/rum/2018-05-10/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/rum/2018-05-10/service-2.json.gz
new file mode 100644
index 00000000..bd14cc73
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/rum/2018-05-10/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/s3/2006-03-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/s3/2006-03-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..f2df6cc7
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/s3/2006-03-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/s3/2006-03-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/s3/2006-03-01/examples-1.json
new file mode 100644
index 00000000..38a47bb3
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/s3/2006-03-01/examples-1.json
@@ -0,0 +1,1843 @@
+{
+  "version": "1.0",
+  "examples": {
+    "AbortMultipartUpload": [
+      {
+        "input": {
+          "Bucket": "examplebucket",
+          "Key": "bigobject",
+          "UploadId": "xadcOB_7YPBOJuoFiQ9cz4P3Pe6FIZwO4f7wN93uHsNBEw97pl5eNwzExg0LAT2dUN91cOmrEQHDsP3WA60CEg--"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example aborts a multipart upload.",
+        "id": "to-abort-a-multipart-upload-1481853354987",
+        "title": "To abort a multipart upload"
+      }
+    ],
+    "CompleteMultipartUpload": [
+      {
+        "input": {
+          "Bucket": "examplebucket",
+          "Key": "bigobject",
+          "MultipartUpload": {
+            "Parts": [
+              {
+                "ETag": "\"d8c2eafd90c266e19ab9dcacc479f8af\"",
+                "PartNumber": "1"
+              },
+              {
+                "ETag": "\"d8c2eafd90c266e19ab9dcacc479f8af\"",
+                "PartNumber": "2"
+              }
+            ]
+          },
+          "UploadId": "7YPBOJuoFiQ9cz4P3Pe6FIZwO4f7wN93uHsNBEw97pl5eNwzExg0LAT2dUN91cOmrEQHDsP3WA60CEg--"
+        },
+        "output": {
+          "Bucket": "acexamplebucket",
+          "ETag": "\"4d9031c7644d8081c2829f4ea23c55f7-2\"",
+          "Key": "bigobject",
+          "Location": "https://examplebucket.s3.amazonaws.com/bigobject"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example completes a multipart upload.",
+        "id": "to-complete-multipart-upload-1481851590483",
+        "title": "To complete multipart upload"
+      }
+    ],
+    "CopyObject": [
+      {
+        "input": {
+          "Bucket": "destinationbucket",
+          "CopySource": "/sourcebucket/HappyFacejpg",
+          "Key": "HappyFaceCopyjpg"
+        },
+        "output": {
+          "CopyObjectResult": {
+            "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"",
+            "LastModified": "2016-12-15T17:38:53.000Z"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example copies an object from one bucket to another.",
+        "id": "to-copy-an-object-1481823186878",
+        "title": "To copy an object"
+      }
+    ],
+    "CreateBucket": [
+      {
+        "input": {
+          "Bucket": "examplebucket",
+          "CreateBucketConfiguration": {
+            "LocationConstraint": "eu-west-1"
+          }
+        },
+        "output": {
+          "Location": "http://examplebucket.s3.amazonaws.com/"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example creates a bucket. The request specifies an AWS region where to create the bucket.",
+        "id": "to-create-a-bucket-in-a-specific-region-1483399072992",
+        "title": "To create a bucket in a specific region"
+      },
+      {
+        "input": {
+          "Bucket": "examplebucket"
+        },
+        "output": {
+          "Location": "/examplebucket"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example creates a bucket.",
+        "id": "to-create-a-bucket--1472851826060",
+        "title": "To create a bucket "
+      }
+    ],
+    "CreateMultipartUpload": [
+      {
+        "input": {
+          "Bucket": "examplebucket",
+          "Key": "largeobject"
+        },
+        "output": {
+          "Bucket": "examplebucket",
+          "Key": "largeobject",
+          "UploadId": "ibZBv_75gd9r8lH_gqXatLdxMVpAlj6ZQjEs.OwyF3953YdwbcQnMA2BLGn8Lx12fQNICtMw5KyteFeHw.Sjng--"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example initiates a multipart upload.",
+        "id": "to-initiate-a-multipart-upload-1481836794513",
+        "title": "To initiate a multipart upload"
+      }
+    ],
+    "DeleteBucket": [
+      {
+        "input": {
+          "Bucket": "forrandall2"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes the specified bucket.",
+        "id": "to-delete-a-bucket-1473108514262",
+        "title": "To delete a bucket"
+      }
+    ],
+    "DeleteBucketCors": [
+      {
+        "input": {
+          "Bucket": "examplebucket"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes CORS configuration on a bucket.",
+        "id": "to-delete-cors-configuration-on-a-bucket-1483042856112",
+        "title": "To delete cors configuration on a bucket."
+      }
+    ],
+    "DeleteBucketLifecycle": [
+      {
+        "input": {
+          "Bucket": "examplebucket"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes lifecycle configuration on a bucket.",
+        "id": "to-delete-lifecycle-configuration-on-a-bucket-1483043310583",
+        "title": "To delete lifecycle configuration on a bucket."
+      }
+    ],
+    "DeleteBucketPolicy": [
+      {
+        "input": {
+          "Bucket": "examplebucket"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes bucket policy on the specified bucket.",
+        "id": "to-delete-bucket-policy-1483043406577",
+        "title": "To delete bucket policy"
+      }
+    ],
+    "DeleteBucketReplication": [
+      {
+        "input": {
+          "Bucket": "example"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes replication configuration set on bucket.",
+        "id": "to-delete-bucket-replication-configuration-1483043684668",
+        "title": "To delete bucket replication configuration"
+      }
+    ],
+    "DeleteBucketTagging": [
+      {
+        "input": {
+          "Bucket": "examplebucket"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes bucket tags.",
+        "id": "to-delete-bucket-tags-1483043846509",
+        "title": "To delete bucket tags"
+      }
+    ],
+    "DeleteBucketWebsite": [
+      {
+        "input": {
+          "Bucket": "examplebucket"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes bucket website configuration.",
+        "id": "to-delete-bucket-website-configuration-1483043937825",
+        "title": "To delete bucket website configuration"
+      }
+    ],
+    "DeleteObject": [
+      {
+        "input": {
+          "Bucket": "examplebucket",
+          "Key": "objectkey.jpg"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes an object from an S3 bucket.",
+        "id": "to-delete-an-object-1472850136595",
+        "title": "To delete an object"
+      },
+      {
+        "input": {
+          "Bucket": "ExampleBucket",
+          "Key": "HappyFace.jpg"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes an object from a non-versioned bucket.",
+        "id": "to-delete-an-object-from-a-non-versioned-bucket-1481588533089",
+        "title": "To delete an object (from a non-versioned bucket)"
+      }
+    ],
+    "DeleteObjectTagging": [
+      {
+        "input": {
+          "Bucket": "examplebucket",
+          "Key": "HappyFace.jpg",
+          "VersionId": "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI"
+        },
+        "output": {
+          "VersionId": "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example removes tag set associated with the specified object version. The request specifies both the object key and object version.",
+        "id": "to-remove-tag-set-from-an-object-version-1483145285913",
+        "title": "To remove tag set from an object version"
+      },
+      {
+        "input": {
+          "Bucket": "examplebucket",
+          "Key": "HappyFace.jpg"
+        },
+        "output": {
+          "VersionId": "null"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example removes tag set associated with the specified object. If the bucket is versioning enabled, the operation removes tag set from the latest object version.",
+        "id": "to-remove-tag-set-from-an-object-1483145342862",
+        "title": "To remove tag set from an object"
+      }
+    ],
+    "DeleteObjects": [
+      {
+        "input": {
+          "Bucket": "examplebucket",
+          "Delete": {
+            "Objects": [
+              {
+                "Key": "HappyFace.jpg",
+                "VersionId": "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b"
+              },
+              {
+                "Key": "HappyFace.jpg",
+                "VersionId": "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd"
+              }
+            ],
+            "Quiet": false
+          }
+        },
+        "output": {
+          "Deleted": [
+            {
+              "Key": "HappyFace.jpg",
+              "VersionId": "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd"
+            },
+            {
+              "Key": "HappyFace.jpg",
+              "VersionId": "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes objects from a bucket. The request specifies object versions. S3 deletes specific object versions and returns the key and versions of deleted objects in the response.",
+        "id": "to-delete-multiple-object-versions-from-a-versioned-bucket-1483147087737",
+        "title": "To delete multiple object versions from a versioned bucket"
+      },
+      {
+        "input": {
+          "Bucket": "examplebucket",
+          "Delete": {
+            "Objects": [
+              {
+                "Key": "objectkey1"
+              },
+              {
+                "Key": "objectkey2"
+              }
+            ],
+            "Quiet": false
+          }
+        },
+        "output": {
+          "Deleted": [
+            {
+              "DeleteMarker": "true",
+              "DeleteMarkerVersionId": "A._w1z6EFiCF5uhtQMDal9JDkID9tQ7F",
+              "Key": "objectkey1"
+            },
+            {
+              "DeleteMarker": "true",
+              "DeleteMarkerVersionId": "iOd_ORxhkKe_e8G8_oSGxt2PjsCZKlkt",
+              "Key": "objectkey2"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes objects from a bucket. The bucket is versioned, and the request does not specify the object version to delete. In this case, all versions remain in the bucket and S3 adds a delete marker.",
+        "id": "to-delete-multiple-objects-from-a-versioned-bucket-1483146248805",
+        "title": "To delete multiple objects from a versioned bucket"
+      }
+    ],
+    "GetBucketCors": [
+      {
+        "input": {
+          "Bucket": "examplebucket"
+        },
+        "output": {
+          "CORSRules": [
+            {
+              "AllowedHeaders": [
+                "Authorization"
+              ],
+              "AllowedMethods": [
+                "GET"
+              ],
+              "AllowedOrigins": [
+                "*"
+              ],
+              "MaxAgeSeconds": 3000
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns cross-origin resource sharing (CORS) configuration set on a bucket.",
+        "id": "to-get-cors-configuration-set-on-a-bucket-1481596855475",
+        "title": "To get cors configuration set on a bucket"
+      }
+    ],
+    "GetBucketLifecycle": [
+      {
+        "input": {
+          "Bucket": "acl1"
+        },
+        "output": {
+          "Rules": [
+            {
+              "Expiration": {
+                "Days": 1
+              },
+              "ID": "delete logs",
+              "Prefix": "123/",
+              "Status": "Enabled"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example gets ACL on the specified bucket.",
+        "id": "to-get-a-bucket-acl-1474413606503",
+        "title": "To get a bucket acl"
+      }
+    ],
+    "GetBucketLifecycleConfiguration": [
+      {
+        "input": {
+          "Bucket": "examplebucket"
+        },
+        "output": {
+          "Rules": [
+            {
+              "ID": "Rule for TaxDocs/",
+              "Prefix": "TaxDocs",
+              "Status": "Enabled",
+              "Transitions": [
+                {
+                  "Days": 365,
+                  "StorageClass": "STANDARD_IA"
+                }
+              ]
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example retrieves lifecycle configuration on set on a bucket. ",
+        "id": "to-get-lifecycle-configuration-on-a-bucket-1481666063200",
+        "title": "To get lifecycle configuration on a bucket"
+      }
+    ],
+    "GetBucketLocation": [
+      {
+        "input": {
+          "Bucket": "examplebucket"
+        },
+        "output": {
+          "LocationConstraint": "us-west-2"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns bucket location.",
+        "id": "to-get-bucket-location-1481594573609",
+        "title": "To get bucket location"
+      }
+    ],
+    "GetBucketNotification": [
+      {
+        "input": {
+          "Bucket": "examplebucket"
+        },
+        "output": {
+          "QueueConfiguration": {
+            "Event": "s3:ObjectCreated:Put",
+            "Events": [
+              "s3:ObjectCreated:Put"
+            ],
+            "Id": "MDQ2OGQ4NDEtOTBmNi00YTM4LTk0NzYtZDIwN2I3NWQ1NjIx",
+            "Queue": "arn:aws:sqs:us-east-1:acct-id:S3ObjectCreatedEventQueue"
+          },
+          "TopicConfiguration": {
+            "Event": "s3:ObjectCreated:Copy",
+            "Events": [
+              "s3:ObjectCreated:Copy"
+            ],
+            "Id": "YTVkMWEzZGUtNTY1NS00ZmE2LWJjYjktMmRlY2QwODFkNTJi",
+            "Topic": "arn:aws:sns:us-east-1:acct-id:S3ObjectCreatedEventTopic"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns notification configuration set on a bucket.",
+        "id": "to-get-notification-configuration-set-on-a-bucket-1481594028667",
+        "title": "To get notification configuration set on a bucket"
+      },
+      {
+        "input": {
+          "Bucket": "examplebucket"
+        },
+        "output": {
+          "QueueConfiguration": {
+            "Event": "s3:ObjectCreated:Put",
+            "Events": [
+              "s3:ObjectCreated:Put"
+            ],
+            "Id": "MDQ2OGQ4NDEtOTBmNi00YTM4LTk0NzYtZDIwN2I3NWQ1NjIx",
+            "Queue": "arn:aws:sqs:us-east-1:acct-id:S3ObjectCreatedEventQueue"
+          },
+          "TopicConfiguration": {
+            "Event": "s3:ObjectCreated:Copy",
+            "Events": [
+              "s3:ObjectCreated:Copy"
+            ],
+            "Id": "YTVkMWEzZGUtNTY1NS00ZmE2LWJjYjktMmRlY2QwODFkNTJi",
+            "Topic": "arn:aws:sns:us-east-1:acct-id:S3ObjectCreatedEventTopic"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns notification configuration set on a bucket.",
+        "id": "to-get-notification-configuration-set-on-a-bucket-1481594028667",
+        "title": "To get notification configuration set on a bucket"
+      }
+    ],
+    "GetBucketPolicy": [
+      {
+        "input": {
+          "Bucket": "examplebucket"
+        },
+        "output": {
+          "Policy": "{\"Version\":\"2008-10-17\",\"Id\":\"LogPolicy\",\"Statement\":[{\"Sid\":\"Enables the log delivery group to publish logs to your bucket \",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"111122223333\"},\"Action\":[\"s3:GetBucketAcl\",\"s3:GetObjectAcl\",\"s3:PutObject\"],\"Resource\":[\"arn:aws:s3:::policytest1/*\",\"arn:aws:s3:::policytest1\"]}]}"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns bucket policy associated with a bucket.",
+        "id": "to-get-bucket-policy-1481595098424",
+        "title": "To get bucket policy"
+      }
+    ],
+    "GetBucketReplication": [
+      {
+        "input": {
+          "Bucket": "examplebucket"
+        },
+        "output": {
+          "ReplicationConfiguration": {
+            "Role": "arn:aws:iam::acct-id:role/example-role",
+            "Rules": [
+              {
+                "Destination": {
+                  "Bucket": "arn:aws:s3:::destination-bucket"
+                },
+                "ID": "MWIwNTkwZmItMTE3MS00ZTc3LWJkZDEtNzRmODQwYzc1OTQy",
+                "Prefix": "Tax",
+                "Status": "Enabled"
+              }
+            ]
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns replication configuration set on a bucket.",
+        "id": "to-get-replication-configuration-set-on-a-bucket-1481593597175",
+        "title": "To get replication configuration set on a bucket"
+      }
+    ],
+    "GetBucketRequestPayment": [
+      {
+        "input": {
+          "Bucket": "examplebucket"
+        },
+        "output": {
+          "Payer": "BucketOwner"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example retrieves bucket versioning configuration.",
+        "id": "to-get-bucket-versioning-configuration-1483037183929",
+        "title": "To get bucket versioning configuration"
+      }
+    ],
+    "GetBucketTagging": [
+      {
+        "input": {
+          "Bucket": "examplebucket"
+        },
+        "output": {
+          "TagSet": [
+            {
+              "Key": "key1",
+              "Value": "value1"
+            },
+            {
+              "Key": "key2",
+              "Value": "value2"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns tag set associated with a bucket",
+        "id": "to-get-tag-set-associated-with-a-bucket-1481593232107",
+        "title": "To get tag set associated with a bucket"
+      }
+    ],
+    "GetBucketVersioning": [
+      {
+        "input": {
+          "Bucket": "examplebucket"
+        },
+        "output": {
+          "MFADelete": "Disabled",
+          "Status": "Enabled"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example retrieves bucket versioning configuration.",
+        "id": "to-get-bucket-versioning-configuration-1483037183929",
+        "title": "To get bucket versioning configuration"
+      }
+    ],
+    "GetBucketWebsite": [
+      {
+        "input": {
+          "Bucket": "examplebucket"
+        },
+        "output": {
+          "ErrorDocument": {
+            "Key": "error.html"
+          },
+          "IndexDocument": {
+            "Suffix": "index.html"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example retrieves website configuration of a bucket.",
+        "id": "to-get-bucket-website-configuration-1483037016926",
+        "title": "To get bucket website configuration"
+      }
+    ],
+    "GetObject": [
+      {
+        "input": {
+          "Bucket": "examplebucket",
+          "Key": "HappyFace.jpg"
+        },
+        "output": {
+          "AcceptRanges": "bytes",
+          "ContentLength": "3191",
+          "ContentType": "image/jpeg",
+          "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"",
+          "LastModified": "Thu, 15 Dec 2016 01:19:41 GMT",
+          "Metadata": {
+          },
+          "TagCount": 2,
+          "VersionId": "null"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example retrieves an object for an S3 bucket.",
+        "id": "to-retrieve-an-object-1481827837012",
+        "title": "To retrieve an object"
+      },
+      {
+        "input": {
+          "Bucket": "examplebucket",
+          "Key": "SampleFile.txt",
+          "Range": "bytes=0-9"
+        },
+        "output": {
+          "AcceptRanges": "bytes",
+          "ContentLength": "10",
+          "ContentRange": "bytes 0-9/43",
+          "ContentType": "text/plain",
+          "ETag": "\"0d94420ffd0bc68cd3d152506b97a9cc\"",
+          "LastModified": "Thu, 09 Oct 2014 22:57:28 GMT",
+          "Metadata": {
+          },
+          "VersionId": "null"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example retrieves an object for an S3 bucket. The request specifies the range header to retrieve a specific byte range.",
+        "id": "to-retrieve-a-byte-range-of-an-object--1481832674603",
+        "title": "To retrieve a byte range of an object "
+      }
+    ],
+    "GetObjectAcl": [
+      {
+        "input": {
+          "Bucket": "examplebucket",
+          "Key": "HappyFace.jpg"
+        },
+        "output": {
+          "Grants": [
+            {
+              "Grantee": {
+                "DisplayName": "owner-display-name",
+                "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc",
+                "Type": "CanonicalUser"
+              },
+              "Permission": "WRITE"
+            },
+            {
+              "Grantee": {
+                "DisplayName": "owner-display-name",
+                "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc",
+                "Type": "CanonicalUser"
+              },
+              "Permission": "WRITE_ACP"
+            },
+            {
+              "Grantee": {
+                "DisplayName": "owner-display-name",
+                "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc",
+                "Type": "CanonicalUser"
+              },
+              "Permission": "READ"
+            },
+            {
+              "Grantee": {
+                "DisplayName": "owner-display-name",
+                "ID": "852b113eexamplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc",
+                "Type": "CanonicalUser"
+              },
+              "Permission": "READ_ACP"
+            }
+          ],
+          "Owner": {
+            "DisplayName": "owner-display-name",
+            "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example retrieves access control list (ACL) of an object.",
+        "id": "to-retrieve-object-acl-1481833557740",
+        "title": "To retrieve object ACL"
+      }
+    ],
+    "GetObjectTagging": [
+      {
+        "input": {
+          "Bucket": "examplebucket",
+          "Key": "HappyFace.jpg"
+        },
+        "output": {
+          "TagSet": [
+            {
+              "Key": "Key4",
+              "Value": "Value4"
+            },
+            {
+              "Key": "Key3",
+              "Value": "Value3"
+            }
+          ],
+          "VersionId": "null"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example retrieves tag set of an object.",
+        "id": "to-retrieve-tag-set-of-an-object-1481833847896",
+        "title": "To retrieve tag set of an object"
+      },
+      {
+        "input": {
+          "Bucket": "examplebucket",
+          "Key": "exampleobject",
+          "VersionId": "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI"
+        },
+        "output": {
+          "TagSet": [
+            {
+              "Key": "Key1",
+              "Value": "Value1"
+            }
+          ],
+          "VersionId": "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example retrieves tag set of an object. The request specifies object version.",
+        "id": "to-retrieve-tag-set-of-a-specific-object-version-1483400283663",
+        "title": "To retrieve tag set of a specific object version"
+      }
+    ],
+    "GetObjectTorrent": [
+      {
+        "input": {
+          "Bucket": "examplebucket",
+          "Key": "HappyFace.jpg"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example retrieves torrent files of an object.",
+        "id": "to-retrieve-torrent-files-for-an-object-1481834115959",
+        "title": "To retrieve torrent files for an object"
+      }
+    ],
+    "HeadBucket": [
+      {
+        "input": {
+          "Bucket": "acl1"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This operation checks to see if a bucket exists.",
+        "id": "to-determine-if-bucket-exists-1473110292262",
+        "title": "To determine if bucket exists"
+      }
+    ],
+    "HeadObject": [
+      {
+        "input": {
+          "Bucket": "examplebucket",
+          "Key": "HappyFace.jpg"
+        },
+        "output": {
+          "AcceptRanges": "bytes",
+          "ContentLength": "3191",
+          "ContentType": "image/jpeg",
+          "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"",
+          "LastModified": "Thu, 15 Dec 2016 01:19:41 GMT",
+          "Metadata": {
+          },
+          "VersionId": "null"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example retrieves an object metadata.",
+        "id": "to-retrieve-metadata-of-an-object-without-returning-the-object-itself-1481834820480",
+        "title": "To retrieve metadata of an object without returning the object itself"
+      }
+    ],
+    "ListMultipartUploads": [
+      {
+        "input": {
+          "Bucket": "examplebucket"
+        },
+        "output": {
+          "Uploads": [
+            {
+              "Initiated": "2014-05-01T05:40:58.000Z",
+              "Initiator": {
+                "DisplayName": "display-name",
+                "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc"
+              },
+              "Key": "JavaFile",
+              "Owner": {
+                "DisplayName": "display-name",
+                "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc"
+              },
+              "StorageClass": "STANDARD",
+              "UploadId": "examplelUa.CInXklLQtSMJITdUnoZ1Y5GACB5UckOtspm5zbDMCkPF_qkfZzMiFZ6dksmcnqxJyIBvQMG9X9Q--"
+            },
+            {
+              "Initiated": "2014-05-01T05:41:27.000Z",
+              "Initiator": {
+                "DisplayName": "display-name",
+                "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc"
+              },
+              "Key": "JavaFile",
+              "Owner": {
+                "DisplayName": "display-name",
+                "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc"
+              },
+              "StorageClass": "STANDARD",
+              "UploadId": "examplelo91lv1iwvWpvCiJWugw2xXLPAD7Z8cJyX9.WiIRgNrdG6Ldsn.9FtS63TCl1Uf5faTB.1U5Ckcbmdw--"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example lists in-progress multipart uploads on a specific bucket.",
+        "id": "to-list-in-progress-multipart-uploads-on-a-bucket-1481852775260",
+        "title": "To list in-progress multipart uploads on a bucket"
+      },
+      {
+        "input": {
+          "Bucket": "examplebucket",
+          "KeyMarker": "nextkeyfrompreviousresponse",
+          "MaxUploads": "2",
+          "UploadIdMarker": "valuefrompreviousresponse"
+        },
+        "output": {
+          "Bucket": "acl1",
+          "IsTruncated": true,
+          "KeyMarker": "",
+          "MaxUploads": "2",
+          "NextKeyMarker": "someobjectkey",
+          "NextUploadIdMarker": "examplelo91lv1iwvWpvCiJWugw2xXLPAD7Z8cJyX9.WiIRgNrdG6Ldsn.9FtS63TCl1Uf5faTB.1U5Ckcbmdw--",
+          "UploadIdMarker": "",
+          "Uploads": [
+            {
+              "Initiated": "2014-05-01T05:40:58.000Z",
+              "Initiator": {
+                "DisplayName": "ownder-display-name",
+                "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc"
+              },
+              "Key": "JavaFile",
+              "Owner": {
+                "DisplayName": "mohanataws",
+                "ID": "852b113e7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc"
+              },
+              "StorageClass": "STANDARD",
+              "UploadId": "gZ30jIqlUa.CInXklLQtSMJITdUnoZ1Y5GACB5UckOtspm5zbDMCkPF_qkfZzMiFZ6dksmcnqxJyIBvQMG9X9Q--"
+            },
+            {
+              "Initiated": "2014-05-01T05:41:27.000Z",
+              "Initiator": {
+                "DisplayName": "ownder-display-name",
+                "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc"
+              },
+              "Key": "JavaFile",
+              "Owner": {
+                "DisplayName": "ownder-display-name",
+                "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc"
+              },
+              "StorageClass": "STANDARD",
+              "UploadId": "b7tZSqIlo91lv1iwvWpvCiJWugw2xXLPAD7Z8cJyX9.WiIRgNrdG6Ldsn.9FtS63TCl1Uf5faTB.1U5Ckcbmdw--"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example specifies the upload-id-marker and key-marker from previous truncated response to retrieve next setup of multipart uploads.",
+        "id": "list-next-set-of-multipart-uploads-when-previous-result-is-truncated-1482428106748",
+        "title": "List next set of multipart uploads when previous result is truncated"
+      }
+    ],
+    "ListObjectVersions": [
+      {
+        "input": {
+          "Bucket": "examplebucket",
+          "Prefix": "HappyFace.jpg"
+        },
+        "output": {
+          "Versions": [
+            {
+              "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"",
+              "IsLatest": true,
+              "Key": "HappyFace.jpg",
+              "LastModified": "2016-12-15T01:19:41.000Z",
+              "Owner": {
+                "DisplayName": "owner-display-name",
+                "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc"
+              },
+              "Size": 3191,
+              "StorageClass": "STANDARD",
+              "VersionId": "null"
+            },
+            {
+              "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"",
+              "IsLatest": false,
+              "Key": "HappyFace.jpg",
+              "LastModified": "2016-12-13T00:58:26.000Z",
+              "Owner": {
+                "DisplayName": "owner-display-name",
+                "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc"
+              },
+              "Size": 3191,
+              "StorageClass": "STANDARD",
+              "VersionId": "PHtexPGjH2y.zBgT8LmB7wwLI2mpbz.k"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example return versions of an object with specific key name prefix. The request limits the number of items returned to two. If there are are more than two object version, S3 returns NextToken in the response. You can specify this token value in your next request to fetch next set of object versions.",
+        "id": "to-list-object-versions-1481910996058",
+        "title": "To list object versions"
+      }
+    ],
+    "ListObjects": [
+      {
+        "input": {
+          "Bucket": "examplebucket",
+          "MaxKeys": "2"
+        },
+        "output": {
+          "Contents": [
+            {
+              "ETag": "\"70ee1738b6b21e2c8a43f3a5ab0eee71\"",
+              "Key": "example1.jpg",
+              "LastModified": "2014-11-21T19:40:05.000Z",
+              "Owner": {
+                "DisplayName": "myname",
+                "ID": "12345example25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc"
+              },
+              "Size": 11,
+              "StorageClass": "STANDARD"
+            },
+            {
+              "ETag": "\"9c8af9a76df052144598c115ef33e511\"",
+              "Key": "example2.jpg",
+              "LastModified": "2013-11-15T01:10:49.000Z",
+              "Owner": {
+                "DisplayName": "myname",
+                "ID": "12345example25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc"
+              },
+              "Size": 713193,
+              "StorageClass": "STANDARD"
+            }
+          ],
+          "NextMarker": "eyJNYXJrZXIiOiBudWxsLCAiYm90b190cnVuY2F0ZV9hbW91bnQiOiAyfQ=="
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example list two objects in a bucket.",
+        "id": "to-list-objects-in-a-bucket-1473447646507",
+        "title": "To list objects in a bucket"
+      }
+    ],
+    "ListObjectsV2": [
+      {
+        "input": {
+          "Bucket": "examplebucket",
+          "MaxKeys": "2"
+        },
+        "output": {
+          "Contents": [
+            {
+              "ETag": "\"70ee1738b6b21e2c8a43f3a5ab0eee71\"",
+              "Key": "happyface.jpg",
+              "LastModified": "2014-11-21T19:40:05.000Z",
+              "Size": 11,
+              "StorageClass": "STANDARD"
+            },
+            {
+              "ETag": "\"becf17f89c30367a9a44495d62ed521a-1\"",
+              "Key": "test.jpg",
+              "LastModified": "2014-05-02T04:51:50.000Z",
+              "Size": 4192256,
+              "StorageClass": "STANDARD"
+            }
+          ],
+          "IsTruncated": true,
+          "KeyCount": "2",
+          "MaxKeys": "2",
+          "Name": "examplebucket",
+          "NextContinuationToken": "1w41l63U0xa8q7smH50vCxyTQqdxo69O3EmK28Bi5PcROI4wI/EyIJg==",
+          "Prefix": ""
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example retrieves object list. The request specifies max keys to limit response to include only 2 object keys. ",
+        "id": "to-get-object-list",
+        "title": "To get object list"
+      }
+    ],
+    "ListParts": [
+      {
+        "input": {
+          "Bucket": "examplebucket",
+          "Key": "bigobject",
+          "UploadId": "example7YPBOJuoFiQ9cz4P3Pe6FIZwO4f7wN93uHsNBEw97pl5eNwzExg0LAT2dUN91cOmrEQHDsP3WA60CEg--"
+        },
+        "output": {
+          "Initiator": {
+            "DisplayName": "owner-display-name",
+            "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc"
+          },
+          "Owner": {
+            "DisplayName": "owner-display-name",
+            "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc"
+          },
+          "Parts": [
+            {
+              "ETag": "\"d8c2eafd90c266e19ab9dcacc479f8af\"",
+              "LastModified": "2016-12-16T00:11:42.000Z",
+              "PartNumber": "1",
+              "Size": 26246026
+            },
+            {
+              "ETag": "\"d8c2eafd90c266e19ab9dcacc479f8af\"",
+              "LastModified": "2016-12-16T00:15:01.000Z",
+              "PartNumber": "2",
+              "Size": 26246026
+            }
+          ],
+          "StorageClass": "STANDARD"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example lists parts uploaded for a specific multipart upload.",
+        "id": "to-list-parts-of-a-multipart-upload-1481852006923",
+        "title": "To list parts of a multipart upload."
+      }
+    ],
+    "PutBucketAcl": [
+      {
+        "input": {
+          "Bucket": "examplebucket",
+          "GrantFullControl": "id=examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484",
+          "GrantWrite": "uri=http://acs.amazonaws.com/groups/s3/LogDelivery"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example replaces existing ACL on a bucket. The ACL grants the bucket owner (specified using the owner ID) and write permission to the LogDelivery group. Because this is a replace operation, you must specify all the grants in your request. To incrementally add or remove ACL grants, you might use the console.",
+        "id": "put-bucket-acl-1482260397033",
+        "title": "Put bucket acl"
+      }
+    ],
+    "PutBucketCors": [
+      {
+        "input": {
+          "Bucket": "",
+          "CORSConfiguration": {
+            "CORSRules": [
+              {
+                "AllowedHeaders": [
+                  "*"
+                ],
+                "AllowedMethods": [
+                  "PUT",
+                  "POST",
+                  "DELETE"
+                ],
+                "AllowedOrigins": [
+                  "http://www.example.com"
+                ],
+                "ExposeHeaders": [
+                  "x-amz-server-side-encryption"
+                ],
+                "MaxAgeSeconds": 3000
+              },
+              {
+                "AllowedHeaders": [
+                  "Authorization"
+                ],
+                "AllowedMethods": [
+                  "GET"
+                ],
+                "AllowedOrigins": [
+                  "*"
+                ],
+                "MaxAgeSeconds": 3000
+              }
+            ]
+          },
+          "ContentMD5": ""
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example enables PUT, POST, and DELETE requests from www.example.com, and enables GET requests from any domain.",
+        "id": "to-set-cors-configuration-on-a-bucket-1483037818805",
+        "title": "To set cors configuration on a bucket."
+      }
+    ],
+    "PutBucketLifecycleConfiguration": [
+      {
+        "input": {
+          "Bucket": "examplebucket",
+          "LifecycleConfiguration": {
+            "Rules": [
+              {
+                "Expiration": {
+                  "Days": 3650
+                },
+                "Filter": {
+                  "Prefix": "documents/"
+                },
+                "ID": "TestOnly",
+                "Status": "Enabled",
+                "Transitions": [
+                  {
+                    "Days": 365,
+                    "StorageClass": "GLACIER"
+                  }
+                ]
+              }
+            ]
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example replaces existing lifecycle configuration, if any, on the specified bucket. ",
+        "id": "put-bucket-lifecycle-1482264533092",
+        "title": "Put bucket lifecycle"
+      }
+    ],
+    "PutBucketLogging": [
+      {
+        "input": {
+          "Bucket": "sourcebucket",
+          "BucketLoggingStatus": {
+            "LoggingEnabled": {
+              "TargetBucket": "targetbucket",
+              "TargetGrants": [
+                {
+                  "Grantee": {
+                    "Type": "Group",
+                    "URI": "http://acs.amazonaws.com/groups/global/AllUsers"
+                  },
+                  "Permission": "READ"
+                }
+              ],
+              "TargetPrefix": "MyBucketLogs/"
+            }
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example sets logging policy on a bucket. For the Log Delivery group to deliver logs to the destination bucket, it needs permission for the READ_ACP action which the policy grants.",
+        "id": "set-logging-configuration-for-a-bucket-1482269119909",
+        "title": "Set logging configuration for a bucket"
+      }
+    ],
+    "PutBucketNotificationConfiguration": [
+      {
+        "input": {
+          "Bucket": "examplebucket",
+          "NotificationConfiguration": {
+            "TopicConfigurations": [
+              {
+                "Events": [
+                  "s3:ObjectCreated:*"
+                ],
+                "TopicArn": "arn:aws:sns:us-west-2:123456789012:s3-notification-topic"
+              }
+            ]
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example sets notification configuration on a bucket to publish the object created events to an SNS topic.",
+        "id": "set-notification-configuration-for-a-bucket-1482270296426",
+        "title": "Set notification configuration for a bucket"
+      }
+    ],
+    "PutBucketPolicy": [
+      {
+        "input": {
+          "Bucket": "examplebucket",
+          "Policy": "{\"Version\": \"2012-10-17\", \"Statement\": [{ \"Sid\": \"id-1\",\"Effect\": \"Allow\",\"Principal\": {\"AWS\": \"arn:aws:iam::123456789012:root\"}, \"Action\": [ \"s3:PutObject\",\"s3:PutObjectAcl\"], \"Resource\": [\"arn:aws:s3:::acl3/*\" ] } ]}"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example sets a permission policy on a bucket.",
+        "id": "set-bucket-policy-1482448903302",
+        "title": "Set bucket policy"
+      }
+    ],
+    "PutBucketReplication": [
+      {
+        "input": {
+          "Bucket": "examplebucket",
+          "ReplicationConfiguration": {
+            "Role": "arn:aws:iam::123456789012:role/examplerole",
+            "Rules": [
+              {
+                "Destination": {
+                  "Bucket": "arn:aws:s3:::destinationbucket",
+                  "StorageClass": "STANDARD"
+                },
+                "Prefix": "",
+                "Status": "Enabled"
+              }
+            ]
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example sets replication configuration on a bucket.",
+        "id": "id-1",
+        "title": "Set replication configuration on a bucket"
+      }
+    ],
+    "PutBucketRequestPayment": [
+      {
+        "input": {
+          "Bucket": "examplebucket",
+          "RequestPaymentConfiguration": {
+            "Payer": "Requester"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example sets request payment configuration on a bucket so that person requesting the download is charged.",
+        "id": "set-request-payment-configuration-on-a-bucket-1482343596680",
+        "title": "Set request payment configuration on a bucket."
+      }
+    ],
+    "PutBucketTagging": [
+      {
+        "input": {
+          "Bucket": "examplebucket",
+          "Tagging": {
+            "TagSet": [
+              {
+                "Key": "Key1",
+                "Value": "Value1"
+              },
+              {
+                "Key": "Key2",
+                "Value": "Value2"
+              }
+            ]
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example sets tags on a bucket. Any existing tags are replaced.",
+        "id": "set-tags-on-a-bucket-1482346269066",
+        "title": "Set tags on a bucket"
+      }
+    ],
+    "PutBucketVersioning": [
+      {
+        "input": {
+          "Bucket": "examplebucket",
+          "VersioningConfiguration": {
+            "MFADelete": "Disabled",
+            "Status": "Enabled"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example sets versioning configuration on bucket. The configuration enables versioning on the bucket.",
+        "id": "set-versioning-configuration-on-a-bucket-1482344186279",
+        "title": "Set versioning configuration on a bucket"
+      }
+    ],
+    "PutBucketWebsite": [
+      {
+        "input": {
+          "Bucket": "examplebucket",
+          "ContentMD5": "",
+          "WebsiteConfiguration": {
+            "ErrorDocument": {
+              "Key": "error.html"
+            },
+            "IndexDocument": {
+              "Suffix": "index.html"
+            }
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example adds website configuration to a bucket.",
+        "id": "set-website-configuration-on-a-bucket-1482346836261",
+        "title": "Set website configuration on a bucket"
+      }
+    ],
+    "PutObject": [
+      {
+        "input": {
+          "Body": "filetoupload",
+          "Bucket": "examplebucket",
+          "Key": "objectkey"
+        },
+        "output": {
+          "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"",
+          "VersionId": "Bvq0EDKxOcXLJXNo_Lkz37eM3R4pfzyQ"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example creates an object. If the bucket is versioning enabled, S3 returns version ID in response.",
+        "id": "to-create-an-object-1483147613675",
+        "title": "To create an object."
+      },
+      {
+        "input": {
+          "Body": "HappyFace.jpg",
+          "Bucket": "examplebucket",
+          "Key": "HappyFace.jpg",
+          "ServerSideEncryption": "AES256",
+          "StorageClass": "STANDARD_IA"
+        },
+        "output": {
+          "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"",
+          "ServerSideEncryption": "AES256",
+          "VersionId": "CG612hodqujkf8FaaNfp8U..FIhLROcp"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example uploads an object. The request specifies optional request headers to directs S3 to use specific storage class and use server-side encryption.",
+        "id": "to-upload-an-object-(specify-optional-headers)",
+        "title": "To upload an object (specify optional headers)"
+      },
+      {
+        "input": {
+          "ACL": "authenticated-read",
+          "Body": "filetoupload",
+          "Bucket": "examplebucket",
+          "Key": "exampleobject"
+        },
+        "output": {
+          "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"",
+          "VersionId": "Kirh.unyZwjQ69YxcQLA8z4F5j3kJJKr"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example uploads and object. The request specifies optional canned ACL (access control list) to all READ access to authenticated users. If the bucket is versioning enabled, S3 returns version ID in response.",
+        "id": "to-upload-an-object-and-specify-canned-acl-1483397779571",
+        "title": "To upload an object and specify canned ACL."
+      },
+      {
+        "input": {
+          "Body": "HappyFace.jpg",
+          "Bucket": "examplebucket",
+          "Key": "HappyFace.jpg"
+        },
+        "output": {
+          "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"",
+          "VersionId": "tpf3zF08nBplQK1XLOefGskR7mGDwcDk"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example uploads an object to a versioning-enabled bucket. The source file is specified using Windows file syntax. S3 returns VersionId of the newly created object.",
+        "id": "to-upload-an-object-1481760101010",
+        "title": "To upload an object"
+      },
+      {
+        "input": {
+          "Body": "filetoupload",
+          "Bucket": "examplebucket",
+          "Key": "exampleobject",
+          "Metadata": {
+            "metadata1": "value1",
+            "metadata2": "value2"
+          }
+        },
+        "output": {
+          "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"",
+          "VersionId": "pSKidl4pHBiNwukdbcPXAIs.sshFFOc0"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example creates an object. The request also specifies optional metadata. If the bucket is versioning enabled, S3 returns version ID in response.",
+        "id": "to-upload-object-and-specify-user-defined-metadata-1483396974757",
+        "title": "To upload object and specify user-defined metadata"
+      },
+      {
+        "input": {
+          "Body": "c:\\HappyFace.jpg",
+          "Bucket": "examplebucket",
+          "Key": "HappyFace.jpg",
+          "Tagging": "key1=value1&key2=value2"
+        },
+        "output": {
+          "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"",
+          "VersionId": "psM2sYY4.o1501dSx8wMvnkOzSBB.V4a"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example uploads an object. The request specifies optional object tags. The bucket is versioned, therefore S3 returns version ID of the newly created object.",
+        "id": "to-upload-an-object-and-specify-optional-tags-1481762310955",
+        "title": "To upload an object and specify optional tags"
+      },
+      {
+        "input": {
+          "Body": "filetoupload",
+          "Bucket": "examplebucket",
+          "Key": "exampleobject",
+          "ServerSideEncryption": "AES256",
+          "Tagging": "key1=value1&key2=value2"
+        },
+        "output": {
+          "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"",
+          "ServerSideEncryption": "AES256",
+          "VersionId": "Ri.vC6qVlA4dEnjgRV4ZHsHoFIjqEMNt"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example uploads and object. The request specifies the optional server-side encryption option. The request also specifies optional object tags. If the bucket is versioning enabled, S3 returns version ID in response.",
+        "id": "to-upload-an-object-and-specify-server-side-encryption-and-object-tags-1483398331831",
+        "title": "To upload an object and specify server-side encryption and object tags"
+      }
+    ],
+    "PutObjectAcl": [
+      {
+        "input": {
+          "AccessControlPolicy": {
+          },
+          "Bucket": "examplebucket",
+          "GrantFullControl": "emailaddress=user1@example.com,emailaddress=user2@example.com",
+          "GrantRead": "uri=http://acs.amazonaws.com/groups/global/AllUsers",
+          "Key": "HappyFace.jpg"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example adds grants to an object ACL. The first permission grants user1 and user2 FULL_CONTROL and the AllUsers group READ permission.",
+        "id": "to-grant-permissions-using-object-acl-1481835549285",
+        "title": "To grant permissions using object ACL"
+      }
+    ],
+    "PutObjectTagging": [
+      {
+        "input": {
+          "Bucket": "examplebucket",
+          "Key": "HappyFace.jpg",
+          "Tagging": {
+            "TagSet": [
+              {
+                "Key": "Key3",
+                "Value": "Value3"
+              },
+              {
+                "Key": "Key4",
+                "Value": "Value4"
+              }
+            ]
+          }
+        },
+        "output": {
+          "VersionId": "null"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example adds tags to an existing object.",
+        "id": "to-add-tags-to-an-existing-object-1481764668793",
+        "title": "To add tags to an existing object"
+      }
+    ],
+    "RestoreObject": [
+      {
+        "input": {
+          "Bucket": "examplebucket",
+          "Key": "archivedobjectkey",
+          "RestoreRequest": {
+            "Days": 1,
+            "GlacierJobParameters": {
+              "Tier": "Expedited"
+            }
+          }
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example restores for one day an archived copy of an object back into Amazon S3 bucket.",
+        "id": "to-restore-an-archived-object-1483049329953",
+        "title": "To restore an archived object"
+      }
+    ],
+    "UploadPart": [
+      {
+        "input": {
+          "Body": "fileToUpload",
+          "Bucket": "examplebucket",
+          "Key": "examplelargeobject",
+          "PartNumber": "1",
+          "UploadId": "xadcOB_7YPBOJuoFiQ9cz4P3Pe6FIZwO4f7wN93uHsNBEw97pl5eNwzExg0LAT2dUN91cOmrEQHDsP3WA60CEg--"
+        },
+        "output": {
+          "ETag": "\"d8c2eafd90c266e19ab9dcacc479f8af\""
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example uploads part 1 of a multipart upload. The example specifies a file name for the part data. The Upload ID is same that is returned by the initiate multipart upload.",
+        "id": "to-upload-a-part-1481847914943",
+        "title": "To upload a part"
+      }
+    ],
+    "UploadPartCopy": [
+      {
+        "input": {
+          "Bucket": "examplebucket",
+          "CopySource": "/bucketname/sourceobjectkey",
+          "Key": "examplelargeobject",
+          "PartNumber": "1",
+          "UploadId": "exampleuoh_10OhKhT7YukE9bjzTPRiuaCotmZM_pFngJFir9OZNrSr5cWa3cq3LZSUsfjI4FI7PkP91We7Nrw--"
+        },
+        "output": {
+          "CopyPartResult": {
+            "ETag": "\"b0c6f0e7e054ab8fa2536a2677f8734d\"",
+            "LastModified": "2016-12-29T21:24:43.000Z"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example uploads a part of a multipart upload by copying data from an existing object as data source.",
+        "id": "to-upload-a-part-by-copying-data-from-an-existing-object-as-data-source-1483046746348",
+        "title": "To upload a part by copying data from an existing object as data source"
+      },
+      {
+        "input": {
+          "Bucket": "examplebucket",
+          "CopySource": "/bucketname/sourceobjectkey",
+          "CopySourceRange": "bytes=1-100000",
+          "Key": "examplelargeobject",
+          "PartNumber": "2",
+          "UploadId": "exampleuoh_10OhKhT7YukE9bjzTPRiuaCotmZM_pFngJFir9OZNrSr5cWa3cq3LZSUsfjI4FI7PkP91We7Nrw--"
+        },
+        "output": {
+          "CopyPartResult": {
+            "ETag": "\"65d16d19e65a7508a51f043180edcc36\"",
+            "LastModified": "2016-12-29T21:44:28.000Z"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example uploads a part of a multipart upload by copying a specified byte range from an existing object as data source.",
+        "id": "to-upload-a-part-by-copying-byte-range-from-an-existing-object-as-data-source-1483048068594",
+        "title": "To upload a part by copying byte range from an existing object as data source"
+      }
+    ]
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/s3/2006-03-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/s3/2006-03-01/paginators-1.json
new file mode 100644
index 00000000..b1b43207
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/s3/2006-03-01/paginators-1.json
@@ -0,0 +1,76 @@
+{
+  "pagination": {
+    "ListMultipartUploads": {
+      "limit_key": "MaxUploads",
+      "more_results": "IsTruncated",
+      "output_token": [
+        "NextKeyMarker",
+        "NextUploadIdMarker"
+      ],
+      "input_token": [
+        "KeyMarker",
+        "UploadIdMarker"
+      ],
+      "result_key": [
+        "Uploads",
+        "CommonPrefixes"
+      ]
+    },
+    "ListObjectVersions": {
+      "more_results": "IsTruncated",
+      "limit_key": "MaxKeys",
+      "output_token": [
+        "NextKeyMarker",
+        "NextVersionIdMarker"
+      ],
+      "input_token": [
+        "KeyMarker",
+        "VersionIdMarker"
+      ],
+      "result_key": [
+        "Versions",
+        "DeleteMarkers",
+        "CommonPrefixes"
+      ]
+    },
+    "ListObjects": {
+      "more_results": "IsTruncated",
+      "limit_key": "MaxKeys",
+      "output_token": "NextMarker || Contents[-1].Key",
+      "input_token": "Marker",
+      "result_key": [
+        "Contents",
+        "CommonPrefixes"
+      ]
+    },
+    "ListObjectsV2": {
+      "more_results": "IsTruncated",
+      "limit_key": "MaxKeys",
+      "output_token": "NextContinuationToken",
+      "input_token": "ContinuationToken",
+      "result_key": [
+        "Contents",
+        "CommonPrefixes"
+      ]
+    },
+    "ListParts": {
+      "more_results": "IsTruncated",
+      "limit_key": "MaxParts",
+      "output_token": "NextPartNumberMarker",
+      "input_token": "PartNumberMarker",
+      "result_key": "Parts"
+    },
+    "ListDirectoryBuckets": {
+      "input_token": "ContinuationToken",
+      "limit_key": "MaxDirectoryBuckets",
+      "output_token": "ContinuationToken",
+      "result_key": "Buckets"
+    },
+    "ListBuckets": {
+      "input_token": "ContinuationToken",
+      "limit_key": "MaxBuckets",
+      "output_token": "ContinuationToken",
+      "result_key": "Buckets"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/s3/2006-03-01/paginators-1.sdk-extras.json b/.venv/lib/python3.12/site-packages/botocore/data/s3/2006-03-01/paginators-1.sdk-extras.json
new file mode 100644
index 00000000..39e13606
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/s3/2006-03-01/paginators-1.sdk-extras.json
@@ -0,0 +1,46 @@
+{
+  "version": 1.0,
+  "merge": {
+    "pagination": {
+      "ListBuckets": {
+        "non_aggregate_keys": [
+          "Owner",
+          "Prefix"
+        ]
+      },
+      "ListMultipartUploads": {
+        "non_aggregate_keys": [
+          "RequestCharged",
+          "Prefix"
+        ]
+      },
+      "ListObjectVersions": {
+        "non_aggregate_keys": [
+          "RequestCharged",
+          "Prefix"
+        ]
+      },
+      "ListObjects": {
+          "non_aggregate_keys": [
+            "RequestCharged",
+            "Prefix"
+          ]
+      },
+      "ListObjectsV2": {
+        "non_aggregate_keys": [
+          "RequestCharged",
+          "Prefix"
+        ]
+      },
+      "ListParts": {
+        "non_aggregate_keys": [
+          "ChecksumAlgorithm",
+          "Initiator",
+          "Owner",
+          "StorageClass",
+          "ChecksumType"
+        ]
+      }
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/s3/2006-03-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/s3/2006-03-01/service-2.json.gz
new file mode 100644
index 00000000..991c3251
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/s3/2006-03-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/s3/2006-03-01/service-2.sdk-extras.json b/.venv/lib/python3.12/site-packages/botocore/data/s3/2006-03-01/service-2.sdk-extras.json
new file mode 100644
index 00000000..d04e9d0b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/s3/2006-03-01/service-2.sdk-extras.json
@@ -0,0 +1,8 @@
+{
+  "version": 1.0,
+  "merge": {
+    "shapes": {
+      "Expires":{"type":"timestamp"}
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/s3/2006-03-01/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/s3/2006-03-01/waiters-2.json
new file mode 100644
index 00000000..b508a8f5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/s3/2006-03-01/waiters-2.json
@@ -0,0 +1,73 @@
+{
+  "version": 2,
+  "waiters": {
+    "BucketExists": {
+      "delay": 5,
+      "operation": "HeadBucket",
+      "maxAttempts": 20,
+      "acceptors": [
+        {
+          "expected": 200,
+          "matcher": "status",
+          "state": "success"
+        },
+        {
+          "expected": 301,
+          "matcher": "status",
+          "state": "success"
+        },
+        {
+          "expected": 403,
+          "matcher": "status",
+          "state": "success"
+        },
+        {
+          "expected": 404,
+          "matcher": "status",
+          "state": "retry"
+        }
+      ]
+    },
+    "BucketNotExists": {
+      "delay": 5,
+      "operation": "HeadBucket",
+      "maxAttempts": 20,
+      "acceptors": [
+        {
+          "expected": 404,
+          "matcher": "status",
+          "state": "success"
+        }
+      ]
+    },
+    "ObjectExists": {
+      "delay": 5,
+      "operation": "HeadObject",
+      "maxAttempts": 20,
+      "acceptors": [
+        {
+          "expected": 200,
+          "matcher": "status",
+          "state": "success"
+        },
+        {
+          "expected": 404,
+          "matcher": "status",
+          "state": "retry"
+        }
+      ]
+    },
+    "ObjectNotExists": {
+      "delay": 5,
+      "operation": "HeadObject",
+      "maxAttempts": 20,
+      "acceptors": [
+        {
+          "expected": 404,
+          "matcher": "status",
+          "state": "success"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/s3control/2018-08-20/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/s3control/2018-08-20/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..6a579f8a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/s3control/2018-08-20/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/s3control/2018-08-20/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/s3control/2018-08-20/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/s3control/2018-08-20/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/s3control/2018-08-20/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/s3control/2018-08-20/paginators-1.json
new file mode 100644
index 00000000..b2138742
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/s3control/2018-08-20/paginators-1.json
@@ -0,0 +1,16 @@
+{
+  "pagination": {
+    "ListAccessPointsForObjectLambda": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ObjectLambdaAccessPointList"
+    },
+    "ListCallerAccessGrants": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "CallerAccessGrantsList"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/s3control/2018-08-20/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/s3control/2018-08-20/service-2.json.gz
new file mode 100644
index 00000000..05c9b63b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/s3control/2018-08-20/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/s3outposts/2017-07-25/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/s3outposts/2017-07-25/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..77c6f9ac
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/s3outposts/2017-07-25/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/s3outposts/2017-07-25/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/s3outposts/2017-07-25/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/s3outposts/2017-07-25/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/s3outposts/2017-07-25/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/s3outposts/2017-07-25/paginators-1.json
new file mode 100644
index 00000000..5a8fa86c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/s3outposts/2017-07-25/paginators-1.json
@@ -0,0 +1,22 @@
+{
+  "pagination": {
+    "ListEndpoints": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Endpoints"
+    },
+    "ListSharedEndpoints": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Endpoints"
+    },
+    "ListOutpostsWithS3": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Outposts"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/s3outposts/2017-07-25/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/s3outposts/2017-07-25/service-2.json.gz
new file mode 100644
index 00000000..0b25b47d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/s3outposts/2017-07-25/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/s3tables/2018-05-10/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/s3tables/2018-05-10/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..442c578f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/s3tables/2018-05-10/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/s3tables/2018-05-10/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/s3tables/2018-05-10/paginators-1.json
new file mode 100644
index 00000000..2215b7b6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/s3tables/2018-05-10/paginators-1.json
@@ -0,0 +1,22 @@
+{
+  "pagination": {
+    "ListNamespaces": {
+      "input_token": "continuationToken",
+      "output_token": "continuationToken",
+      "limit_key": "maxNamespaces",
+      "result_key": "namespaces"
+    },
+    "ListTableBuckets": {
+      "input_token": "continuationToken",
+      "output_token": "continuationToken",
+      "limit_key": "maxBuckets",
+      "result_key": "tableBuckets"
+    },
+    "ListTables": {
+      "input_token": "continuationToken",
+      "output_token": "continuationToken",
+      "limit_key": "maxTables",
+      "result_key": "tables"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/s3tables/2018-05-10/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/s3tables/2018-05-10/service-2.json.gz
new file mode 100644
index 00000000..c8415b6e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/s3tables/2018-05-10/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/s3tables/2018-05-10/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/s3tables/2018-05-10/waiters-2.json
new file mode 100644
index 00000000..13f60ee6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/s3tables/2018-05-10/waiters-2.json
@@ -0,0 +1,5 @@
+{
+  "version": 2,
+  "waiters": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-a2i-runtime/2019-11-07/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-a2i-runtime/2019-11-07/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..0d42ce70
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-a2i-runtime/2019-11-07/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-a2i-runtime/2019-11-07/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-a2i-runtime/2019-11-07/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-a2i-runtime/2019-11-07/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-a2i-runtime/2019-11-07/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-a2i-runtime/2019-11-07/paginators-1.json
new file mode 100644
index 00000000..b19128c2
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-a2i-runtime/2019-11-07/paginators-1.json
@@ -0,0 +1,10 @@
+{
+  "pagination": {
+    "ListHumanLoops": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "HumanLoopSummaries"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-a2i-runtime/2019-11-07/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-a2i-runtime/2019-11-07/service-2.json.gz
new file mode 100644
index 00000000..0855fb55
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-a2i-runtime/2019-11-07/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-edge/2020-09-23/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-edge/2020-09-23/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..f7ae5515
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-edge/2020-09-23/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-edge/2020-09-23/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-edge/2020-09-23/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-edge/2020-09-23/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-edge/2020-09-23/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-edge/2020-09-23/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-edge/2020-09-23/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-edge/2020-09-23/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-edge/2020-09-23/service-2.json.gz
new file mode 100644
index 00000000..8a26f6f5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-edge/2020-09-23/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-featurestore-runtime/2020-07-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-featurestore-runtime/2020-07-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..08de68a2
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-featurestore-runtime/2020-07-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-featurestore-runtime/2020-07-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-featurestore-runtime/2020-07-01/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-featurestore-runtime/2020-07-01/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-featurestore-runtime/2020-07-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-featurestore-runtime/2020-07-01/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-featurestore-runtime/2020-07-01/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-featurestore-runtime/2020-07-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-featurestore-runtime/2020-07-01/service-2.json.gz
new file mode 100644
index 00000000..b940000d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-featurestore-runtime/2020-07-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-geospatial/2020-05-27/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-geospatial/2020-05-27/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..50ec16ce
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-geospatial/2020-05-27/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-geospatial/2020-05-27/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-geospatial/2020-05-27/paginators-1.json
new file mode 100644
index 00000000..8802d943
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-geospatial/2020-05-27/paginators-1.json
@@ -0,0 +1,22 @@
+{
+  "pagination": {
+    "ListEarthObservationJobs": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "EarthObservationJobSummaries"
+    },
+    "ListRasterDataCollections": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "RasterDataCollectionSummaries"
+    },
+    "ListVectorEnrichmentJobs": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "VectorEnrichmentJobSummaries"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-geospatial/2020-05-27/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-geospatial/2020-05-27/service-2.json.gz
new file mode 100644
index 00000000..a312ebaa
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-geospatial/2020-05-27/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-metrics/2022-09-30/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-metrics/2022-09-30/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..a17e8a79
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-metrics/2022-09-30/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-metrics/2022-09-30/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-metrics/2022-09-30/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-metrics/2022-09-30/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-metrics/2022-09-30/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-metrics/2022-09-30/service-2.json.gz
new file mode 100644
index 00000000..6162843f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-metrics/2022-09-30/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-runtime/2017-05-13/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-runtime/2017-05-13/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..e6ab7ecb
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-runtime/2017-05-13/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-runtime/2017-05-13/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-runtime/2017-05-13/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-runtime/2017-05-13/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-runtime/2017-05-13/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-runtime/2017-05-13/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-runtime/2017-05-13/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-runtime/2017-05-13/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-runtime/2017-05-13/service-2.json.gz
new file mode 100644
index 00000000..eb61e40e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker-runtime/2017-05-13/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/sagemaker/2017-07-24/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker/2017-07-24/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..19b9249c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker/2017-07-24/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/sagemaker/2017-07-24/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker/2017-07-24/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker/2017-07-24/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/sagemaker/2017-07-24/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker/2017-07-24/paginators-1.json
new file mode 100644
index 00000000..03e461a8
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker/2017-07-24/paginators-1.json
@@ -0,0 +1,472 @@
+{
+  "pagination": {
+    "ListTrainingJobs": {
+      "result_key": "TrainingJobSummaries",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListEndpoints": {
+      "result_key": "Endpoints",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListEndpointConfigs": {
+      "result_key": "EndpointConfigs",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListNotebookInstances": {
+      "result_key": "NotebookInstances",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListTags": {
+      "result_key": "Tags",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListModels": {
+      "result_key": "Models",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListAlgorithms": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "AlgorithmSummaryList"
+    },
+    "ListCodeRepositories": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "CodeRepositorySummaryList"
+    },
+    "ListCompilationJobs": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "CompilationJobSummaries"
+    },
+    "ListHyperParameterTuningJobs": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "HyperParameterTuningJobSummaries"
+    },
+    "ListLabelingJobs": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "LabelingJobSummaryList"
+    },
+    "ListLabelingJobsForWorkteam": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "LabelingJobSummaryList"
+    },
+    "ListModelPackages": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ModelPackageSummaryList"
+    },
+    "ListNotebookInstanceLifecycleConfigs": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "NotebookInstanceLifecycleConfigs"
+    },
+    "ListSubscribedWorkteams": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "SubscribedWorkteams"
+    },
+    "ListTrainingJobsForHyperParameterTuningJob": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "TrainingJobSummaries"
+    },
+    "ListTransformJobs": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "TransformJobSummaries"
+    },
+    "ListWorkteams": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Workteams"
+    },
+    "Search": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Results"
+    },
+    "ListApps": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Apps"
+    },
+    "ListAutoMLJobs": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "AutoMLJobSummaries"
+    },
+    "ListCandidatesForAutoMLJob": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Candidates"
+    },
+    "ListDomains": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Domains"
+    },
+    "ListExperiments": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ExperimentSummaries"
+    },
+    "ListFlowDefinitions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "FlowDefinitionSummaries"
+    },
+    "ListHumanTaskUis": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "HumanTaskUiSummaries"
+    },
+    "ListMonitoringExecutions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "MonitoringExecutionSummaries"
+    },
+    "ListMonitoringSchedules": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "MonitoringScheduleSummaries"
+    },
+    "ListProcessingJobs": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ProcessingJobSummaries"
+    },
+    "ListTrialComponents": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "TrialComponentSummaries"
+    },
+    "ListTrials": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "TrialSummaries"
+    },
+    "ListUserProfiles": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "UserProfiles"
+    },
+    "ListWorkforces": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Workforces"
+    },
+    "ListImageVersions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ImageVersions"
+    },
+    "ListImages": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Images"
+    },
+    "ListActions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ActionSummaries"
+    },
+    "ListAppImageConfigs": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "AppImageConfigs"
+    },
+    "ListArtifacts": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ArtifactSummaries"
+    },
+    "ListAssociations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "AssociationSummaries"
+    },
+    "ListContexts": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ContextSummaries"
+    },
+    "ListFeatureGroups": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "FeatureGroupSummaries"
+    },
+    "ListModelPackageGroups": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ModelPackageGroupSummaryList"
+    },
+    "ListPipelineExecutionSteps": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "PipelineExecutionSteps"
+    },
+    "ListPipelineExecutions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "PipelineExecutionSummaries"
+    },
+    "ListPipelineParametersForExecution": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "PipelineParameters"
+    },
+    "ListPipelines": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "PipelineSummaries"
+    },
+    "ListDataQualityJobDefinitions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "JobDefinitionSummaries"
+    },
+    "ListDeviceFleets": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "DeviceFleetSummaries"
+    },
+    "ListDevices": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "DeviceSummaries"
+    },
+    "ListEdgePackagingJobs": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "EdgePackagingJobSummaries"
+    },
+    "ListModelBiasJobDefinitions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "JobDefinitionSummaries"
+    },
+    "ListModelExplainabilityJobDefinitions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "JobDefinitionSummaries"
+    },
+    "ListModelQualityJobDefinitions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "JobDefinitionSummaries"
+    },
+    "ListStudioLifecycleConfigs": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "StudioLifecycleConfigs"
+    },
+    "ListInferenceRecommendationsJobs": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "InferenceRecommendationsJobs"
+    },
+    "ListLineageGroups": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "LineageGroupSummaries"
+    },
+    "ListModelMetadata": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ModelMetadataSummaries"
+    },
+    "ListEdgeDeploymentPlans": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "EdgeDeploymentPlanSummaries"
+    },
+    "ListStageDevices": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "DeviceDeploymentSummaries"
+    },
+    "ListInferenceRecommendationsJobSteps": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Steps"
+    },
+    "ListInferenceExperiments": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "InferenceExperiments"
+    },
+    "ListModelCardExportJobs": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ModelCardExportJobSummaries"
+    },
+    "ListModelCardVersions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ModelCardVersionSummaryList"
+    },
+    "ListModelCards": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ModelCardSummaries"
+    },
+    "ListMonitoringAlertHistory": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "MonitoringAlertHistory"
+    },
+    "ListMonitoringAlerts": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "MonitoringAlertSummaries"
+    },
+    "ListSpaces": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Spaces"
+    },
+    "ListAliases": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "SageMakerImageVersionAliases"
+    },
+    "ListResourceCatalogs": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ResourceCatalogs"
+    },
+    "ListClusterNodes": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ClusterNodeSummaries"
+    },
+    "ListClusters": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ClusterSummaries"
+    },
+    "ListInferenceComponents": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "InferenceComponents"
+    },
+    "ListMlflowTrackingServers": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "TrackingServerSummaries"
+    },
+    "ListOptimizationJobs": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "OptimizationJobSummaries"
+    },
+    "ListClusterSchedulerConfigs": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ClusterSchedulerConfigSummaries"
+    },
+    "ListComputeQuotas": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ComputeQuotaSummaries"
+    },
+    "ListPartnerApps": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Summaries"
+    },
+    "ListTrainingPlans": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "TrainingPlanSummaries"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/sagemaker/2017-07-24/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker/2017-07-24/service-2.json.gz
new file mode 100644
index 00000000..55d2f022
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker/2017-07-24/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/sagemaker/2017-07-24/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker/2017-07-24/waiters-2.json
new file mode 100644
index 00000000..8677924d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sagemaker/2017-07-24/waiters-2.json
@@ -0,0 +1,311 @@
+{
+  "version": 2,
+  "waiters": {
+    "NotebookInstanceInService": {
+      "delay": 30,
+      "maxAttempts": 60,
+      "operation": "DescribeNotebookInstance",
+      "acceptors": [
+        {
+          "expected": "InService",
+          "matcher": "path",
+          "state": "success",
+          "argument": "NotebookInstanceStatus"
+        },
+        {
+          "expected": "Failed",
+          "matcher": "path",
+          "state": "failure",
+          "argument": "NotebookInstanceStatus"
+        }
+      ]
+    },
+    "NotebookInstanceStopped": {
+      "delay": 30,     
+      "operation": "DescribeNotebookInstance",
+      "maxAttempts": 60,
+      "acceptors": [
+        {
+          "expected": "Stopped",
+          "matcher": "path",
+          "state": "success",
+          "argument": "NotebookInstanceStatus"
+        },
+        {
+          "expected": "Failed",
+          "matcher": "path",
+          "state": "failure",
+          "argument": "NotebookInstanceStatus"
+        }
+      ]
+    }, 
+    "NotebookInstanceDeleted": {
+      "delay": 30,
+      "maxAttempts": 60,
+      "operation": "DescribeNotebookInstance",
+      "acceptors": [
+        {
+          "expected": "ValidationException",
+          "matcher": "error",
+          "state": "success"
+        },    
+        {
+          "expected": "Failed",
+          "matcher": "path",
+          "state": "failure",
+          "argument": "NotebookInstanceStatus"
+        }
+      ]
+    },
+    "TrainingJobCompletedOrStopped": {
+      "delay": 120,
+      "maxAttempts": 180,
+      "operation": "DescribeTrainingJob",
+      "acceptors": [
+        {
+          "expected": "Completed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "TrainingJobStatus"
+        },
+        {
+          "expected": "Stopped",
+          "matcher": "path",
+          "state": "success",
+          "argument": "TrainingJobStatus"
+        },
+        {
+          "expected": "Failed",
+          "matcher": "path",
+          "state": "failure",
+          "argument": "TrainingJobStatus"
+        },
+        {
+          "expected": "ValidationException",
+          "matcher": "error",
+          "state": "failure"
+        }
+      ]
+    },
+    "EndpointInService": {
+      "delay": 30,
+      "maxAttempts": 120,
+      "operation": "DescribeEndpoint",
+      "acceptors": [
+        {
+          "expected": "InService",
+          "matcher": "path",
+          "state": "success",
+          "argument": "EndpointStatus"
+        },
+        {
+          "expected": "Failed",
+          "matcher": "path",
+          "state": "failure",
+          "argument": "EndpointStatus"
+        },
+        {
+          "expected": "ValidationException",
+          "matcher": "error",
+          "state": "failure"
+        }
+      ]
+    },
+    "EndpointDeleted": {
+      "delay": 30,
+      "maxAttempts": 60,
+      "operation": "DescribeEndpoint",
+      "acceptors": [
+        {
+          "expected": "ValidationException",
+          "matcher": "error",
+          "state": "success"
+        },
+        {
+          "expected": "Failed",
+          "matcher": "path",
+          "state": "failure",
+          "argument": "EndpointStatus"
+        }
+      ]
+    },
+    "TransformJobCompletedOrStopped": {
+      "delay": 60,
+      "maxAttempts": 60,
+      "operation": "DescribeTransformJob",
+      "acceptors": [
+        {
+          "expected": "Completed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "TransformJobStatus"
+        },
+        {
+          "expected": "Stopped",
+          "matcher": "path",
+          "state": "success",
+          "argument": "TransformJobStatus"
+        },
+        {
+          "expected": "Failed",
+          "matcher": "path",
+          "state": "failure",
+          "argument": "TransformJobStatus"
+        },
+        {
+          "expected": "ValidationException",
+          "matcher": "error",
+          "state": "failure"
+        }
+      ]
+    },
+    "ProcessingJobCompletedOrStopped": {
+      "delay": 60,
+      "maxAttempts": 60,
+      "operation": "DescribeProcessingJob",
+      "acceptors": [
+        {
+          "expected": "Completed",
+          "matcher": "path",
+          "state": "success",
+          "argument": "ProcessingJobStatus"
+        },
+        {
+          "expected": "Stopped",
+          "matcher": "path",
+          "state": "success",
+          "argument": "ProcessingJobStatus"
+        },
+        {
+          "expected": "Failed",
+          "matcher": "path",
+          "state": "failure",
+          "argument": "ProcessingJobStatus"
+        },
+        {
+          "expected": "ValidationException",
+          "matcher": "error",
+          "state": "failure"
+        }
+      ]
+    },
+    "ImageCreated": {
+      "delay": 60,
+      "maxAttempts": 60,
+      "operation": "DescribeImage",
+      "acceptors": [
+        {
+          "expected": "CREATED",
+          "matcher": "path",
+          "state": "success",
+          "argument": "ImageStatus"
+        },
+        {
+          "expected": "CREATE_FAILED",
+          "matcher": "path",
+          "state": "failure",
+          "argument": "ImageStatus"
+        },
+        {
+          "expected": "ValidationException",
+          "matcher": "error",
+          "state": "failure"
+        }
+      ]
+    },
+    "ImageUpdated": {
+      "delay": 60,
+      "maxAttempts": 60,
+      "operation": "DescribeImage",
+      "acceptors": [
+        {
+          "expected": "CREATED",
+          "matcher": "path",
+          "state": "success",
+          "argument": "ImageStatus"
+        },
+        {
+          "expected": "UPDATE_FAILED",
+          "matcher": "path",
+          "state": "failure",
+          "argument": "ImageStatus"
+        },
+        {
+          "expected": "ValidationException",
+          "matcher": "error",
+          "state": "failure"
+        }
+      ]
+    },
+    "ImageDeleted": {
+      "delay": 60,
+      "maxAttempts": 60,
+      "operation": "DescribeImage",
+      "acceptors": [
+        {
+          "expected": "ResourceNotFoundException",
+          "matcher": "error",
+          "state": "success"
+        },
+        {
+          "expected": "DELETE_FAILED",
+          "matcher": "path",
+          "state": "failure",
+          "argument": "ImageStatus"
+        },
+        {
+          "expected": "ValidationException",
+          "matcher": "error",
+          "state": "failure"
+        }
+      ]
+    },
+    "ImageVersionCreated": {
+      "delay": 60,
+      "maxAttempts": 60,
+      "operation": "DescribeImageVersion",
+      "acceptors": [
+        {
+          "expected": "CREATED",
+          "matcher": "path",
+          "state": "success",
+          "argument": "ImageVersionStatus"
+        },
+        {
+          "expected": "CREATE_FAILED",
+          "matcher": "path",
+          "state": "failure",
+          "argument": "ImageVersionStatus"
+        },
+        {
+          "expected": "ValidationException",
+          "matcher": "error",
+          "state": "failure"
+        }
+      ]
+    },
+    "ImageVersionDeleted": {
+      "delay": 60,
+      "maxAttempts": 60,
+      "operation": "DescribeImageVersion",
+      "acceptors": [
+        {
+          "expected": "ResourceNotFoundException",
+          "matcher": "error",
+          "state": "success"
+        },
+        {
+          "expected": "DELETE_FAILED",
+          "matcher": "path",
+          "state": "failure",
+          "argument": "ImageVersionStatus"
+        },
+        {
+          "expected": "ValidationException",
+          "matcher": "error",
+          "state": "failure"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/savingsplans/2019-06-28/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/savingsplans/2019-06-28/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..b010af59
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/savingsplans/2019-06-28/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/savingsplans/2019-06-28/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/savingsplans/2019-06-28/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/savingsplans/2019-06-28/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/savingsplans/2019-06-28/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/savingsplans/2019-06-28/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/savingsplans/2019-06-28/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/savingsplans/2019-06-28/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/savingsplans/2019-06-28/service-2.json.gz
new file mode 100644
index 00000000..893dee1b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/savingsplans/2019-06-28/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/scheduler/2021-06-30/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/scheduler/2021-06-30/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..0f336119
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/scheduler/2021-06-30/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/scheduler/2021-06-30/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/scheduler/2021-06-30/paginators-1.json
new file mode 100644
index 00000000..93b98ee2
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/scheduler/2021-06-30/paginators-1.json
@@ -0,0 +1,16 @@
+{
+  "pagination": {
+    "ListScheduleGroups": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ScheduleGroups"
+    },
+    "ListSchedules": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Schedules"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/scheduler/2021-06-30/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/scheduler/2021-06-30/service-2.json.gz
new file mode 100644
index 00000000..422d618e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/scheduler/2021-06-30/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/schemas/2019-12-02/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/schemas/2019-12-02/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..43a722d2
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/schemas/2019-12-02/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/schemas/2019-12-02/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/schemas/2019-12-02/paginators-1.json
new file mode 100644
index 00000000..ef2fe19d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/schemas/2019-12-02/paginators-1.json
@@ -0,0 +1,34 @@
+{
+  "pagination": {
+    "ListDiscoverers": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "Limit",
+      "result_key": "Discoverers"
+    },
+    "ListRegistries": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "Limit",
+      "result_key": "Registries"
+    },
+    "ListSchemaVersions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "Limit",
+      "result_key": "SchemaVersions"
+    },
+    "ListSchemas": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "Limit",
+      "result_key": "Schemas"
+    },
+    "SearchSchemas": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "Limit",
+      "result_key": "Schemas"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/schemas/2019-12-02/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/schemas/2019-12-02/service-2.json.gz
new file mode 100644
index 00000000..d3b220c5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/schemas/2019-12-02/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/schemas/2019-12-02/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/schemas/2019-12-02/waiters-2.json
new file mode 100644
index 00000000..4f642f61
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/schemas/2019-12-02/waiters-2.json
@@ -0,0 +1,36 @@
+{
+  "version": 2,
+  "waiters": {
+    "CodeBindingExists": {
+      "description": "Wait until code binding is generated",
+      "delay": 2,
+      "operation": "DescribeCodeBinding",
+      "maxAttempts": 30,
+      "acceptors": [
+        {
+          "expected": "CREATE_COMPLETE",
+          "matcher": "path",
+          "state": "success",
+          "argument": "Status"
+        },
+        {
+          "expected": "CREATE_IN_PROGRESS",
+          "matcher": "path",
+          "state": "retry",
+          "argument": "Status"
+        },
+        {
+          "expected": "CREATE_FAILED",
+          "matcher": "path",
+          "state": "failure",
+          "argument": "Status"
+        },
+        {
+          "matcher": "error",
+          "expected": "NotFoundException",
+          "state": "failure"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/sdb/2009-04-15/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/sdb/2009-04-15/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..19f57973
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sdb/2009-04-15/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/sdb/2009-04-15/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/sdb/2009-04-15/paginators-1.json
new file mode 100644
index 00000000..23620988
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sdb/2009-04-15/paginators-1.json
@@ -0,0 +1,15 @@
+{
+  "pagination": {
+    "ListDomains": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxNumberOfDomains",
+      "result_key": "DomainNames"
+    },
+    "Select": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "Items"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/sdb/2009-04-15/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/sdb/2009-04-15/service-2.json.gz
new file mode 100644
index 00000000..ae08bd8f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sdb/2009-04-15/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/sdk-default-configuration.json b/.venv/lib/python3.12/site-packages/botocore/data/sdk-default-configuration.json
new file mode 100644
index 00000000..3db13b26
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sdk-default-configuration.json
@@ -0,0 +1,55 @@
+{
+  "version": 1,
+  "base": {
+    "retryMode": "standard",
+    "stsRegionalEndpoints": "regional",
+    "s3UsEast1RegionalEndpoints": "regional",
+    "connectTimeoutInMillis": 1100,
+    "tlsNegotiationTimeoutInMillis": 1100
+  },
+  "modes": {
+    "standard": {
+      "connectTimeoutInMillis": {
+        "override": 3100
+      },
+      "tlsNegotiationTimeoutInMillis": {
+        "override": 3100
+      }
+    },
+    "in-region": {
+    },
+    "cross-region": {
+      "connectTimeoutInMillis": {
+        "override": 3100
+      },
+      "tlsNegotiationTimeoutInMillis": {
+        "override": 3100
+      }
+    },
+    "mobile": {
+      "connectTimeoutInMillis": {
+        "override": 30000
+      },
+      "tlsNegotiationTimeoutInMillis": {
+        "override": 30000
+      }
+    }
+  },
+  "documentation": {
+    "modes": {
+      "standard": "<p>The STANDARD mode provides the latest recommended default values that should be safe to run in most scenarios</p><p>Note that the default values vended from this mode might change as best practices may evolve. As a result, it is encouraged to perform tests when upgrading the SDK</p>",
+      "in-region": "<p>The IN_REGION mode builds on the standard mode and includes optimization tailored for applications which call AWS services from within the same AWS region</p><p>Note that the default values vended from this mode might change as best practices may evolve. As a result, it is encouraged to perform tests when upgrading the SDK</p>",
+      "cross-region": "<p>The CROSS_REGION mode builds on the standard mode and includes optimization tailored for applications which call AWS services in a different region</p><p>Note that the default values vended from this mode might change as best practices may evolve. As a result, it is encouraged to perform tests when upgrading the SDK</p>",
+      "mobile": "<p>The MOBILE mode builds on the standard mode and includes optimization tailored for mobile applications</p><p>Note that the default values vended from this mode might change as best practices may evolve. As a result, it is encouraged to perform tests when upgrading the SDK</p>",
+      "auto": "<p>The AUTO mode is an experimental mode that builds on the standard mode. The SDK will attempt to discover the execution environment to determine the appropriate settings automatically.</p><p>Note that the auto detection is heuristics-based and does not guarantee 100% accuracy. STANDARD mode will be used if the execution environment cannot be determined. The auto detection might query <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html\">EC2 Instance Metadata service</a>, which might introduce latency. Therefore we recommend choosing an explicit defaults_mode instead if startup latency is critical to your application</p>",
+      "legacy": "<p>The LEGACY mode provides default settings that vary per SDK and were used prior to establishment of defaults_mode</p>"
+    },
+    "configuration": {
+      "retryMode": "<p>A retry mode specifies how the SDK attempts retries. See <a href=\"https://docs.aws.amazon.com/sdkref/latest/guide/setting-global-retry_mode.html\">Retry Mode</a></p>",
+      "stsRegionalEndpoints": "<p>Specifies how the SDK determines the AWS service endpoint that it uses to talk to the AWS Security Token Service (AWS STS). See <a href=\"https://docs.aws.amazon.com/sdkref/latest/guide/setting-global-sts_regional_endpoints.html\">Setting STS Regional endpoints</a></p>",
+      "s3UsEast1RegionalEndpoints": "<p>Specifies how the SDK determines the AWS service endpoint that it uses to talk to the Amazon S3 for the us-east-1 region</p>",
+      "connectTimeoutInMillis": "<p>The amount of time after making an initial connection attempt on a socket, where if the client does not receive a completion of the connect handshake, the client gives up and fails the operation</p>",
+      "tlsNegotiationTimeoutInMillis": "<p>The maximum amount of time that a TLS handshake is allowed to take from the time the CLIENT HELLO message is sent to ethe time the client and server have fully negotiated ciphers and exchanged keys</p>"
+    }
+  }
+}
\ No newline at end of file
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/secretsmanager/2017-10-17/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/secretsmanager/2017-10-17/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..898f3bac
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/secretsmanager/2017-10-17/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/secretsmanager/2017-10-17/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/secretsmanager/2017-10-17/examples-1.json
new file mode 100644
index 00000000..43a3ec4f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/secretsmanager/2017-10-17/examples-1.json
@@ -0,0 +1,596 @@
+{
+  "version": "1.0",
+  "examples": {
+    "CancelRotateSecret": [
+      {
+        "input": {
+          "SecretId": "MyTestDatabaseSecret"
+        },
+        "output": {
+          "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestDatabaseSecret-a1b2c3",
+          "Name": "Name"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows how to cancel rotation for a secret. The operation sets the RotationEnabled field to false and cancels all scheduled rotations. To resume scheduled rotations, you must re-enable rotation by calling the rotate-secret operation.",
+        "id": "to-cancel-scheduled-rotation-for-a-secret-1523996016032",
+        "title": "To cancel scheduled rotation for a secret"
+      }
+    ],
+    "CreateSecret": [
+      {
+        "input": {
+          "ClientRequestToken": "EXAMPLE1-90ab-cdef-fedc-ba987SECRET1",
+          "Description": "My test database secret created with the CLI",
+          "Name": "MyTestDatabaseSecret",
+          "SecretString": "{\"username\":\"david\",\"password\":\"EXAMPLE-PASSWORD\"}"
+        },
+        "output": {
+          "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestDatabaseSecret-a1b2c3",
+          "Name": "MyTestDatabaseSecret",
+          "VersionId": "EXAMPLE1-90ab-cdef-fedc-ba987SECRET1"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows how to create a secret. The credentials stored in the encrypted secret value are retrieved from a file on disk named mycreds.json.",
+        "id": "to-create-a-basic-secret-1523996473658",
+        "title": "To create a basic secret"
+      }
+    ],
+    "DeleteResourcePolicy": [
+      {
+        "input": {
+          "SecretId": "MyTestDatabaseSecret"
+        },
+        "output": {
+          "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestDatabaseMasterSecret-a1b2c3",
+          "Name": "MyTestDatabaseSecret"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows how to delete the resource-based policy that is attached to a secret.",
+        "id": "to-delete-the-resource-based-policy-attached-to-a-secret-1530209419204",
+        "title": "To delete the resource-based policy attached to a secret"
+      }
+    ],
+    "DeleteSecret": [
+      {
+        "input": {
+          "RecoveryWindowInDays": 7,
+          "SecretId": "MyTestDatabaseSecret1"
+        },
+        "output": {
+          "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestDatabaseSecret-a1b2c3",
+          "DeletionDate": "1524085349.095",
+          "Name": "MyTestDatabaseSecret"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows how to delete a secret. The secret stays in your account in a deprecated and inaccessible state until the recovery window ends. After the date and time in the DeletionDate response field has passed, you can no longer recover this secret with restore-secret.",
+        "id": "to-delete-a-secret-1523996905092",
+        "title": "To delete a secret"
+      }
+    ],
+    "DescribeSecret": [
+      {
+        "input": {
+          "SecretId": "MyTestDatabaseSecret"
+        },
+        "output": {
+          "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestDatabaseSecret-a1b2c3",
+          "Description": "My test database secret",
+          "KmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/EXAMPLE1-90ab-cdef-fedc-ba987KMSKEY1",
+          "LastAccessedDate": "1523923200",
+          "LastChangedDate": 1523477145.729,
+          "LastRotatedDate": 1525747253.72,
+          "Name": "MyTestDatabaseSecret",
+          "RotationEnabled": true,
+          "RotationLambdaARN": "arn:aws:lambda:us-west-2:123456789012:function:MyTestRotationLambda",
+          "RotationRules": {
+            "AutomaticallyAfterDays": 14,
+            "Duration": "2h",
+            "ScheduleExpression": "cron(0 16 1,15 * ? *)"
+          },
+          "Tags": [
+            {
+              "Key": "SecondTag",
+              "Value": "AnotherValue"
+            },
+            {
+              "Key": "FirstTag",
+              "Value": "SomeValue"
+            }
+          ],
+          "VersionIdsToStages": {
+            "EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE": [
+              "AWSPREVIOUS"
+            ],
+            "EXAMPLE2-90ab-cdef-fedc-ba987EXAMPLE": [
+              "AWSCURRENT"
+            ]
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows how to get the details about a secret.",
+        "id": "to-retrieve-the-details-of-a-secret-1524000138629",
+        "title": "To retrieve the details of a secret"
+      }
+    ],
+    "GetRandomPassword": [
+      {
+        "input": {
+          "IncludeSpace": true,
+          "PasswordLength": 20,
+          "RequireEachIncludedType": true
+        },
+        "output": {
+          "RandomPassword": "EXAMPLE-PASSWORD"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows how to request a randomly generated password. This example includes the optional flags to require spaces and at least one character of each included type. It specifies a length of 20 characters.",
+        "id": "to-generate-a-random-password-1524000546092",
+        "title": "To generate a random password"
+      }
+    ],
+    "GetResourcePolicy": [
+      {
+        "input": {
+          "SecretId": "MyTestDatabaseSecret"
+        },
+        "output": {
+          "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestDatabaseSecret-a1b2c3",
+          "Name": "MyTestDatabaseSecret",
+          "ResourcePolicy": "{\n\"Version\":\"2012-10-17\",\n\"Statement\":[{\n\"Effect\":\"Allow\",\n\"Principal\":{\n\"AWS\":\"arn:aws:iam::123456789012:root\"\n},\n\"Action\":\"secretsmanager:GetSecretValue\",\n\"Resource\":\"*\"\n}]\n}"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows how to retrieve the resource-based policy that is attached to a secret.",
+        "id": "to-retrieve-the-resource-based-policy-attached-to-a-secret-1530209677536",
+        "title": "To retrieve the resource-based policy attached to a secret"
+      }
+    ],
+    "GetSecretValue": [
+      {
+        "input": {
+          "SecretId": "MyTestDatabaseSecret"
+        },
+        "output": {
+          "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestDatabaseSecret-a1b2c3",
+          "CreatedDate": 1523477145.713,
+          "Name": "MyTestDatabaseSecret",
+          "SecretString": "{\n  \"username\":\"david\",\n  \"password\":\"EXAMPLE-PASSWORD\"\n}\n",
+          "VersionId": "EXAMPLE1-90ab-cdef-fedc-ba987SECRET1",
+          "VersionStages": [
+            "AWSPREVIOUS"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows how to retrieve a secret string value.",
+        "id": "to-retrieve-the-encrypted-secret-value-of-a-secret-1524000702484",
+        "title": "To retrieve the encrypted secret value of a secret"
+      }
+    ],
+    "ListSecretVersionIds": [
+      {
+        "input": {
+          "IncludeDeprecated": true,
+          "SecretId": "MyTestDatabaseSecret"
+        },
+        "output": {
+          "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestDatabaseSecret-a1b2c3",
+          "Name": "MyTestDatabaseSecret",
+          "Versions": [
+            {
+              "CreatedDate": 1523477145.713,
+              "VersionId": "EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE",
+              "VersionStages": [
+                "AWSPREVIOUS"
+              ]
+            },
+            {
+              "CreatedDate": 1523486221.391,
+              "VersionId": "EXAMPLE2-90ab-cdef-fedc-ba987EXAMPLE",
+              "VersionStages": [
+                "AWSCURRENT"
+              ]
+            },
+            {
+              "CreatedDate": 1511974462.36,
+              "VersionId": "EXAMPLE3-90ab-cdef-fedc-ba987EXAMPLE;"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows how to retrieve a list of all of the versions of a secret, including those without any staging labels.",
+        "id": "to-list-all-of-the-secret-versions-associated-with-a-secret-1524000999164",
+        "title": "To list all of the secret versions associated with a secret"
+      }
+    ],
+    "ListSecrets": [
+      {
+        "input": {
+        },
+        "output": {
+          "SecretList": [
+            {
+              "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestDatabaseSecret-a1b2c3",
+              "Description": "My test database secret",
+              "LastChangedDate": 1523477145.729,
+              "Name": "MyTestDatabaseSecret",
+              "SecretVersionsToStages": {
+                "EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE": [
+                  "AWSCURRENT"
+                ]
+              }
+            },
+            {
+              "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestDatabaseSecret1-d4e5f6",
+              "Description": "Another secret created for a different database",
+              "LastChangedDate": 1523482025.685,
+              "Name": "MyTestDatabaseSecret1",
+              "SecretVersionsToStages": {
+                "EXAMPLE2-90ab-cdef-fedc-ba987EXAMPLE": [
+                  "AWSCURRENT"
+                ]
+              }
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows how to list all of the secrets in your account.",
+        "id": "to-list-the-secrets-in-your-account-1524001246087",
+        "title": "To list the secrets in your account"
+      }
+    ],
+    "PutResourcePolicy": [
+      {
+        "input": {
+          "ResourcePolicy": "{\n\"Version\":\"2012-10-17\",\n\"Statement\":[{\n\"Effect\":\"Allow\",\n\"Principal\":{\n\"AWS\":\"arn:aws:iam::123456789012:root\"\n},\n\"Action\":\"secretsmanager:GetSecretValue\",\n\"Resource\":\"*\"\n}]\n}",
+          "SecretId": "MyTestDatabaseSecret"
+        },
+        "output": {
+          "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestDatabaseSecret-a1b2c3",
+          "Name": "MyTestDatabaseSecret"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows how to add a resource-based policy to a secret.",
+        "id": "to-add-a-resource-based-policy-to-a-secret-1530209881839",
+        "title": "To add a resource-based policy to a secret"
+      }
+    ],
+    "PutSecretValue": [
+      {
+        "input": {
+          "ClientRequestToken": "EXAMPLE2-90ab-cdef-fedc-ba987EXAMPLE",
+          "SecretId": "MyTestDatabaseSecret",
+          "SecretString": "{\"username\":\"david\",\"password\":\"EXAMPLE-PASSWORD\"}"
+        },
+        "output": {
+          "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestDatabaseSecret-a1b2c3",
+          "Name": "MyTestDatabaseSecret",
+          "VersionId": "EXAMPLE2-90ab-cdef-fedc-ba987EXAMPLE",
+          "VersionStages": [
+            "AWSCURRENT"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows how to create a new version of the secret. Alternatively, you can use the update-secret command.",
+        "id": "to-store-a-secret-value-in-a-new-version-of-a-secret-1524001393971",
+        "title": "To store a secret value in a new version of a secret"
+      }
+    ],
+    "RestoreSecret": [
+      {
+        "input": {
+          "SecretId": "MyTestDatabaseSecret"
+        },
+        "output": {
+          "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestDatabaseSecret-a1b2c3",
+          "Name": "MyTestDatabaseSecret"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows how to restore a secret that you previously scheduled for deletion.",
+        "id": "to-restore-a-previously-deleted-secret-1524001513930",
+        "title": "To restore a previously deleted secret"
+      }
+    ],
+    "RotateSecret": [
+      {
+        "input": {
+          "RotationLambdaARN": "arn:aws:lambda:us-west-2:123456789012:function:MyTestDatabaseRotationLambda",
+          "RotationRules": {
+            "Duration": "2h",
+            "ScheduleExpression": "cron(0 16 1,15 * ? *)"
+          },
+          "SecretId": "MyTestDatabaseSecret"
+        },
+        "output": {
+          "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestDatabaseSecret-a1b2c3",
+          "Name": "MyTestDatabaseSecret",
+          "VersionId": "EXAMPLE2-90ab-cdef-fedc-ba987SECRET2"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example configures rotation for a secret using a cron expression. The first rotation happens immediately after the changes are stored in the secret. The rotation schedule is the first and 15th day of every month. The rotation window begins at 4:00 PM UTC and ends at 6:00 PM.",
+        "id": "to-configure-rotation-for-a-secret-1524001629475",
+        "title": "To configure rotation for a secret"
+      },
+      {
+        "input": {
+          "SecretId": "MyTestDatabaseSecret"
+        },
+        "output": {
+          "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestDatabaseSecret-a1b2c3",
+          "Name": "MyTestDatabaseSecret",
+          "VersionId": "EXAMPLE2-90ab-cdef-fedc-ba987SECRET2"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example requests an immediate invocation of the secret's Lambda rotation function. It assumes that the specified secret already has rotation configured. The rotation function runs asynchronously in the background.",
+        "id": "to-request-an-immediate-rotation-for-a-secret-1524001949004",
+        "title": "To request an immediate rotation for a secret"
+      }
+    ],
+    "TagResource": [
+      {
+        "input": {
+          "SecretId": "MyExampleSecret",
+          "Tags": [
+            {
+              "Key": "FirstTag",
+              "Value": "SomeValue"
+            },
+            {
+              "Key": "SecondTag",
+              "Value": "AnotherValue"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows how to attach two tags each with a Key and Value to a secret. There is no output from this API. To see the result, use the DescribeSecret operation.",
+        "id": "to-add-tags-to-a-secret-1524002106718",
+        "title": "To add tags to a secret"
+      }
+    ],
+    "UntagResource": [
+      {
+        "input": {
+          "SecretId": "MyTestDatabaseSecret",
+          "TagKeys": [
+            "FirstTag",
+            "SecondTag"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows how to remove two tags from a secret's metadata. For each, both the tag and the associated value are removed. There is no output from this API. To see the result, use the DescribeSecret operation.",
+        "id": "to-remove-tags-from-a-secret-1524002239065",
+        "title": "To remove tags from a secret"
+      }
+    ],
+    "UpdateSecret": [
+      {
+        "input": {
+          "ClientRequestToken": "EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE",
+          "Description": "This is a new description for the secret.",
+          "SecretId": "MyTestDatabaseSecret"
+        },
+        "output": {
+          "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestDatabaseSecret-a1b2c3",
+          "Name": "MyTestDatabaseSecret"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows how to modify the description of a secret.",
+        "id": "to-update-the-description-of-a-secret-1524002349094",
+        "title": "To update the description of a secret"
+      },
+      {
+        "input": {
+          "KmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/EXAMPLE2-90ab-cdef-fedc-ba987EXAMPLE",
+          "SecretId": "MyTestDatabaseSecret"
+        },
+        "output": {
+          "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestDatabaseSecret-a1b2c3",
+          "Name": "MyTestDatabaseSecret"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example shows how to update the KMS customer managed key (CMK) used to encrypt the secret value. The KMS CMK must be in the same region as the secret.",
+        "id": "to-update-the-kms-key-associated-with-a-secret-1524002421563",
+        "title": "To update the KMS key associated with a secret"
+      },
+      {
+        "input": {
+          "SecretId": "MyTestDatabaseSecret",
+          "SecretString": "{JSON STRING WITH CREDENTIALS}"
+        },
+        "output": {
+          "ARN": "aws:arn:secretsmanager:us-west-2:123456789012:secret:MyTestDatabaseSecret-a1b2c3",
+          "Name": "MyTestDatabaseSecret",
+          "VersionId": "EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows how to create a new version of the secret by updating the SecretString field. Alternatively, you can use the put-secret-value operation.",
+        "id": "to-create-a-new-version-of-the-encrypted-secret-value-1524004651836",
+        "title": "To create a new version of the encrypted secret value"
+      }
+    ],
+    "UpdateSecretVersionStage": [
+      {
+        "input": {
+          "MoveToVersionId": "EXAMPLE1-90ab-cdef-fedc-ba987SECRET1",
+          "SecretId": "MyTestDatabaseSecret",
+          "VersionStage": "STAGINGLABEL1"
+        },
+        "output": {
+          "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestDatabaseSecret-a1b2c3",
+          "Name": "MyTestDatabaseSecret"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows you how to add a staging label to a version of a secret. You can review the results by running the operation ListSecretVersionIds and viewing the VersionStages response field for the affected version.",
+        "id": "to-add-a-staging-label-attached-to-a-version-of-a-secret-1524004783841",
+        "title": "To add a staging label attached to a version of a secret"
+      },
+      {
+        "input": {
+          "RemoveFromVersionId": "EXAMPLE1-90ab-cdef-fedc-ba987SECRET1",
+          "SecretId": "MyTestDatabaseSecret",
+          "VersionStage": "STAGINGLABEL1"
+        },
+        "output": {
+          "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestDatabaseSecret-a1b2c3",
+          "Name": "MyTestDatabaseSecret"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows you how to delete a staging label that is attached to a version of a secret. You can review the results by running the operation ListSecretVersionIds and viewing the VersionStages response field for the affected version.",
+        "id": "to-delete-a-staging-label-attached-to-a-version-of-a-secret-1524004862181",
+        "title": "To delete a staging label attached to a version of a secret"
+      },
+      {
+        "input": {
+          "MoveToVersionId": "EXAMPLE2-90ab-cdef-fedc-ba987SECRET2",
+          "RemoveFromVersionId": "EXAMPLE1-90ab-cdef-fedc-ba987SECRET1",
+          "SecretId": "MyTestDatabaseSecret",
+          "VersionStage": "AWSCURRENT"
+        },
+        "output": {
+          "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestDatabaseSecret-a1b2c3",
+          "Name": "MyTestDatabaseSecret"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows you how to move a staging label that is attached to one version of a secret to a different version. You can review the results by running the operation ListSecretVersionIds and viewing the VersionStages response field for the affected version.",
+        "id": "to-move-a-staging-label-from-one-version-of-a-secret-to-another-1524004963841",
+        "title": "To move a staging label from one version of a secret to another"
+      }
+    ],
+    "ValidateResourcePolicy": [
+      {
+        "input": {
+          "ResourcePolicy": "{\n\"Version\":\"2012-10-17\",\n\"Statement\":[{\n\"Effect\":\"Allow\",\n\"Principal\":{\n\"AWS\":\"arn:aws:iam::123456789012:root\"\n},\n\"Action\":\"secretsmanager:GetSecretValue\",\n\"Resource\":\"*\"\n}]\n}",
+          "SecretId": "MyTestDatabaseSecret"
+        },
+        "output": {
+          "PolicyValidationPassed": true,
+          "ValidationErrors": [
+
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows how to validate a resource-based policy to a secret.",
+        "id": "to-validate-the-resource-policy-of-a-secret-1524000138629",
+        "title": "To validate a resource-based policy to a secret"
+      }
+    ]
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/secretsmanager/2017-10-17/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/secretsmanager/2017-10-17/paginators-1.json
new file mode 100644
index 00000000..0f62e8e1
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/secretsmanager/2017-10-17/paginators-1.json
@@ -0,0 +1,10 @@
+{
+  "pagination": {
+    "ListSecrets": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "SecretList"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/secretsmanager/2017-10-17/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/secretsmanager/2017-10-17/service-2.json.gz
new file mode 100644
index 00000000..f2d8c308
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/secretsmanager/2017-10-17/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/secretsmanager/2017-10-17/service-2.sdk-extras.json b/.venv/lib/python3.12/site-packages/botocore/data/secretsmanager/2017-10-17/service-2.sdk-extras.json
new file mode 100644
index 00000000..dc78f892
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/secretsmanager/2017-10-17/service-2.sdk-extras.json
@@ -0,0 +1,8 @@
+{
+    "version": 1.0,
+    "merge": {
+        "metadata": {
+            "serviceId": "Secrets Manager"
+        }
+    }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/security-ir/2018-05-10/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/security-ir/2018-05-10/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..b76ca880
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/security-ir/2018-05-10/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/security-ir/2018-05-10/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/security-ir/2018-05-10/paginators-1.json
new file mode 100644
index 00000000..2927d386
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/security-ir/2018-05-10/paginators-1.json
@@ -0,0 +1,28 @@
+{
+  "pagination": {
+    "ListCaseEdits": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListCases": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListComments": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListMemberships": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/security-ir/2018-05-10/paginators-1.sdk-extras.json b/.venv/lib/python3.12/site-packages/botocore/data/security-ir/2018-05-10/paginators-1.sdk-extras.json
new file mode 100644
index 00000000..74820d54
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/security-ir/2018-05-10/paginators-1.sdk-extras.json
@@ -0,0 +1,22 @@
+{
+  "version": 1,
+  "merge": {
+    "pagination": {
+      "ListCaseEdits": {
+        "non_aggregate_keys": [
+          "total"
+        ]
+      },
+      "ListCases": {
+        "non_aggregate_keys": [
+          "total"
+        ]
+      },
+      "ListComments": {
+        "non_aggregate_keys": [
+          "total"
+        ]
+      }
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/security-ir/2018-05-10/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/security-ir/2018-05-10/service-2.json.gz
new file mode 100644
index 00000000..06f12254
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/security-ir/2018-05-10/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/security-ir/2018-05-10/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/security-ir/2018-05-10/waiters-2.json
new file mode 100644
index 00000000..13f60ee6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/security-ir/2018-05-10/waiters-2.json
@@ -0,0 +1,5 @@
+{
+  "version": 2,
+  "waiters": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/securityhub/2018-10-26/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/securityhub/2018-10-26/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..b52a4d66
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/securityhub/2018-10-26/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/securityhub/2018-10-26/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/securityhub/2018-10-26/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/securityhub/2018-10-26/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/securityhub/2018-10-26/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/securityhub/2018-10-26/paginators-1.json
new file mode 100644
index 00000000..7fae041f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/securityhub/2018-10-26/paginators-1.json
@@ -0,0 +1,106 @@
+{
+  "pagination": {
+    "GetEnabledStandards": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "StandardsSubscriptions"
+    },
+    "GetFindings": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Findings"
+    },
+    "GetInsights": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Insights"
+    },
+    "ListEnabledProductsForImport": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ProductSubscriptions"
+    },
+    "ListInvitations": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Invitations"
+    },
+    "ListMembers": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Members"
+    },
+    "DescribeActionTargets": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ActionTargets"
+    },
+    "DescribeProducts": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Products"
+    },
+    "DescribeStandards": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Standards"
+    },
+    "DescribeStandardsControls": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Controls"
+    },
+    "ListOrganizationAdminAccounts": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "AdminAccounts"
+    },
+    "ListFindingAggregators": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "FindingAggregators"
+    },
+    "ListSecurityControlDefinitions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "SecurityControlDefinitions"
+    },
+    "ListStandardsControlAssociations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "StandardsControlAssociationSummaries"
+    },
+    "GetFindingHistory": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Records"
+    },
+    "ListConfigurationPolicies": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ConfigurationPolicySummaries"
+    },
+    "ListConfigurationPolicyAssociations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ConfigurationPolicyAssociationSummaries"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/securityhub/2018-10-26/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/securityhub/2018-10-26/service-2.json.gz
new file mode 100644
index 00000000..5fa056d5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/securityhub/2018-10-26/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/securitylake/2018-05-10/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/securitylake/2018-05-10/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..fe0c62ff
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/securitylake/2018-05-10/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/securitylake/2018-05-10/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/securitylake/2018-05-10/paginators-1.json
new file mode 100644
index 00000000..19e482b2
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/securitylake/2018-05-10/paginators-1.json
@@ -0,0 +1,28 @@
+{
+  "pagination": {
+    "GetDataLakeSources": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "dataLakeSources"
+    },
+    "ListDataLakeExceptions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "exceptions"
+    },
+    "ListLogSources": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "sources"
+    },
+    "ListSubscribers": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "subscribers"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/securitylake/2018-05-10/paginators-1.sdk-extras.json b/.venv/lib/python3.12/site-packages/botocore/data/securitylake/2018-05-10/paginators-1.sdk-extras.json
new file mode 100644
index 00000000..41ae7fe6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/securitylake/2018-05-10/paginators-1.sdk-extras.json
@@ -0,0 +1,12 @@
+{
+  "version": 1.0,
+  "merge": {
+    "pagination": {
+      "GetDataLakeSources": {
+        "non_aggregate_keys": [
+          "dataLakeArn"
+        ]
+      }
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/securitylake/2018-05-10/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/securitylake/2018-05-10/service-2.json.gz
new file mode 100644
index 00000000..568b60a9
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/securitylake/2018-05-10/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/serverlessrepo/2017-09-08/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/serverlessrepo/2017-09-08/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..7ad5582f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/serverlessrepo/2017-09-08/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/serverlessrepo/2017-09-08/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/serverlessrepo/2017-09-08/paginators-1.json
new file mode 100644
index 00000000..a39e5477
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/serverlessrepo/2017-09-08/paginators-1.json
@@ -0,0 +1,22 @@
+{
+  "pagination": {
+    "ListApplicationDependencies": {
+      "input_token": "NextToken",
+      "limit_key": "MaxItems",
+      "output_token": "NextToken",
+      "result_key": "Dependencies"
+    },
+    "ListApplicationVersions": {
+      "input_token": "NextToken",
+      "limit_key": "MaxItems",
+      "output_token": "NextToken",
+      "result_key": "Versions"
+    },
+    "ListApplications": {
+      "input_token": "NextToken",
+      "limit_key": "MaxItems",
+      "output_token": "NextToken",
+      "result_key": "Applications"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/serverlessrepo/2017-09-08/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/serverlessrepo/2017-09-08/service-2.json.gz
new file mode 100644
index 00000000..c86a6e67
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/serverlessrepo/2017-09-08/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/service-quotas/2019-06-24/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/service-quotas/2019-06-24/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..41e09ee7
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/service-quotas/2019-06-24/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/service-quotas/2019-06-24/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/service-quotas/2019-06-24/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/service-quotas/2019-06-24/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/service-quotas/2019-06-24/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/service-quotas/2019-06-24/paginators-1.json
new file mode 100644
index 00000000..e0d45476
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/service-quotas/2019-06-24/paginators-1.json
@@ -0,0 +1,40 @@
+{
+  "pagination": {
+    "ListAWSDefaultServiceQuotas": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Quotas"
+    },
+    "ListRequestedServiceQuotaChangeHistory": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "RequestedQuotas"
+    },
+    "ListRequestedServiceQuotaChangeHistoryByQuota": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "RequestedQuotas"
+    },
+    "ListServiceQuotaIncreaseRequestsInTemplate": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ServiceQuotaIncreaseRequestInTemplateList"
+    },
+    "ListServiceQuotas": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Quotas"
+    },
+    "ListServices": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Services"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/service-quotas/2019-06-24/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/service-quotas/2019-06-24/service-2.json.gz
new file mode 100644
index 00000000..9d5d8e7f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/service-quotas/2019-06-24/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/servicecatalog-appregistry/2020-06-24/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/servicecatalog-appregistry/2020-06-24/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..75079a60
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/servicecatalog-appregistry/2020-06-24/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/servicecatalog-appregistry/2020-06-24/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/servicecatalog-appregistry/2020-06-24/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/servicecatalog-appregistry/2020-06-24/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/servicecatalog-appregistry/2020-06-24/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/servicecatalog-appregistry/2020-06-24/paginators-1.json
new file mode 100644
index 00000000..55281fb7
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/servicecatalog-appregistry/2020-06-24/paginators-1.json
@@ -0,0 +1,34 @@
+{
+  "pagination": {
+    "ListApplications": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "applications"
+    },
+    "ListAssociatedAttributeGroups": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "attributeGroups"
+    },
+    "ListAssociatedResources": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "resources"
+    },
+    "ListAttributeGroups": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "attributeGroups"
+    },
+    "ListAttributeGroupsForApplication": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "attributeGroupsDetails"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/servicecatalog-appregistry/2020-06-24/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/servicecatalog-appregistry/2020-06-24/service-2.json.gz
new file mode 100644
index 00000000..56e854a4
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/servicecatalog-appregistry/2020-06-24/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/servicecatalog/2015-12-10/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/servicecatalog/2015-12-10/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..935bfe30
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/servicecatalog/2015-12-10/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/servicecatalog/2015-12-10/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/servicecatalog/2015-12-10/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/servicecatalog/2015-12-10/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/servicecatalog/2015-12-10/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/servicecatalog/2015-12-10/paginators-1.json
new file mode 100644
index 00000000..5770fefa
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/servicecatalog/2015-12-10/paginators-1.json
@@ -0,0 +1,100 @@
+{
+  "pagination": {
+    "SearchProductsAsAdmin": {
+      "result_key": "ProductViewDetails",
+      "output_token": "NextPageToken",
+      "input_token": "PageToken",
+      "limit_key": "PageSize"
+    },
+    "ListAcceptedPortfolioShares": {
+      "result_key": "PortfolioDetails",
+      "output_token": "NextPageToken",
+      "input_token": "PageToken",
+      "limit_key": "PageSize"
+    },
+    "ListPortfolios": {
+      "result_key": "PortfolioDetails",
+      "output_token": "NextPageToken",
+      "input_token": "PageToken",
+      "limit_key": "PageSize"
+    },
+    "ListConstraintsForPortfolio": {
+      "result_key": "ConstraintDetails",
+      "output_token": "NextPageToken",
+      "input_token": "PageToken",
+      "limit_key": "PageSize"
+    },
+    "ListLaunchPaths": {
+      "result_key": "LaunchPathSummaries",
+      "output_token": "NextPageToken",
+      "input_token": "PageToken",
+      "limit_key": "PageSize"
+    },
+    "ListTagOptions": {
+      "result_key": "TagOptionDetails",
+      "output_token": "PageToken",
+      "input_token": "PageToken",
+      "limit_key": "PageSize"
+    },
+    "ListPortfoliosForProduct": {
+      "result_key": "PortfolioDetails",
+      "output_token": "NextPageToken",
+      "input_token": "PageToken",
+      "limit_key": "PageSize"
+    },
+    "ListPrincipalsForPortfolio": {
+      "result_key": "Principals",
+      "output_token": "NextPageToken",
+      "input_token": "PageToken",
+      "limit_key": "PageSize"
+    },
+    "ListResourcesForTagOption": {
+      "result_key": "ResourceDetails",
+      "output_token": "PageToken",
+      "input_token": "PageToken",
+      "limit_key": "PageSize"
+    },
+    "ListOrganizationPortfolioAccess": {
+      "input_token": "PageToken",
+      "limit_key": "PageSize",
+      "output_token": "NextPageToken",
+      "result_key": "OrganizationNodes"
+    },
+    "ListProvisionedProductPlans": {
+      "input_token": "PageToken",
+      "limit_key": "PageSize",
+      "output_token": "NextPageToken",
+      "result_key": "ProvisionedProductPlans"
+    },
+    "ListProvisioningArtifactsForServiceAction": {
+      "input_token": "PageToken",
+      "limit_key": "PageSize",
+      "output_token": "NextPageToken",
+      "result_key": "ProvisioningArtifactViews"
+    },
+    "ListRecordHistory": {
+      "input_token": "PageToken",
+      "limit_key": "PageSize",
+      "output_token": "NextPageToken",
+      "result_key": "RecordDetails"
+    },
+    "ListServiceActions": {
+      "input_token": "PageToken",
+      "limit_key": "PageSize",
+      "output_token": "NextPageToken",
+      "result_key": "ServiceActionSummaries"
+    },
+    "ListServiceActionsForProvisioningArtifact": {
+      "input_token": "PageToken",
+      "limit_key": "PageSize",
+      "output_token": "NextPageToken",
+      "result_key": "ServiceActionSummaries"
+    },
+    "ScanProvisionedProducts": {
+      "input_token": "PageToken",
+      "limit_key": "PageSize",
+      "output_token": "NextPageToken",
+      "result_key": "ProvisionedProducts"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/servicecatalog/2015-12-10/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/servicecatalog/2015-12-10/service-2.json.gz
new file mode 100644
index 00000000..87b245eb
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/servicecatalog/2015-12-10/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/servicediscovery/2017-03-14/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/servicediscovery/2017-03-14/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..a04a9e1d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/servicediscovery/2017-03-14/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/servicediscovery/2017-03-14/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/servicediscovery/2017-03-14/examples-1.json
new file mode 100644
index 00000000..cc99fe4c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/servicediscovery/2017-03-14/examples-1.json
@@ -0,0 +1,672 @@
+{
+  "version": "1.0",
+  "examples": {
+    "CreateHttpNamespace": [
+      {
+        "input": {
+          "CreatorRequestId": "example-creator-request-id-0001",
+          "Description": "Example.com AWS Cloud Map HTTP Namespace",
+          "Name": "example-http.com"
+        },
+        "output": {
+          "OperationId": "httpvoqozuhfet5kzxoxg-a-response-example"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates an HTTP namespace.",
+        "id": "createhttpnamespace-example-1590114811304",
+        "title": "CreateHttpNamespace example"
+      }
+    ],
+    "CreatePrivateDnsNamespace": [
+      {
+        "input": {
+          "CreatorRequestId": "eedd6892-50f3-41b2-8af9-611d6e1d1a8c",
+          "Name": "example.com",
+          "Vpc": "vpc-1c56417b"
+        },
+        "output": {
+          "OperationId": "gv4g5meo7ndmeh4fqskygvk23d2fijwa-k9302yzd"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Example: Create private DNS namespace",
+        "id": "example-create-private-dns-namespace-1587058592930",
+        "title": "Example: Create private DNS namespace"
+      }
+    ],
+    "CreatePublicDnsNamespace": [
+      {
+        "input": {
+          "CreatorRequestId": "example-creator-request-id-0003",
+          "Description": "Example.com AWS Cloud Map Public DNS Namespace",
+          "Name": "example-public-dns.com"
+        },
+        "output": {
+          "OperationId": "dns2voqozuhfet5kzxoxg-a-response-example"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example creates a public namespace based on DNS.",
+        "id": "createpublicdnsnamespace-example-1590114940910",
+        "title": "CreatePublicDnsNamespace example"
+      }
+    ],
+    "CreateService": [
+      {
+        "input": {
+          "CreatorRequestId": "567c1193-6b00-4308-bd57-ad38a8822d25",
+          "DnsConfig": {
+            "DnsRecords": [
+              {
+                "TTL": 60,
+                "Type": "A"
+              }
+            ],
+            "NamespaceId": "ns-ylexjili4cdxy3xm",
+            "RoutingPolicy": "MULTIVALUE"
+          },
+          "Name": "myservice",
+          "NamespaceId": "ns-ylexjili4cdxy3xm"
+        },
+        "output": {
+          "Service": {
+            "Arn": "arn:aws:servicediscovery:us-west-2:123456789012:service/srv-p5zdwlg5uvvzjita",
+            "CreateDate": 1587081768.334,
+            "CreatorRequestId": "567c1193-6b00-4308-bd57-ad38a8822d25",
+            "DnsConfig": {
+              "DnsRecords": [
+                {
+                  "TTL": 60,
+                  "Type": "A"
+                }
+              ],
+              "NamespaceId": "ns-ylexjili4cdxy3xm",
+              "RoutingPolicy": "MULTIVALUE"
+            },
+            "Id": "srv-p5zdwlg5uvvzjita",
+            "Name": "myservice",
+            "NamespaceId": "ns-ylexjili4cdxy3xm"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Example: Create service",
+        "id": "example-create-service-1587235913584",
+        "title": "Example: Create service"
+      }
+    ],
+    "DeleteNamespace": [
+      {
+        "input": {
+          "Id": "ns-ylexjili4cdxy3xm"
+        },
+        "output": {
+          "OperationId": "gv4g5meo7ndmeh4fqskygvk23d2fijwa-k98y6drk"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Example: Delete namespace",
+        "id": "example-delete-namespace-1587416093508",
+        "title": "Example: Delete namespace"
+      }
+    ],
+    "DeleteService": [
+      {
+        "input": {
+          "Id": "srv-p5zdwlg5uvvzjita"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Example: Delete service",
+        "id": "example-delete-service-1587416462902",
+        "title": "Example: Delete service"
+      }
+    ],
+    "DeregisterInstance": [
+      {
+        "input": {
+          "InstanceId": "myservice-53",
+          "ServiceId": "srv-p5zdwlg5uvvzjita"
+        },
+        "output": {
+          "OperationId": "4yejorelbukcjzpnr6tlmrghsjwpngf4-k98rnaiq"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Example: Deregister a service instance",
+        "id": "example-deregister-a-service-instance-1587416305738",
+        "title": "Example: Deregister a service instance"
+      }
+    ],
+    "DiscoverInstances": [
+      {
+        "input": {
+          "HealthStatus": "ALL",
+          "MaxResults": 10,
+          "NamespaceName": "example.com",
+          "ServiceName": "myservice"
+        },
+        "output": {
+          "Instances": [
+            {
+              "Attributes": {
+                "AWS_INSTANCE_IPV4": "172.2.1.3",
+                "AWS_INSTANCE_PORT": "808"
+              },
+              "HealthStatus": "UNKNOWN",
+              "InstanceId": "myservice-53",
+              "NamespaceName": "example.com",
+              "ServiceName": "myservice"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Example: Discover registered instances",
+        "id": "example-discover-registered-instances-1587236343568",
+        "title": "Example: Discover registered instances"
+      }
+    ],
+    "GetInstance": [
+      {
+        "input": {
+          "InstanceId": "i-abcd1234",
+          "ServiceId": "srv-e4anhexample0004"
+        },
+        "output": {
+          "Instance": {
+            "Attributes": {
+              "AWS_INSTANCE_IPV4": "192.0.2.44",
+              "AWS_INSTANCE_PORT": "80",
+              "color": "green",
+              "region": "us-west-2",
+              "stage": "beta"
+            },
+            "Id": "i-abcd1234"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example gets information about a specified instance.",
+        "id": "getinstance-example-1590115065598",
+        "title": "GetInstance example"
+      }
+    ],
+    "GetInstancesHealthStatus": [
+      {
+        "input": {
+          "ServiceId": "srv-e4anhexample0004"
+        },
+        "output": {
+          "Status": {
+            "i-abcd1234": "HEALTHY",
+            "i-abcd1235": "UNHEALTHY"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example gets the current health status of one or more instances that are associate with a specified service.",
+        "id": "getinstanceshealthstatus-example-1590115176146",
+        "title": "GetInstancesHealthStatus example"
+      }
+    ],
+    "GetNamespace": [
+      {
+        "input": {
+          "Id": "ns-e4anhexample0004"
+        },
+        "output": {
+          "Namespace": {
+            "Arn": "arn:aws:servicediscovery:us-west-2: 123456789120:namespace/ns-e1tpmexample0001",
+            "CreateDate": "20181118T211712Z",
+            "CreatorRequestId": "example-creator-request-id-0001",
+            "Description": "Example.com AWS Cloud Map HTTP Namespace",
+            "Id": "ns-e1tpmexample0001",
+            "Name": "example-http.com",
+            "Properties": {
+              "DnsProperties": {
+              },
+              "HttpProperties": {
+                "HttpName": "example-http.com"
+              }
+            },
+            "Type": "HTTP"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example gets information about a specified namespace.",
+        "id": "getnamespace-example-1590115383708",
+        "title": "GetNamespace example"
+      }
+    ],
+    "GetOperation": [
+      {
+        "input": {
+          "OperationId": "gv4g5meo7ndmeh4fqskygvk23d2fijwa-k9302yzd"
+        },
+        "output": {
+          "Operation": {
+            "CreateDate": 1587055860.121,
+            "Id": "gv4g5meo7ndmeh4fqskygvk23d2fijwa-k9302yzd",
+            "Status": "SUCCESS",
+            "Targets": {
+              "NAMESPACE": "ns-ylexjili4cdxy3xm"
+            },
+            "Type": "CREATE_NAMESPACE",
+            "UpdateDate": 1587055900.469
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Example: Get operation result",
+        "id": "example-get-operation-result-1587073807124",
+        "title": "Example: Get operation result"
+      }
+    ],
+    "GetService": [
+      {
+        "input": {
+          "Id": "srv-e4anhexample0004"
+        },
+        "output": {
+          "Service": {
+            "Arn": "arn:aws:servicediscovery:us-west-2:123456789120:service/srv-e4anhexample0004",
+            "CreateDate": "20181118T211707Z",
+            "CreatorRequestId": "example-creator-request-id-0004",
+            "Description": "Example.com AWS Cloud Map HTTP Service",
+            "HealthCheckConfig": {
+              "FailureThreshold": 3,
+              "ResourcePath": "/",
+              "Type": "HTTPS"
+            },
+            "Id": "srv-e4anhexample0004",
+            "Name": "example-http-service",
+            "NamespaceId": "ns-e4anhexample0004"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example gets the settings for a specified service.",
+        "id": "getservice-example-1590117234294",
+        "title": "GetService Example"
+      }
+    ],
+    "ListInstances": [
+      {
+        "input": {
+          "ServiceId": "srv-qzpwvt2tfqcegapy"
+        },
+        "output": {
+          "Instances": [
+            {
+              "Attributes": {
+                "AWS_INSTANCE_IPV4": "172.2.1.3",
+                "AWS_INSTANCE_PORT": "808"
+              },
+              "Id": "i-06bdabbae60f65a4e"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Example: List service instances",
+        "id": "example-list-service-instances-1587236237008",
+        "title": "Example: List service instances"
+      }
+    ],
+    "ListNamespaces": [
+      {
+        "input": {
+        },
+        "output": {
+          "Namespaces": [
+            {
+              "Arn": "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-a3ccy2e7e3a7rile",
+              "CreateDate": 1585354387.357,
+              "Id": "ns-a3ccy2e7e3a7rile",
+              "Name": "local",
+              "Properties": {
+                "DnsProperties": {
+                  "HostedZoneId": "Z06752353VBUDTC32S84S"
+                },
+                "HttpProperties": {
+                  "HttpName": "local"
+                }
+              },
+              "Type": "DNS_PRIVATE"
+            },
+            {
+              "Arn": "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-pocfyjtrsmwtvcxx",
+              "CreateDate": 1586468974.698,
+              "Description": "My second namespace",
+              "Id": "ns-pocfyjtrsmwtvcxx",
+              "Name": "My-second-namespace",
+              "Properties": {
+                "DnsProperties": {
+                },
+                "HttpProperties": {
+                  "HttpName": "My-second-namespace"
+                }
+              },
+              "Type": "HTTP"
+            },
+            {
+              "Arn": "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-ylexjili4cdxy3xm",
+              "CreateDate": 1587055896.798,
+              "Id": "ns-ylexjili4cdxy3xm",
+              "Name": "example.com",
+              "Properties": {
+                "DnsProperties": {
+                  "HostedZoneId": "Z09983722P0QME1B3KC8I"
+                },
+                "HttpProperties": {
+                  "HttpName": "example.com"
+                }
+              },
+              "Type": "DNS_PRIVATE"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Example: List namespaces",
+        "id": "example-list-namespaces-1587401553154",
+        "title": "Example: List namespaces"
+      }
+    ],
+    "ListOperations": [
+      {
+        "input": {
+          "Filters": [
+            {
+              "Condition": "IN",
+              "Name": "STATUS",
+              "Values": [
+                "PENDING",
+                "SUCCESS"
+              ]
+            }
+          ]
+        },
+        "output": {
+          "Operations": [
+            {
+              "Id": "76yy8ovhpdz0plmjzbsnqgnrqvpv2qdt-kexample",
+              "Status": "SUCCESS"
+            },
+            {
+              "Id": "prysnyzpji3u2ciy45nke83x2zanl7yk-dexample",
+              "Status": "SUCCESS"
+            },
+            {
+              "Id": "ko4ekftir7kzlbechsh7xvcdgcpk66gh-7example",
+              "Status": "PENDING"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example gets the operations that have a STATUS of either PENDING or SUCCESS.",
+        "id": "listoperations-example-1590117354396",
+        "title": "ListOperations Example"
+      }
+    ],
+    "ListServices": [
+      {
+        "input": {
+        },
+        "output": {
+          "Services": [
+            {
+              "Arn": "arn:aws:servicediscovery:us-west-2:123456789012:service/srv-p5zdwlg5uvvzjita",
+              "CreateDate": 1587081768.334,
+              "DnsConfig": {
+                "DnsRecords": [
+                  {
+                    "TTL": 60,
+                    "Type": "A"
+                  }
+                ],
+                "RoutingPolicy": "MULTIVALUE"
+              },
+              "Id": "srv-p5zdwlg5uvvzjita",
+              "Name": "myservice"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Example: List services",
+        "id": "example-list-services-1587236889840",
+        "title": "Example: List services"
+      }
+    ],
+    "ListTagsForResource": [
+      {
+        "input": {
+          "ResourceARN": "arn:aws:servicediscovery:us-east-1:123456789012:namespace/ns-ylexjili4cdxy3xm"
+        },
+        "output": {
+          "Tags": [
+            {
+              "Key": "Project",
+              "Value": "Zeta"
+            },
+            {
+              "Key": "Department",
+              "Value": "Engineering"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example lists the tags of a resource.",
+        "id": "listtagsforresource-example-1590093928416",
+        "title": "ListTagsForResource example"
+      }
+    ],
+    "RegisterInstance": [
+      {
+        "input": {
+          "Attributes": {
+            "AWS_INSTANCE_IPV4": "172.2.1.3",
+            "AWS_INSTANCE_PORT": "808"
+          },
+          "CreatorRequestId": "7a48a98a-72e6-4849-bfa7-1a458e030d7b",
+          "InstanceId": "myservice-53",
+          "ServiceId": "srv-p5zdwlg5uvvzjita"
+        },
+        "output": {
+          "OperationId": "4yejorelbukcjzpnr6tlmrghsjwpngf4-k95yg2u7"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Example: Register Instance",
+        "id": "example-register-instance-1587236116314",
+        "title": "Example: Register Instance"
+      }
+    ],
+    "TagResource": [
+      {
+        "input": {
+          "ResourceARN": "arn:aws:servicediscovery:us-east-1:123456789012:namespace/ns-ylexjili4cdxy3xm",
+          "Tags": [
+            {
+              "Key": "Department",
+              "Value": "Engineering"
+            },
+            {
+              "Key": "Project",
+              "Value": "Zeta"
+            }
+          ]
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example adds \"Department\" and \"Project\" tags to a resource.",
+        "id": "tagresource-example-1590093532240",
+        "title": "TagResource example"
+      }
+    ],
+    "UntagResource": [
+      {
+        "input": {
+          "ResourceARN": "arn:aws:servicediscovery:us-east-1:123456789012:namespace/ns-ylexjili4cdxy3xm",
+          "TagKeys": [
+            "Project",
+            "Department"
+          ]
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example removes the \"Department\" and \"Project\" tags from a resource.",
+        "id": "untagresource-example-1590094024672",
+        "title": "UntagResource example"
+      }
+    ],
+    "UpdateInstanceCustomHealthStatus": [
+      {
+        "input": {
+          "InstanceId": "i-abcd1234",
+          "ServiceId": "srv-e4anhexample0004",
+          "Status": "HEALTHY"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example submits a request to change the health status of an instance associated with a service with a custom health check to HEALTHY.",
+        "id": "updateinstancecustomhealthstatus-example-1590118408574",
+        "title": "UpdateInstanceCustomHealthStatus Example"
+      }
+    ],
+    "UpdateService": [
+      {
+        "input": {
+          "Id": "srv-e4anhexample0004",
+          "Service": {
+            "DnsConfig": {
+              "DnsRecords": [
+                {
+                  "TTL": 60,
+                  "Type": "A"
+                }
+              ]
+            },
+            "HealthCheckConfig": {
+              "FailureThreshold": 2,
+              "ResourcePath": "/",
+              "Type": "HTTP"
+            }
+          }
+        },
+        "output": {
+          "OperationId": "m35hsdrkxwjffm3xef4bxyy6vc3ewakx-jdn3y5g5"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example submits a request to replace the DnsConfig and HealthCheckConfig settings of a specified service.",
+        "id": "updateservice-example-1590117830880",
+        "title": "UpdateService Example"
+      }
+    ]
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/servicediscovery/2017-03-14/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/servicediscovery/2017-03-14/paginators-1.json
new file mode 100644
index 00000000..f58df70e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/servicediscovery/2017-03-14/paginators-1.json
@@ -0,0 +1,28 @@
+{
+  "pagination": {
+    "ListServices": {
+      "result_key": "Services",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListInstances": {
+      "result_key": "Instances",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListNamespaces": {
+      "result_key": "Namespaces",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListOperations": {
+      "result_key": "Operations",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/servicediscovery/2017-03-14/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/servicediscovery/2017-03-14/service-2.json.gz
new file mode 100644
index 00000000..e4f44ef4
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/servicediscovery/2017-03-14/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ses/2010-12-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ses/2010-12-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..195d7f47
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ses/2010-12-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ses/2010-12-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/ses/2010-12-01/examples-1.json
new file mode 100644
index 00000000..e5690330
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ses/2010-12-01/examples-1.json
@@ -0,0 +1,1021 @@
+{
+  "version": "1.0",
+  "examples": {
+    "CloneReceiptRuleSet": [
+      {
+        "input": {
+          "OriginalRuleSetName": "RuleSetToClone",
+          "RuleSetName": "RuleSetToCreate"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example creates a receipt rule set by cloning an existing one:",
+        "id": "clonereceiptruleset-1469055039770",
+        "title": "CloneReceiptRuleSet"
+      }
+    ],
+    "CreateReceiptFilter": [
+      {
+        "input": {
+          "Filter": {
+            "IpFilter": {
+              "Cidr": "1.2.3.4/24",
+              "Policy": "Allow"
+            },
+            "Name": "MyFilter"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example creates a new IP address filter:",
+        "id": "createreceiptfilter-1469122681253",
+        "title": "CreateReceiptFilter"
+      }
+    ],
+    "CreateReceiptRule": [
+      {
+        "input": {
+          "After": "",
+          "Rule": {
+            "Actions": [
+              {
+                "S3Action": {
+                  "BucketName": "MyBucket",
+                  "ObjectKeyPrefix": "email"
+                }
+              }
+            ],
+            "Enabled": true,
+            "Name": "MyRule",
+            "ScanEnabled": true,
+            "TlsPolicy": "Optional"
+          },
+          "RuleSetName": "MyRuleSet"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example creates a new receipt rule:",
+        "id": "createreceiptrule-1469122946515",
+        "title": "CreateReceiptRule"
+      }
+    ],
+    "CreateReceiptRuleSet": [
+      {
+        "input": {
+          "RuleSetName": "MyRuleSet"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example creates an empty receipt rule set:",
+        "id": "createreceiptruleset-1469058761646",
+        "title": "CreateReceiptRuleSet"
+      }
+    ],
+    "DeleteIdentity": [
+      {
+        "input": {
+          "Identity": "user@example.com"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes an identity from the list of identities that have been submitted for verification with Amazon SES:",
+        "id": "deleteidentity-1469047858906",
+        "title": "DeleteIdentity"
+      }
+    ],
+    "DeleteIdentityPolicy": [
+      {
+        "input": {
+          "Identity": "user@example.com",
+          "PolicyName": "MyPolicy"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes a sending authorization policy for an identity:",
+        "id": "deleteidentitypolicy-1469055282499",
+        "title": "DeleteIdentityPolicy"
+      }
+    ],
+    "DeleteReceiptFilter": [
+      {
+        "input": {
+          "FilterName": "MyFilter"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes an IP address filter:",
+        "id": "deletereceiptfilter-1469055456835",
+        "title": "DeleteReceiptFilter"
+      }
+    ],
+    "DeleteReceiptRule": [
+      {
+        "input": {
+          "RuleName": "MyRule",
+          "RuleSetName": "MyRuleSet"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes a receipt rule:",
+        "id": "deletereceiptrule-1469055563599",
+        "title": "DeleteReceiptRule"
+      }
+    ],
+    "DeleteReceiptRuleSet": [
+      {
+        "input": {
+          "RuleSetName": "MyRuleSet"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes a receipt rule set:",
+        "id": "deletereceiptruleset-1469055713690",
+        "title": "DeleteReceiptRuleSet"
+      }
+    ],
+    "DeleteVerifiedEmailAddress": [
+      {
+        "input": {
+          "EmailAddress": "user@example.com"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes an email address from the list of identities that have been submitted for verification with Amazon SES:",
+        "id": "deleteverifiedemailaddress-1469051086444",
+        "title": "DeleteVerifiedEmailAddress"
+      }
+    ],
+    "DescribeActiveReceiptRuleSet": [
+      {
+        "input": {
+        },
+        "output": {
+          "Metadata": {
+            "CreatedTimestamp": "2016-07-15T16:25:59.607Z",
+            "Name": "default-rule-set"
+          },
+          "Rules": [
+            {
+              "Actions": [
+                {
+                  "S3Action": {
+                    "BucketName": "MyBucket",
+                    "ObjectKeyPrefix": "email"
+                  }
+                }
+              ],
+              "Enabled": true,
+              "Name": "MyRule",
+              "ScanEnabled": true,
+              "TlsPolicy": "Optional"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns the metadata and receipt rules for the receipt rule set that is currently active:",
+        "id": "describeactivereceiptruleset-1469121611502",
+        "title": "DescribeActiveReceiptRuleSet"
+      }
+    ],
+    "DescribeReceiptRule": [
+      {
+        "input": {
+          "RuleName": "MyRule",
+          "RuleSetName": "MyRuleSet"
+        },
+        "output": {
+          "Rule": {
+            "Actions": [
+              {
+                "S3Action": {
+                  "BucketName": "MyBucket",
+                  "ObjectKeyPrefix": "email"
+                }
+              }
+            ],
+            "Enabled": true,
+            "Name": "MyRule",
+            "ScanEnabled": true,
+            "TlsPolicy": "Optional"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns the details of a receipt rule:",
+        "id": "describereceiptrule-1469055813118",
+        "title": "DescribeReceiptRule"
+      }
+    ],
+    "DescribeReceiptRuleSet": [
+      {
+        "input": {
+          "RuleSetName": "MyRuleSet"
+        },
+        "output": {
+          "Metadata": {
+            "CreatedTimestamp": "2016-07-15T16:25:59.607Z",
+            "Name": "MyRuleSet"
+          },
+          "Rules": [
+            {
+              "Actions": [
+                {
+                  "S3Action": {
+                    "BucketName": "MyBucket",
+                    "ObjectKeyPrefix": "email"
+                  }
+                }
+              ],
+              "Enabled": true,
+              "Name": "MyRule",
+              "ScanEnabled": true,
+              "TlsPolicy": "Optional"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns the metadata and receipt rules of a receipt rule set:",
+        "id": "describereceiptruleset-1469121240385",
+        "title": "DescribeReceiptRuleSet"
+      }
+    ],
+    "GetAccountSendingEnabled": [
+      {
+        "output": {
+          "Enabled": true
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns if sending status for an account is enabled. (true / false):",
+        "id": "getaccountsendingenabled-1469047741333",
+        "title": "GetAccountSendingEnabled"
+      }
+    ],
+    "GetIdentityDkimAttributes": [
+      {
+        "input": {
+          "Identities": [
+            "example.com",
+            "user@example.com"
+          ]
+        },
+        "output": {
+          "DkimAttributes": {
+            "example.com": {
+              "DkimEnabled": true,
+              "DkimTokens": [
+                "EXAMPLEjcs5xoyqytjsotsijas7236gr",
+                "EXAMPLEjr76cvoc6mysspnioorxsn6ep",
+                "EXAMPLEkbmkqkhlm2lyz77ppkulerm4k"
+              ],
+              "DkimVerificationStatus": "Success"
+            },
+            "user@example.com": {
+              "DkimEnabled": false,
+              "DkimVerificationStatus": "NotStarted"
+            }
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example retrieves the Amazon SES Easy DKIM attributes for a list of identities:",
+        "id": "getidentitydkimattributes-1469050695628",
+        "title": "GetIdentityDkimAttributes"
+      }
+    ],
+    "GetIdentityMailFromDomainAttributes": [
+      {
+        "input": {
+          "Identities": [
+            "example.com"
+          ]
+        },
+        "output": {
+          "MailFromDomainAttributes": {
+            "example.com": {
+              "BehaviorOnMXFailure": "UseDefaultValue",
+              "MailFromDomain": "bounces.example.com",
+              "MailFromDomainStatus": "Success"
+            }
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns the custom MAIL FROM attributes for an identity:",
+        "id": "getidentitymailfromdomainattributes-1469123114860",
+        "title": "GetIdentityMailFromDomainAttributes"
+      }
+    ],
+    "GetIdentityNotificationAttributes": [
+      {
+        "input": {
+          "Identities": [
+            "example.com"
+          ]
+        },
+        "output": {
+          "NotificationAttributes": {
+            "example.com": {
+              "BounceTopic": "arn:aws:sns:us-east-1:EXAMPLE65304:ExampleTopic",
+              "ComplaintTopic": "arn:aws:sns:us-east-1:EXAMPLE65304:ExampleTopic",
+              "DeliveryTopic": "arn:aws:sns:us-east-1:EXAMPLE65304:ExampleTopic",
+              "ForwardingEnabled": true,
+              "HeadersInBounceNotificationsEnabled": false,
+              "HeadersInComplaintNotificationsEnabled": false,
+              "HeadersInDeliveryNotificationsEnabled": false
+            }
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns the notification attributes for an identity:",
+        "id": "getidentitynotificationattributes-1469123466947",
+        "title": "GetIdentityNotificationAttributes"
+      }
+    ],
+    "GetIdentityPolicies": [
+      {
+        "input": {
+          "Identity": "example.com",
+          "PolicyNames": [
+            "MyPolicy"
+          ]
+        },
+        "output": {
+          "Policies": {
+            "MyPolicy": "{\"Version\":\"2008-10-17\",\"Statement\":[{\"Sid\":\"stmt1469123904194\",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::123456789012:root\"},\"Action\":[\"ses:SendEmail\",\"ses:SendRawEmail\"],\"Resource\":\"arn:aws:ses:us-east-1:EXAMPLE65304:identity/example.com\"}]}"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns a sending authorization policy for an identity:",
+        "id": "getidentitypolicies-1469123949351",
+        "title": "GetIdentityPolicies"
+      }
+    ],
+    "GetIdentityVerificationAttributes": [
+      {
+        "input": {
+          "Identities": [
+            "example.com"
+          ]
+        },
+        "output": {
+          "VerificationAttributes": {
+            "example.com": {
+              "VerificationStatus": "Success",
+              "VerificationToken": "EXAMPLE3VYb9EDI2nTOQRi/Tf6MI/6bD6THIGiP1MVY="
+            }
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns the verification status and the verification token for a domain identity:",
+        "id": "getidentityverificationattributes-1469124205897",
+        "title": "GetIdentityVerificationAttributes"
+      }
+    ],
+    "GetSendQuota": [
+      {
+        "output": {
+          "Max24HourSend": 200,
+          "MaxSendRate": 1,
+          "SentLast24Hours": 1
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns the Amazon SES sending limits for an AWS account:",
+        "id": "getsendquota-1469047324508",
+        "title": "GetSendQuota"
+      }
+    ],
+    "GetSendStatistics": [
+      {
+        "output": {
+          "SendDataPoints": [
+            {
+              "Bounces": 0,
+              "Complaints": 0,
+              "DeliveryAttempts": 5,
+              "Rejects": 0,
+              "Timestamp": "2016-07-13T22:43:00Z"
+            },
+            {
+              "Bounces": 0,
+              "Complaints": 0,
+              "DeliveryAttempts": 3,
+              "Rejects": 0,
+              "Timestamp": "2016-07-13T23:13:00Z"
+            },
+            {
+              "Bounces": 0,
+              "Complaints": 0,
+              "DeliveryAttempts": 1,
+              "Rejects": 0,
+              "Timestamp": "2016-07-13T21:13:00Z"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns Amazon SES sending statistics:",
+        "id": "getsendstatistics-1469047741329",
+        "title": "GetSendStatistics"
+      }
+    ],
+    "ListIdentities": [
+      {
+        "input": {
+          "IdentityType": "EmailAddress",
+          "MaxItems": 123,
+          "NextToken": ""
+        },
+        "output": {
+          "Identities": [
+            "user@example.com"
+          ],
+          "NextToken": ""
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example lists the email address identities that have been submitted for verification with Amazon SES:",
+        "id": "listidentities-1469048638493",
+        "title": "ListIdentities"
+      }
+    ],
+    "ListIdentityPolicies": [
+      {
+        "input": {
+          "Identity": "example.com"
+        },
+        "output": {
+          "PolicyNames": [
+            "MyPolicy"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns a list of sending authorization policies that are attached to an identity:",
+        "id": "listidentitypolicies-1469124417674",
+        "title": "ListIdentityPolicies"
+      }
+    ],
+    "ListReceiptFilters": [
+      {
+        "output": {
+          "Filters": [
+            {
+              "IpFilter": {
+                "Cidr": "1.2.3.4/24",
+                "Policy": "Block"
+              },
+              "Name": "MyFilter"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example lists the IP address filters that are associated with an AWS account:",
+        "id": "listreceiptfilters-1469120786789",
+        "title": "ListReceiptFilters"
+      }
+    ],
+    "ListReceiptRuleSets": [
+      {
+        "input": {
+          "NextToken": ""
+        },
+        "output": {
+          "NextToken": "",
+          "RuleSets": [
+            {
+              "CreatedTimestamp": "2016-07-15T16:25:59.607Z",
+              "Name": "MyRuleSet"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example lists the receipt rule sets that exist under an AWS account:",
+        "id": "listreceiptrulesets-1469121037235",
+        "title": "ListReceiptRuleSets"
+      }
+    ],
+    "ListVerifiedEmailAddresses": [
+      {
+        "output": {
+          "VerifiedEmailAddresses": [
+            "user1@example.com",
+            "user2@example.com"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example lists all email addresses that have been submitted for verification with Amazon SES:",
+        "id": "listverifiedemailaddresses-1469051402570",
+        "title": "ListVerifiedEmailAddresses"
+      }
+    ],
+    "PutIdentityPolicy": [
+      {
+        "input": {
+          "Identity": "example.com",
+          "Policy": "{\"Version\":\"2008-10-17\",\"Statement\":[{\"Sid\":\"stmt1469123904194\",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::123456789012:root\"},\"Action\":[\"ses:SendEmail\",\"ses:SendRawEmail\"],\"Resource\":\"arn:aws:ses:us-east-1:EXAMPLE65304:identity/example.com\"}]}",
+          "PolicyName": "MyPolicy"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example adds a sending authorization policy to an identity:",
+        "id": "putidentitypolicy-1469124560016",
+        "title": "PutIdentityPolicy"
+      }
+    ],
+    "ReorderReceiptRuleSet": [
+      {
+        "input": {
+          "RuleNames": [
+            "MyRule",
+            "MyOtherRule"
+          ],
+          "RuleSetName": "MyRuleSet"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example reorders the receipt rules within a receipt rule set:",
+        "id": "reorderreceiptruleset-1469058156806",
+        "title": "ReorderReceiptRuleSet"
+      }
+    ],
+    "SendEmail": [
+      {
+        "input": {
+          "Destination": {
+            "BccAddresses": [
+
+            ],
+            "CcAddresses": [
+              "recipient3@example.com"
+            ],
+            "ToAddresses": [
+              "recipient1@example.com",
+              "recipient2@example.com"
+            ]
+          },
+          "Message": {
+            "Body": {
+              "Html": {
+                "Charset": "UTF-8",
+                "Data": "This message body contains HTML formatting. It can, for example, contain links like this one: <a class=\"ulink\" href=\"http://docs.aws.amazon.com/ses/latest/DeveloperGuide\" target=\"_blank\">Amazon SES Developer Guide</a>."
+              },
+              "Text": {
+                "Charset": "UTF-8",
+                "Data": "This is the message body in text format."
+              }
+            },
+            "Subject": {
+              "Charset": "UTF-8",
+              "Data": "Test email"
+            }
+          },
+          "ReplyToAddresses": [
+
+          ],
+          "ReturnPath": "",
+          "ReturnPathArn": "",
+          "Source": "sender@example.com",
+          "SourceArn": ""
+        },
+        "output": {
+          "MessageId": "EXAMPLE78603177f-7a5433e7-8edb-42ae-af10-f0181f34d6ee-000000"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example sends a formatted email:",
+        "id": "sendemail-1469049656296",
+        "title": "SendEmail"
+      }
+    ],
+    "SendRawEmail": [
+      {
+        "input": {
+          "Destinations": [
+
+          ],
+          "FromArn": "",
+          "RawMessage": {
+            "Data": "From: sender@example.com\\nTo: recipient@example.com\\nSubject: Test email (contains an attachment)\\nMIME-Version: 1.0\\nContent-type: Multipart/Mixed; boundary=\"NextPart\"\\n\\n--NextPart\\nContent-Type: text/plain\\n\\nThis is the message body.\\n\\n--NextPart\\nContent-Type: text/plain;\\nContent-Disposition: attachment; filename=\"attachment.txt\"\\n\\nThis is the text in the attachment.\\n\\n--NextPart--"
+          },
+          "ReturnPathArn": "",
+          "Source": "",
+          "SourceArn": ""
+        },
+        "output": {
+          "MessageId": "EXAMPLEf3f73d99b-c63fb06f-d263-41f8-a0fb-d0dc67d56c07-000000"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example sends an email with an attachment:",
+        "id": "sendrawemail-1469118548649",
+        "title": "SendRawEmail"
+      }
+    ],
+    "SetActiveReceiptRuleSet": [
+      {
+        "input": {
+          "RuleSetName": "RuleSetToActivate"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example sets the active receipt rule set:",
+        "id": "setactivereceiptruleset-1469058391329",
+        "title": "SetActiveReceiptRuleSet"
+      }
+    ],
+    "SetIdentityDkimEnabled": [
+      {
+        "input": {
+          "DkimEnabled": true,
+          "Identity": "user@example.com"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example configures Amazon SES to Easy DKIM-sign the email sent from an identity:",
+        "id": "setidentitydkimenabled-1469057485202",
+        "title": "SetIdentityDkimEnabled"
+      }
+    ],
+    "SetIdentityFeedbackForwardingEnabled": [
+      {
+        "input": {
+          "ForwardingEnabled": true,
+          "Identity": "user@example.com"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example configures Amazon SES to forward an identity's bounces and complaints via email:",
+        "id": "setidentityfeedbackforwardingenabled-1469056811329",
+        "title": "SetIdentityFeedbackForwardingEnabled"
+      }
+    ],
+    "SetIdentityHeadersInNotificationsEnabled": [
+      {
+        "input": {
+          "Enabled": true,
+          "Identity": "user@example.com",
+          "NotificationType": "Bounce"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example configures Amazon SES to include the original email headers in the Amazon SNS bounce notifications for an identity:",
+        "id": "setidentityheadersinnotificationsenabled-1469057295001",
+        "title": "SetIdentityHeadersInNotificationsEnabled"
+      }
+    ],
+    "SetIdentityMailFromDomain": [
+      {
+        "input": {
+          "BehaviorOnMXFailure": "UseDefaultValue",
+          "Identity": "user@example.com",
+          "MailFromDomain": "bounces.example.com"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example configures Amazon SES to use a custom MAIL FROM domain for an identity:",
+        "id": "setidentitymailfromdomain-1469057693908",
+        "title": "SetIdentityMailFromDomain"
+      }
+    ],
+    "SetIdentityNotificationTopic": [
+      {
+        "input": {
+          "Identity": "user@example.com",
+          "NotificationType": "Bounce",
+          "SnsTopic": "arn:aws:sns:us-west-2:111122223333:MyTopic"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example sets the Amazon SNS topic to which Amazon SES will publish bounce, complaint, and/or delivery notifications for emails sent with the specified identity as the Source:",
+        "id": "setidentitynotificationtopic-1469057854966",
+        "title": "SetIdentityNotificationTopic"
+      }
+    ],
+    "SetReceiptRulePosition": [
+      {
+        "input": {
+          "After": "PutRuleAfterThisRule",
+          "RuleName": "RuleToReposition",
+          "RuleSetName": "MyRuleSet"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example sets the position of a receipt rule in a receipt rule set:",
+        "id": "setreceiptruleposition-1469058530550",
+        "title": "SetReceiptRulePosition"
+      }
+    ],
+    "UpdateAccountSendingEnabled": [
+      {
+        "input": {
+          "Enabled": true
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example updated the sending status for this account.",
+        "id": "updateaccountsendingenabled-1469047741333",
+        "title": "UpdateAccountSendingEnabled"
+      }
+    ],
+    "UpdateConfigurationSetReputationMetricsEnabled": [
+      {
+        "input": {
+          "ConfigurationSetName": "foo",
+          "Enabled": true
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Set the reputationMetricsEnabled flag for a specific configuration set.",
+        "id": "updateconfigurationsetreputationmetricsenabled-2362747741333",
+        "title": "UpdateConfigurationSetReputationMetricsEnabled"
+      }
+    ],
+    "UpdateConfigurationSetSendingEnabled": [
+      {
+        "input": {
+          "ConfigurationSetName": "foo",
+          "Enabled": true
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Set the sending enabled flag for a specific configuration set.",
+        "id": "updateconfigurationsetsendingenabled-2362747741333",
+        "title": "UpdateConfigurationSetReputationMetricsEnabled"
+      }
+    ],
+    "UpdateReceiptRule": [
+      {
+        "input": {
+          "Rule": {
+            "Actions": [
+              {
+                "S3Action": {
+                  "BucketName": "MyBucket",
+                  "ObjectKeyPrefix": "email"
+                }
+              }
+            ],
+            "Enabled": true,
+            "Name": "MyRule",
+            "ScanEnabled": true,
+            "TlsPolicy": "Optional"
+          },
+          "RuleSetName": "MyRuleSet"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example updates a receipt rule to use an Amazon S3 action:",
+        "id": "updatereceiptrule-1469051756940",
+        "title": "UpdateReceiptRule"
+      }
+    ],
+    "VerifyDomainDkim": [
+      {
+        "input": {
+          "Domain": "example.com"
+        },
+        "output": {
+          "DkimTokens": [
+            "EXAMPLEq76owjnks3lnluwg65scbemvw",
+            "EXAMPLEi3dnsj67hstzaj673klariwx2",
+            "EXAMPLEwfbtcukvimehexktmdtaz6naj"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example generates DKIM tokens for a domain that has been verified with Amazon SES:",
+        "id": "verifydomaindkim-1469049503083",
+        "title": "VerifyDomainDkim"
+      }
+    ],
+    "VerifyDomainIdentity": [
+      {
+        "input": {
+          "Domain": "example.com"
+        },
+        "output": {
+          "VerificationToken": "eoEmxw+YaYhb3h3iVJHuXMJXqeu1q1/wwmvjuEXAMPLE"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example starts the domain verification process with Amazon SES:",
+        "id": "verifydomainidentity-1469049165936",
+        "title": "VerifyDomainIdentity"
+      }
+    ],
+    "VerifyEmailAddress": [
+      {
+        "input": {
+          "EmailAddress": "user@example.com"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example starts the email address verification process with Amazon SES:",
+        "id": "verifyemailaddress-1469048849187",
+        "title": "VerifyEmailAddress"
+      }
+    ],
+    "VerifyEmailIdentity": [
+      {
+        "input": {
+          "EmailAddress": "user@example.com"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example starts the email address verification process with Amazon SES:",
+        "id": "verifyemailidentity-1469049068623",
+        "title": "VerifyEmailIdentity"
+      }
+    ]
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ses/2010-12-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/ses/2010-12-01/paginators-1.json
new file mode 100644
index 00000000..1eb0054f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ses/2010-12-01/paginators-1.json
@@ -0,0 +1,33 @@
+{
+  "pagination": {
+    "ListIdentities": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxItems",
+      "result_key": "Identities"
+    },
+    "ListCustomVerificationEmailTemplates": {
+      "result_key": "CustomVerificationEmailTemplates",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListConfigurationSets": {
+      "input_token": "NextToken",
+      "limit_key": "MaxItems",
+      "output_token": "NextToken",
+      "result_key": "ConfigurationSets"
+    },
+    "ListReceiptRuleSets": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "RuleSets"
+    },
+    "ListTemplates": {
+      "input_token": "NextToken",
+      "limit_key": "MaxItems",
+      "output_token": "NextToken",
+      "result_key": "TemplatesMetadata"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ses/2010-12-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ses/2010-12-01/service-2.json.gz
new file mode 100644
index 00000000..de0d8d4e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ses/2010-12-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ses/2010-12-01/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/ses/2010-12-01/waiters-2.json
new file mode 100644
index 00000000..b585d309
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ses/2010-12-01/waiters-2.json
@@ -0,0 +1,18 @@
+{
+  "version": 2,
+  "waiters": {
+    "IdentityExists": {
+      "delay": 3,
+      "operation": "GetIdentityVerificationAttributes",
+      "maxAttempts": 20,
+      "acceptors": [
+        {
+          "expected": "Success",
+          "matcher": "pathAll",
+          "state": "success",
+          "argument": "VerificationAttributes.*.VerificationStatus"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/sesv2/2019-09-27/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/sesv2/2019-09-27/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..e78cfc4c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sesv2/2019-09-27/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/sesv2/2019-09-27/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/sesv2/2019-09-27/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sesv2/2019-09-27/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/sesv2/2019-09-27/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/sesv2/2019-09-27/paginators-1.json
new file mode 100644
index 00000000..66721166
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sesv2/2019-09-27/paginators-1.json
@@ -0,0 +1,10 @@
+{
+  "pagination": {
+    "ListMultiRegionEndpoints": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "PageSize",
+      "result_key": "MultiRegionEndpoints"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/sesv2/2019-09-27/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/sesv2/2019-09-27/service-2.json.gz
new file mode 100644
index 00000000..74d5401e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sesv2/2019-09-27/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/shield/2016-06-02/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/shield/2016-06-02/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..90eb2f18
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/shield/2016-06-02/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/shield/2016-06-02/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/shield/2016-06-02/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/shield/2016-06-02/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/shield/2016-06-02/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/shield/2016-06-02/paginators-1.json
new file mode 100644
index 00000000..c5ded642
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/shield/2016-06-02/paginators-1.json
@@ -0,0 +1,16 @@
+{
+  "pagination": {
+    "ListProtections": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Protections"
+    },
+    "ListAttacks": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "AttackSummaries"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/shield/2016-06-02/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/shield/2016-06-02/service-2.json.gz
new file mode 100644
index 00000000..3032b529
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/shield/2016-06-02/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/signer/2017-08-25/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/signer/2017-08-25/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..c98c5d46
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/signer/2017-08-25/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/signer/2017-08-25/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/signer/2017-08-25/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/signer/2017-08-25/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/signer/2017-08-25/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/signer/2017-08-25/paginators-1.json
new file mode 100644
index 00000000..1e049e7d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/signer/2017-08-25/paginators-1.json
@@ -0,0 +1,22 @@
+{
+  "pagination": {
+    "ListSigningJobs": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "jobs"
+    },
+    "ListSigningPlatforms": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "platforms"
+    },
+    "ListSigningProfiles": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "profiles"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/signer/2017-08-25/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/signer/2017-08-25/service-2.json.gz
new file mode 100644
index 00000000..a23af544
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/signer/2017-08-25/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/signer/2017-08-25/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/signer/2017-08-25/waiters-2.json
new file mode 100644
index 00000000..a0890ade
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/signer/2017-08-25/waiters-2.json
@@ -0,0 +1,29 @@
+{
+  "version": 2,
+  "waiters": {
+    "SuccessfulSigningJob": {
+      "delay": 20,
+      "operation": "DescribeSigningJob",
+      "maxAttempts": 25,
+      "acceptors": [
+        {
+          "expected": "Succeeded",
+          "matcher": "path",
+          "state": "success",
+          "argument": "status"
+        },
+        {
+          "expected": "Failed",
+          "matcher": "path",
+          "state": "failure",
+          "argument": "status"
+        },
+        {
+          "expected": "ResourceNotFoundException",
+          "matcher": "error",
+          "state": "failure"
+        }
+      ]
+    }
+  }
+}
\ No newline at end of file
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/simspaceweaver/2022-10-28/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/simspaceweaver/2022-10-28/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..16a7b2b2
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/simspaceweaver/2022-10-28/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/simspaceweaver/2022-10-28/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/simspaceweaver/2022-10-28/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/simspaceweaver/2022-10-28/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/simspaceweaver/2022-10-28/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/simspaceweaver/2022-10-28/service-2.json.gz
new file mode 100644
index 00000000..cb429206
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/simspaceweaver/2022-10-28/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/sms-voice/2018-09-05/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/sms-voice/2018-09-05/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..27c14291
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sms-voice/2018-09-05/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/sms-voice/2018-09-05/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/sms-voice/2018-09-05/service-2.json.gz
new file mode 100644
index 00000000..b686ea3b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sms-voice/2018-09-05/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/sms/2016-10-24/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/sms/2016-10-24/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..b830868c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sms/2016-10-24/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/sms/2016-10-24/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/sms/2016-10-24/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sms/2016-10-24/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/sms/2016-10-24/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/sms/2016-10-24/paginators-1.json
new file mode 100644
index 00000000..52a8d570
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sms/2016-10-24/paginators-1.json
@@ -0,0 +1,34 @@
+{
+  "pagination": {
+    "GetReplicationJobs": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "replicationJobList"
+    },
+    "GetReplicationRuns": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "replicationRunList"
+    },
+    "GetConnectors": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "connectorList"
+    },
+    "GetServers": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "serverList"
+    },
+    "ListApps": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "apps"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/sms/2016-10-24/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/sms/2016-10-24/service-2.json.gz
new file mode 100644
index 00000000..ee4f525d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sms/2016-10-24/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/snow-device-management/2021-08-04/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/snow-device-management/2021-08-04/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..cd024872
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/snow-device-management/2021-08-04/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/snow-device-management/2021-08-04/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/snow-device-management/2021-08-04/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/snow-device-management/2021-08-04/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/snow-device-management/2021-08-04/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/snow-device-management/2021-08-04/paginators-1.json
new file mode 100644
index 00000000..8b112099
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/snow-device-management/2021-08-04/paginators-1.json
@@ -0,0 +1,28 @@
+{
+  "pagination": {
+    "ListDeviceResources": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "resources"
+    },
+    "ListDevices": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "devices"
+    },
+    "ListExecutions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "executions"
+    },
+    "ListTasks": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "tasks"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/snow-device-management/2021-08-04/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/snow-device-management/2021-08-04/service-2.json.gz
new file mode 100644
index 00000000..88eb216b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/snow-device-management/2021-08-04/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/snowball/2016-06-30/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/snowball/2016-06-30/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..e8149b1a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/snowball/2016-06-30/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/snowball/2016-06-30/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/snowball/2016-06-30/examples-1.json
new file mode 100644
index 00000000..2b13f7b4
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/snowball/2016-06-30/examples-1.json
@@ -0,0 +1,442 @@
+{
+  "version": "1.0",
+  "examples": {
+    "CancelCluster": [
+      {
+        "input": {
+          "ClusterId": "CID123e4567-e89b-12d3-a456-426655440000"
+        },
+        "comments": {
+        },
+        "description": "This operation cancels a cluster job. You can only cancel a cluster job while it's in the AwaitingQuorum status.",
+        "id": "to-cancel-a-cluster-job-1482533760554",
+        "title": "To cancel a cluster job"
+      }
+    ],
+    "CancelJob": [
+      {
+        "input": {
+          "JobId": "JID123e4567-e89b-12d3-a456-426655440000"
+        },
+        "comments": {
+        },
+        "description": "This operation cancels a job. You can only cancel a job before its JobState value changes to PreparingAppliance.",
+        "id": "to-cancel-a-job-for-a-snowball-device-1482534699477",
+        "title": "To cancel a job for a Snowball device"
+      }
+    ],
+    "CreateAddress": [
+      {
+        "input": {
+          "Address": {
+            "City": "Seattle",
+            "Company": "My Company's Name",
+            "Country": "USA",
+            "Name": "My Name",
+            "PhoneNumber": "425-555-5555",
+            "PostalCode": "98101",
+            "StateOrProvince": "WA",
+            "Street1": "123 Main Street"
+          }
+        },
+        "output": {
+          "AddressId": "ADID1234ab12-3eec-4eb3-9be6-9374c10eb51b"
+        },
+        "comments": {
+        },
+        "description": "This operation creates an address for a job. Addresses are validated at the time of creation. The address you provide must be located within the serviceable area of your region. If the address is invalid or unsupported, then an exception is thrown.",
+        "id": "to-create-an-address-for-a-job-1482535416294",
+        "title": "To create an address for a job"
+      }
+    ],
+    "CreateCluster": [
+      {
+        "input": {
+          "AddressId": "ADID1234ab12-3eec-4eb3-9be6-9374c10eb51b",
+          "Description": "MyCluster",
+          "JobType": "LOCAL_USE",
+          "KmsKeyARN": "arn:aws:kms:us-east-1:123456789012:key/abcd1234-12ab-34cd-56ef-123456123456",
+          "Notification": {
+            "JobStatesToNotify": [
+
+            ],
+            "NotifyAll": false
+          },
+          "Resources": {
+            "S3Resources": [
+              {
+                "BucketArn": "arn:aws:s3:::MyBucket",
+                "KeyRange": {
+                }
+              }
+            ]
+          },
+          "RoleARN": "arn:aws:iam::123456789012:role/snowball-import-S3-role",
+          "ShippingOption": "SECOND_DAY",
+          "SnowballType": "EDGE"
+        },
+        "output": {
+          "ClusterId": "CID123e4567-e89b-12d3-a456-426655440000"
+        },
+        "comments": {
+        },
+        "description": "Creates an empty cluster. Each cluster supports five nodes. You use the CreateJob action separately to create the jobs for each of these nodes. The cluster does not ship until these five node jobs have been created.",
+        "id": "to-create-a-cluster-1482864724077",
+        "title": "To create a cluster"
+      }
+    ],
+    "CreateJob": [
+      {
+        "input": {
+          "AddressId": "ADID1234ab12-3eec-4eb3-9be6-9374c10eb51b",
+          "Description": "My Job",
+          "JobType": "IMPORT",
+          "KmsKeyARN": "arn:aws:kms:us-east-1:123456789012:key/abcd1234-12ab-34cd-56ef-123456123456",
+          "Notification": {
+            "JobStatesToNotify": [
+
+            ],
+            "NotifyAll": false
+          },
+          "Resources": {
+            "S3Resources": [
+              {
+                "BucketArn": "arn:aws:s3:::MyBucket",
+                "KeyRange": {
+                }
+              }
+            ]
+          },
+          "RoleARN": "arn:aws:iam::123456789012:role/snowball-import-S3-role",
+          "ShippingOption": "SECOND_DAY",
+          "SnowballCapacityPreference": "T80",
+          "SnowballType": "STANDARD"
+        },
+        "output": {
+          "JobId": "JID123e4567-e89b-12d3-a456-426655440000"
+        },
+        "comments": {
+        },
+        "description": "Creates a job to import or export data between Amazon S3 and your on-premises data center. Your AWS account must have the right trust policies and permissions in place to create a job for Snowball. If you're creating a job for a node in a cluster, you only need to provide the clusterId value; the other job attributes are inherited from the cluster.",
+        "id": "to-create-a-job-1482864834886",
+        "title": "To create a job"
+      }
+    ],
+    "DescribeAddress": [
+      {
+        "input": {
+          "AddressId": "ADID1234ab12-3eec-4eb3-9be6-9374c10eb51b"
+        },
+        "output": {
+          "Address": {
+            "AddressId": "ADID5643ec50-3eec-4eb3-9be6-9374c10eb51b",
+            "City": "Seattle",
+            "Company": "My Company",
+            "Country": "US",
+            "Name": "My Name",
+            "PhoneNumber": "425-555-5555",
+            "PostalCode": "98101",
+            "StateOrProvince": "WA",
+            "Street1": "123 Main Street"
+          }
+        },
+        "comments": {
+        },
+        "description": "This operation describes an address for a job.",
+        "id": "to-describe-an-address-for-a-job-1482538608745",
+        "title": "To describe an address for a job"
+      }
+    ],
+    "DescribeAddresses": [
+      {
+        "input": {
+        },
+        "output": {
+          "Addresses": [
+            {
+              "AddressId": "ADID1234ab12-3eec-4eb3-9be6-9374c10eb51b",
+              "City": "Seattle",
+              "Company": "My Company",
+              "Country": "US",
+              "Name": "My Name",
+              "PhoneNumber": "425-555-5555",
+              "PostalCode": "98101",
+              "StateOrProvince": "WA",
+              "Street1": "123 Main Street"
+            }
+          ]
+        },
+        "comments": {
+        },
+        "description": "This operation describes all the addresses that you've created for AWS Snowball. Calling this API in one of the US regions will return addresses from the list of all addresses associated with this account in all US regions.",
+        "id": "to-describe-all-the-addresses-youve-created-for-aws-snowball-1482538936603",
+        "title": "To describe all the addresses you've created for AWS Snowball"
+      }
+    ],
+    "DescribeCluster": [
+      {
+        "input": {
+          "ClusterId": "CID123e4567-e89b-12d3-a456-426655440000"
+        },
+        "output": {
+          "ClusterMetadata": {
+            "AddressId": "ADID1234ab12-3eec-4eb3-9be6-9374c10eb51b",
+            "ClusterId": "CID123e4567-e89b-12d3-a456-426655440000",
+            "ClusterState": "Pending",
+            "CreationDate": "1480475517.0",
+            "Description": "MyCluster",
+            "JobType": "LOCAL_USE",
+            "KmsKeyARN": "arn:aws:kms:us-east-1:123456789012:key/abcd1234-12ab-34cd-56ef-123456123456",
+            "Notification": {
+              "JobStatesToNotify": [
+
+              ],
+              "NotifyAll": false
+            },
+            "Resources": {
+              "S3Resources": [
+                {
+                  "BucketArn": "arn:aws:s3:::MyBucket",
+                  "KeyRange": {
+                  }
+                }
+              ]
+            },
+            "RoleARN": "arn:aws:iam::123456789012:role/snowball-import-S3-role",
+            "ShippingOption": "SECOND_DAY"
+          }
+        },
+        "comments": {
+        },
+        "description": "Returns information about a specific cluster including shipping information, cluster status, and other important metadata.",
+        "id": "to-describe-a-cluster-1482864218396",
+        "title": "To describe a cluster"
+      }
+    ],
+    "DescribeJob": [
+      {
+        "input": {
+          "JobId": "JID123e4567-e89b-12d3-a456-426655440000"
+        },
+        "output": {
+          "JobMetadata": {
+            "AddressId": "ADID1234ab12-3eec-4eb3-9be6-9374c10eb51b",
+            "CreationDate": "1475626164",
+            "Description": "My Job",
+            "JobId": "JID123e4567-e89b-12d3-a456-426655440000",
+            "JobState": "New",
+            "JobType": "IMPORT",
+            "KmsKeyARN": "arn:aws:kms:us-east-1:123456789012:key/abcd1234-12ab-34cd-56ef-123456123456",
+            "Notification": {
+              "JobStatesToNotify": [
+
+              ],
+              "NotifyAll": false
+            },
+            "Resources": {
+              "S3Resources": [
+                {
+                  "BucketArn": "arn:aws:s3:::MyBucket",
+                  "KeyRange": {
+                  }
+                }
+              ]
+            },
+            "RoleARN": "arn:aws:iam::123456789012:role/snowball-import-S3-role",
+            "ShippingDetails": {
+              "ShippingOption": "SECOND_DAY"
+            },
+            "SnowballCapacityPreference": "T80",
+            "SnowballType": "STANDARD"
+          }
+        },
+        "comments": {
+        },
+        "description": "This operation describes a job you've created for AWS Snowball.",
+        "id": "to-describe-a-job-youve-created-for-aws-snowball-1482539500180",
+        "title": "To describe a job you've created for AWS Snowball"
+      }
+    ],
+    "GetJobManifest": [
+      {
+        "input": {
+          "JobId": "JID123e4567-e89b-12d3-a456-426655440000"
+        },
+        "output": {
+          "ManifestURI": "https://awsie-frosty-manifests-prod.s3.amazonaws.com/JID123e4567-e89b-12d3-a456-426655440000_manifest.bin?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20161224T005115Z&X-Amz-SignedHeaders=..."
+        },
+        "comments": {
+        },
+        "description": "Returns a link to an Amazon S3 presigned URL for the manifest file associated with the specified JobId value. You can access the manifest file for up to 60 minutes after this request has been made. To access the manifest file after 60 minutes have passed, you'll have to make another call to the GetJobManifest action.\n\nThe manifest is an encrypted file that you can download after your job enters the WithCustomer status. The manifest is decrypted by using the UnlockCode code value, when you pass both values to the Snowball through the Snowball client when the client is started for the first time.\n\nAs a best practice, we recommend that you don't save a copy of an UnlockCode value in the same location as the manifest file for that job. Saving these separately helps prevent unauthorized parties from gaining access to the Snowball associated with that job.\n\nThe credentials of a given job, including its manifest file and unlock code, expire 90 days after the job is created.",
+        "id": "to-get-the-manifest-for-a-job-youve-created-for-aws-snowball-1482540389246",
+        "title": "To get the manifest for a job you've created for AWS Snowball"
+      }
+    ],
+    "GetJobUnlockCode": [
+      {
+        "input": {
+          "JobId": "JID123e4567-e89b-12d3-a456-426655440000"
+        },
+        "output": {
+          "UnlockCode": "12345-abcde-56789-fghij-01234"
+        },
+        "comments": {
+        },
+        "description": "Returns the UnlockCode code value for the specified job. A particular UnlockCode value can be accessed for up to 90 days after the associated job has been created.\n\nThe UnlockCode value is a 29-character code with 25 alphanumeric characters and 4 hyphens. This code is used to decrypt the manifest file when it is passed along with the manifest to the Snowball through the Snowball client when the client is started for the first time.\n\nAs a best practice, we recommend that you don't save a copy of the UnlockCode in the same location as the manifest file for that job. Saving these separately helps prevent unauthorized parties from gaining access to the Snowball associated with that job.",
+        "id": "to-get-the-unlock-code-for-a-job-youve-created-for-aws-snowball-1482541987286",
+        "title": "To get the unlock code for a job you've created for AWS Snowball"
+      }
+    ],
+    "GetSnowballUsage": [
+      {
+        "input": {
+        },
+        "output": {
+          "SnowballLimit": 1,
+          "SnowballsInUse": 0
+        },
+        "comments": {
+        },
+        "description": "Returns information about the Snowball service limit for your account, and also the number of Snowballs your account has in use.\n\nThe default service limit for the number of Snowballs that you can have at one time is 1. If you want to increase your service limit, contact AWS Support.",
+        "id": "to-see-your-snowball-service-limit-and-the-number-of-snowballs-you-have-in-use-1482863394588",
+        "title": "To see your Snowball service limit and the number of Snowballs you have in use"
+      }
+    ],
+    "ListClusterJobs": [
+      {
+        "input": {
+          "ClusterId": "CID123e4567-e89b-12d3-a456-426655440000"
+        },
+        "output": {
+          "JobListEntries": [
+            {
+              "CreationDate": "1480475524.0",
+              "Description": "MyClustrer-node-001",
+              "IsMaster": false,
+              "JobId": "JID123e4567-e89b-12d3-a456-426655440000",
+              "JobState": "New",
+              "JobType": "LOCAL_USE",
+              "SnowballType": "EDGE"
+            },
+            {
+              "CreationDate": "1480475525.0",
+              "Description": "MyClustrer-node-002",
+              "IsMaster": false,
+              "JobId": "JID123e4567-e89b-12d3-a456-426655440001",
+              "JobState": "New",
+              "JobType": "LOCAL_USE",
+              "SnowballType": "EDGE"
+            },
+            {
+              "CreationDate": "1480475525.0",
+              "Description": "MyClustrer-node-003",
+              "IsMaster": false,
+              "JobId": "JID123e4567-e89b-12d3-a456-426655440002",
+              "JobState": "New",
+              "JobType": "LOCAL_USE",
+              "SnowballType": "EDGE"
+            },
+            {
+              "CreationDate": "1480475525.0",
+              "Description": "MyClustrer-node-004",
+              "IsMaster": false,
+              "JobId": "JID123e4567-e89b-12d3-a456-426655440003",
+              "JobState": "New",
+              "JobType": "LOCAL_USE",
+              "SnowballType": "EDGE"
+            },
+            {
+              "CreationDate": "1480475525.0",
+              "Description": "MyClustrer-node-005",
+              "IsMaster": false,
+              "JobId": "JID123e4567-e89b-12d3-a456-426655440004",
+              "JobState": "New",
+              "JobType": "LOCAL_USE",
+              "SnowballType": "EDGE"
+            }
+          ]
+        },
+        "comments": {
+        },
+        "description": "Returns an array of JobListEntry objects of the specified length. Each JobListEntry object is for a job in the specified cluster and contains a job's state, a job's ID, and other information.",
+        "id": "to-get-a-list-of-jobs-in-a-cluster-that-youve-created-for-aws-snowball-1482863105773",
+        "title": "To get a list of jobs in a cluster that you've created for AWS Snowball"
+      }
+    ],
+    "ListClusters": [
+      {
+        "input": {
+        },
+        "output": {
+          "ClusterListEntries": [
+            {
+              "ClusterId": "CID123e4567-e89b-12d3-a456-426655440000",
+              "ClusterState": "Pending",
+              "CreationDate": "1480475517.0",
+              "Description": "MyCluster"
+            }
+          ]
+        },
+        "comments": {
+        },
+        "description": "Returns an array of ClusterListEntry objects of the specified length. Each ClusterListEntry object contains a cluster's state, a cluster's ID, and other important status information.",
+        "id": "to-get-a-list-of-clusters-that-youve-created-for-aws-snowball-1482862223003",
+        "title": "To get a list of clusters that you've created for AWS Snowball"
+      }
+    ],
+    "ListJobs": [
+      {
+        "input": {
+        },
+        "output": {
+          "JobListEntries": [
+            {
+              "CreationDate": "1460678186.0",
+              "Description": "MyJob",
+              "IsMaster": false,
+              "JobId": "JID123e4567-e89b-12d3-a456-426655440000",
+              "JobState": "New",
+              "JobType": "IMPORT",
+              "SnowballType": "STANDARD"
+            }
+          ]
+        },
+        "comments": {
+        },
+        "description": "Returns an array of JobListEntry objects of the specified length. Each JobListEntry object contains a job's state, a job's ID, and a value that indicates whether the job is a job part, in the case of export jobs. Calling this API action in one of the US regions will return jobs from the list of all jobs associated with this account in all US regions.",
+        "id": "to-get-a-list-of-jobs-that-youve-created-for-aws-snowball-1482542167627",
+        "title": "To get a list of jobs that you've created for AWS Snowball"
+      }
+    ],
+    "UpdateCluster": [
+      {
+        "input": {
+          "AddressId": "ADID1234ab12-3eec-4eb3-9be6-9374c10eb51b",
+          "ClusterId": "CID123e4567-e89b-12d3-a456-426655440000",
+          "Description": "updated-cluster-name"
+        },
+        "comments": {
+        },
+        "description": "This action allows you to update certain parameters for a cluster. Once the cluster changes to a different state, usually within 60 minutes of it being created, this action is no longer available.",
+        "id": "to-update-a-cluster-1482863900595",
+        "title": "To update a cluster"
+      }
+    ],
+    "UpdateJob": [
+      {
+        "input": {
+          "AddressId": "ADID1234ab12-3eec-4eb3-9be6-9374c10eb51b",
+          "Description": "updated-job-name",
+          "JobId": "JID123e4567-e89b-12d3-a456-426655440000",
+          "ShippingOption": "NEXT_DAY",
+          "SnowballCapacityPreference": "T100"
+        },
+        "comments": {
+        },
+        "description": "This action allows you to update certain parameters for a job. Once the job changes to a different job state, usually within 60 minutes of the job being created, this action is no longer available.",
+        "id": "to-update-a-job-1482863556886",
+        "title": "To update a job"
+      }
+    ]
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/snowball/2016-06-30/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/snowball/2016-06-30/paginators-1.json
new file mode 100644
index 00000000..05a7ea84
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/snowball/2016-06-30/paginators-1.json
@@ -0,0 +1,40 @@
+{
+  "pagination": {
+    "ListJobs": {
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "result_key": "JobListEntries"
+    },
+    "DescribeAddresses": {
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "result_key": "Addresses"
+    },
+    "ListClusterJobs": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "JobListEntries"
+    },
+    "ListClusters": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ClusterListEntries"
+    },
+    "ListCompatibleImages": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "CompatibleImages"
+    },
+    "ListLongTermPricing": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "LongTermPricingEntries"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/snowball/2016-06-30/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/snowball/2016-06-30/service-2.json.gz
new file mode 100644
index 00000000..74f2e4c9
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/snowball/2016-06-30/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/sns/2010-03-31/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/sns/2010-03-31/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..02d0c18b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sns/2010-03-31/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/sns/2010-03-31/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/sns/2010-03-31/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sns/2010-03-31/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/sns/2010-03-31/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/sns/2010-03-31/paginators-1.json
new file mode 100644
index 00000000..5be5250d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sns/2010-03-31/paginators-1.json
@@ -0,0 +1,46 @@
+{
+  "pagination": {
+    "ListEndpointsByPlatformApplication": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "Endpoints"
+    },
+    "ListPlatformApplications": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "PlatformApplications"
+    },
+    "ListSubscriptions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "Subscriptions"
+    },
+    "ListSubscriptionsByTopic": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "Subscriptions"
+    },
+    "ListTopics": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "Topics"
+    },
+    "ListPhoneNumbersOptedOut": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "result_key": "phoneNumbers"
+    },
+    "ListOriginationNumbers": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "PhoneNumbers"
+    },
+    "ListSMSSandboxPhoneNumbers": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "PhoneNumbers"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/sns/2010-03-31/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/sns/2010-03-31/service-2.json.gz
new file mode 100644
index 00000000..37a53a55
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sns/2010-03-31/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/socialmessaging/2024-01-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/socialmessaging/2024-01-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..d356b2d6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/socialmessaging/2024-01-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/socialmessaging/2024-01-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/socialmessaging/2024-01-01/paginators-1.json
new file mode 100644
index 00000000..4031a2aa
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/socialmessaging/2024-01-01/paginators-1.json
@@ -0,0 +1,10 @@
+{
+  "pagination": {
+    "ListLinkedWhatsAppBusinessAccounts": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "linkedAccounts"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/socialmessaging/2024-01-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/socialmessaging/2024-01-01/service-2.json.gz
new file mode 100644
index 00000000..f0c71e9e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/socialmessaging/2024-01-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/sqs/2012-11-05/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/sqs/2012-11-05/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..636fc9da
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sqs/2012-11-05/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/sqs/2012-11-05/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/sqs/2012-11-05/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sqs/2012-11-05/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/sqs/2012-11-05/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/sqs/2012-11-05/paginators-1.json
new file mode 100644
index 00000000..7c22d43a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sqs/2012-11-05/paginators-1.json
@@ -0,0 +1,16 @@
+{
+  "pagination": {
+    "ListDeadLetterSourceQueues": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "queueUrls"
+    },
+    "ListQueues": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "QueueUrls"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/sqs/2012-11-05/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/sqs/2012-11-05/service-2.json.gz
new file mode 100644
index 00000000..03011901
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sqs/2012-11-05/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ssm-contacts/2021-05-03/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ssm-contacts/2021-05-03/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..b3455222
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ssm-contacts/2021-05-03/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ssm-contacts/2021-05-03/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/ssm-contacts/2021-05-03/examples-1.json
new file mode 100644
index 00000000..d7c714d8
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ssm-contacts/2021-05-03/examples-1.json
@@ -0,0 +1,714 @@
+{
+  "version": "1.0",
+  "examples": {
+    "AcceptPage": [
+      {
+        "input": {
+          "AcceptCode": "425440",
+          "AcceptType": "READ",
+          "PageId": "arn:aws:ssm-contacts:us-east-2:682428703967:page/akuam/94ea0c7b-56d9-46c3-b84a-a37c8b067ad3"
+        },
+        "output": {
+        },
+        "comments": {
+        },
+        "description": "The following accept-page operation uses an accept code sent to the contact channel to accept a page.",
+        "id": "to-accept-a-page-during-and-engagement-1630357840187",
+        "title": "To accept a page during and engagement"
+      }
+    ],
+    "ActivateContactChannel": [
+      {
+        "input": {
+          "ActivationCode": "466136",
+          "ContactChannelId": "arn:aws:ssm-contacts:us-east-2:111122223333:contact-channel/akuam/fc7405c4-46b2-48b7-87b2-93e2f225b90d"
+        },
+        "output": {
+        },
+        "comments": {
+        },
+        "description": "The following activate-contact-channel example activates a contact channel and makes it usable as part of an incident.",
+        "id": "activate-a-contacts-contact-channel-1630359780075",
+        "title": "Activate a contact's contact channel"
+      }
+    ],
+    "CreateContact": [
+      {
+        "input": {
+          "Alias": "akuam",
+          "DisplayName": "Akua Mansa",
+          "Plan": {
+            "Stages": [
+
+            ]
+          },
+          "Type": "PERSONAL"
+        },
+        "output": {
+          "ContactArn": "arn:aws:ssm-contacts:us-east-2:111122223333:contact/akuam"
+        },
+        "comments": {
+        },
+        "description": "The following create-contact example creates a contact in your environment with a blank plan. The plan can be updated after creating contact channels. Use the create-contact-channel operation with the output ARN of this command. After you have created contact channels for this contact use update-contact to update the plan.",
+        "id": "to-create-a-contact-1630360152750",
+        "title": "To create a contact"
+      }
+    ],
+    "CreateContactChannel": [
+      {
+        "input": {
+          "ContactId": "arn:aws:ssm-contacts:us-east-1:111122223333:contact/akuam",
+          "DeliveryAddress": {
+            "SimpleAddress": "+15005550199"
+          },
+          "Name": "akuas sms-test",
+          "Type": "SMS"
+        },
+        "output": {
+          "ContactChannelArn": "arn:aws:ssm-contacts:us-east-1:111122223333:contact-channel/akuam/02f506b9-ea5d-4764-af89-2daa793ff024"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Creates a contact channel of type SMS for the contact Akua Mansa. Contact channels can be created of type SMS, EMAIL, or VOICE.",
+        "id": "to-create-a-contact-channel-1630360447010",
+        "title": "To create a contact channel"
+      }
+    ],
+    "DeactivateContactChannel": [
+      {
+        "input": {
+          "ContactChannelId": "arn:aws:ssm-contacts:us-east-2:111122223333:contact-channel/akuam/fc7405c4-46b2-48b7-87b2-93e2f225b90d"
+        },
+        "output": {
+        },
+        "comments": {
+        },
+        "description": "The following ``deactivate-contact-channel`` example deactivates a contact channel. Deactivating a contact channel means the contact channel will no longer be paged during an incident. You can also reactivate a contact channel at any time using the activate-contact-channel operation.",
+        "id": "to-deactivate-a-contact-channel-1630360853894",
+        "title": "To deactivate a contact channel"
+      }
+    ],
+    "DeleteContact": [
+      {
+        "input": {
+          "ContactId": "arn:aws:ssm-contacts:us-east-1:111122223333:contact/alejr"
+        },
+        "output": {
+        },
+        "comments": {
+        },
+        "description": "The following delete-contact example deletes a contact. The contact will no longer be reachable from any escalation plan that refers to them.",
+        "id": "to-delete-a-contact-1630361093863",
+        "title": "To delete a contact"
+      }
+    ],
+    "DeleteContactChannel": [
+      {
+        "input": {
+          "ContactChannelId": "arn:aws:ssm-contacts:us-east-1:111122223333:contact-channel/akuam/13149bad-52ee-45ea-ae1e-45857f78f9b2"
+        },
+        "output": {
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following delete-contact-channel example deletes a contact channel. Deleting a contact channel ensures the contact channel will not be paged during an incident.",
+        "id": "to-delete-a-contact-channel-1630364616682",
+        "title": "To delete a contact channel"
+      }
+    ],
+    "DescribeEngagement": [
+      {
+        "input": {
+          "EngagementId": "arn:aws:ssm-contacts:us-east-2:111122223333:engagement/example_escalation/69e40ce1-8dbb-4d57-8962-5fbe7fc53356"
+        },
+        "output": {
+          "ContactArn": "arn:aws:ssm-contacts:us-east-2:111122223333:contact/example_escalation",
+          "Content": "Testing engagements",
+          "EngagementArn": "arn:aws:ssm-contacts:us-east-2:111122223333:engagement/example_escalation/69e40ce1-8dbb-4d57-8962-5fbe7fc53356",
+          "PublicContent": "Testing engagements",
+          "PublicSubject": "test",
+          "Sender": "tester",
+          "StartTime": "2021-05-18T18:25:41.151000+00:00",
+          "Subject": "test"
+        },
+        "comments": {
+        },
+        "description": "The following describe-engagement example lists the details of an engagement to a contact or escalation plan. The subject and content are sent to the contact channels.",
+        "id": "to-describe-the-details-of-an-engagement-1630364719475",
+        "title": "To describe the details of an engagement"
+      }
+    ],
+    "DescribePage": [
+      {
+        "input": {
+          "PageId": "arn:aws:ssm-contacts:us-east-2:111122223333:page/akuam/ad0052bd-e606-498a-861b-25726292eb93"
+        },
+        "output": {
+          "ContactArn": "arn:aws:ssm-contacts:us-east-2:111122223333:contact/akuam",
+          "Content": "Testing engagements",
+          "DeliveryTime": "2021-05-18T18:43:55.265000+00:00",
+          "EngagementArn": "arn:aws:ssm-contacts:us-east-2:111122223333:engagement/akuam/78a29753-3674-4ac5-9f83-0468563567f0",
+          "PageArn": "arn:aws:ssm-contacts:us-east-2:111122223333:page/akuam/ad0052bd-e606-498a-861b-25726292eb93",
+          "PublicContent": "Testing engagements",
+          "PublicSubject": "test",
+          "ReadTime": "2021-05-18T18:43:55.708000+00:00",
+          "Sender": "tester",
+          "SentTime": "2021-05-18T18:43:29.301000+00:00",
+          "Subject": "test"
+        },
+        "comments": {
+        },
+        "description": "The following describe-page example lists details of a page to a contact channel. The page will include the subject and content provided.",
+        "id": "to-list-the-details-of-a-page-to-a-contact-channel-1630364907282",
+        "title": "To list the details of a page to a contact channel"
+      }
+    ],
+    "GetContact": [
+      {
+        "input": {
+          "ContactId": "arn:aws:ssm-contacts:us-east-2:111122223333:contact/akuam"
+        },
+        "output": {
+          "Alias": "akuam",
+          "ContactArn": "arn:aws:ssm-contacts:us-east-2:111122223333:contact/akuam",
+          "DisplayName": "Akua Mansa",
+          "Plan": {
+            "Stages": [
+              {
+                "DurationInMinutes": 5,
+                "Targets": [
+                  {
+                    "ChannelTargetInfo": {
+                      "ContactChannelId": "arn:aws:ssm-contacts:us-east-2:111122223333:contact-channel/akuam/beb25840-5ac8-4644-95cc-7a8de390fa65",
+                      "RetryIntervalInMinutes": 1
+                    }
+                  }
+                ]
+              },
+              {
+                "DurationInMinutes": 5,
+                "Targets": [
+                  {
+                    "ChannelTargetInfo": {
+                      "ContactChannelId": "arn:aws:ssm-contacts:us-east-2:111122223333:contact-channel/akuam/49f3c24d-5f9f-4638-ae25-3f49e04229ad",
+                      "RetryIntervalInMinutes": 1
+                    }
+                  }
+                ]
+              },
+              {
+                "DurationInMinutes": 5,
+                "Targets": [
+                  {
+                    "ChannelTargetInfo": {
+                      "ContactChannelId": "arn:aws:ssm-contacts:us-east-2:111122223333:contact-channel/akuam/77d4f447-f619-4954-afff-85551e369c2a",
+                      "RetryIntervalInMinutes": 1
+                    }
+                  }
+                ]
+              }
+            ]
+          },
+          "Type": "PERSONAL"
+        },
+        "comments": {
+        },
+        "description": "The following get-contact example describes a contact.",
+        "id": "example-1-to-describe-a-contact-plan-1630365360005",
+        "title": "Example 1: To describe a contact plan"
+      },
+      {
+        "input": {
+          "ContactId": "arn:aws:ssm-contacts:us-east-2:111122223333:contact/example_escalation"
+        },
+        "output": {
+          "Alias": "example_escalation",
+          "ContactArn": "arn:aws:ssm-contacts:us-east-2:111122223333:contact/example_escalation",
+          "DisplayName": "Example Escalation Plan",
+          "Plan": {
+            "Stages": [
+              {
+                "DurationInMinutes": 5,
+                "Targets": [
+                  {
+                    "ContactTargetInfo": {
+                      "ContactId": "arn:aws:ssm-contacts:us-east-2:111122223333:contact/akuam",
+                      "IsEssential": true
+                    }
+                  }
+                ]
+              },
+              {
+                "DurationInMinutes": 5,
+                "Targets": [
+                  {
+                    "ContactTargetInfo": {
+                      "ContactId": "arn:aws:ssm-contacts:us-east-2:111122223333:contact/alejr",
+                      "IsEssential": false
+                    }
+                  }
+                ]
+              },
+              {
+                "DurationInMinutes": 0,
+                "Targets": [
+                  {
+                    "ContactTargetInfo": {
+                      "ContactId": "arn:aws:ssm-contacts:us-east-2:111122223333:contact/anasi",
+                      "IsEssential": false
+                    }
+                  }
+                ]
+              }
+            ]
+          },
+          "Type": "ESCALATION"
+        },
+        "comments": {
+        },
+        "description": "The following get-contact example describes an escalation plan.",
+        "id": "example-2-to-describe-an-escalation-plan-1630365515731",
+        "title": "Example 2: To describe an escalation plan"
+      }
+    ],
+    "GetContactChannel": [
+      {
+        "input": {
+          "ContactChannelId": "arn:aws:ssm-contacts:us-east-2:111122223333:contact-channel/akuam/fc7405c4-46b2-48b7-87b2-93e2f225b90d"
+        },
+        "output": {
+          "ActivationStatus": "ACTIVATED",
+          "ContactArn": "arn:aws:ssm-contacts:us-east-2:111122223333:contact/akuam",
+          "ContactChannelArn": "arn:aws:ssm-contacts:us-east-2:111122223333:contact-channel/akuam/fc7405c4-46b2-48b7-87b2-93e2f225b90d",
+          "DeliveryAddress": {
+            "SimpleAddress": "+15005550199"
+          },
+          "Name": "akuas sms",
+          "Type": "SMS"
+        },
+        "comments": {
+        },
+        "description": "The following get-contact-channel example lists the details of a contact channel.",
+        "id": "to-list-the-details-of-a-contact-channel-1630365682730",
+        "title": "To list the details of a contact channel"
+      }
+    ],
+    "GetContactPolicy": [
+      {
+        "input": {
+          "ContactArn": "arn:aws:ssm-contacts:us-east-1:111122223333:contact/akuam"
+        },
+        "output": {
+          "ContactArn": "arn:aws:ssm-contacts:us-east-1:111122223333:contact/akuam",
+          "Policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"SharePolicyForDocumentationDralia\",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"222233334444\"},\"Action\":[\"ssm-contacts:GetContact\",\"ssm-contacts:StartEngagement\",\"ssm-contacts:DescribeEngagement\",\"ssm-contacts:ListPagesByEngagement\",\"ssm-contacts:StopEngagement\"],\"Resource\":[\"arn:aws:ssm-contacts:*:111122223333:contact/akuam\",\"arn:aws:ssm-contacts:*:111122223333:engagement/akuam/*\"]}]}"
+        },
+        "comments": {
+        },
+        "description": "The following get-contact-policy example lists the resource policies associated with the specified contact.",
+        "id": "to-list-the-details-of-a-contact-channel-1630365682730",
+        "title": "To list the resource policies of a contact"
+      }
+    ],
+    "ListContactChannels": [
+      {
+        "input": {
+          "ContactId": "arn:aws:ssm-contacts:us-east-2:111122223333:contact/akuam"
+        },
+        "output": {
+          "ContactChannels": [
+            {
+              "ActivationStatus": "ACTIVATED",
+              "ContactArn": "arn:aws:ssm-contacts:us-east-2:111122223333:contact/akuam",
+              "ContactChannelArn": "arn:aws:ssm-contacts:us-east-2:111122223333:contact-channel/akuam/fc7405c4-46b2-48b7-87b2-93e2f225b90d",
+              "DeliveryAddress": {
+                "SimpleAddress": "+15005550100"
+              },
+              "Name": "akuas sms",
+              "Type": "SMS"
+            }
+          ]
+        },
+        "comments": {
+        },
+        "description": "The following list-contact-channels example lists the available contact channels of the specified contact.",
+        "id": "to-list-the-contact-channels-of-a-contact-1630366544252",
+        "title": "To list the contact channels of a contact"
+      }
+    ],
+    "ListContacts": [
+      {
+        "input": {
+        },
+        "output": {
+          "Contacts": [
+            {
+              "Alias": "akuam",
+              "ContactArn": "arn:aws:ssm-contacts:us-east-2:111122223333:contact/akuam",
+              "DisplayName": "Akua Mansa",
+              "Type": "PERSONAL"
+            },
+            {
+              "Alias": "alejr",
+              "ContactArn": "arn:aws:ssm-contacts:us-east-2:111122223333:contact/alejr",
+              "DisplayName": "Alejandro Rosalez",
+              "Type": "PERSONAL"
+            },
+            {
+              "Alias": "anasi",
+              "ContactArn": "arn:aws:ssm-contacts:us-east-2:111122223333:contact/anasi",
+              "DisplayName": "Ana Carolina Silva",
+              "Type": "PERSONAL"
+            },
+            {
+              "Alias": "example_escalation",
+              "ContactArn": "arn:aws:ssm-contacts:us-east-2:111122223333:contact/example_escalation",
+              "DisplayName": "Example Escalation",
+              "Type": "ESCALATION"
+            }
+          ]
+        },
+        "comments": {
+        },
+        "description": "The following list-contacts example lists the contacts and escalation plans in your account.",
+        "id": "to-list-all-escalation-plans-and-contacts-1630367103082",
+        "title": "To list all escalation plans and contacts"
+      }
+    ],
+    "ListEngagements": [
+      {
+        "input": {
+        },
+        "output": {
+          "Engagements": [
+            {
+              "ContactArn": "arn:aws:ssm-contacts:us-east-2:111122223333:contact/akuam",
+              "EngagementArn": "arn:aws:ssm-contacts:us-east-2:111122223333:engagement/akuam/91792571-0b53-4821-9f73-d25d13d9e529",
+              "Sender": "cli",
+              "StartTime": "2021-05-18T20:37:50.300000+00:00"
+            },
+            {
+              "ContactArn": "arn:aws:ssm-contacts:us-east-2:111122223333:contact/akuam",
+              "EngagementArn": "arn:aws:ssm-contacts:us-east-2:111122223333:engagement/akuam/78a29753-3674-4ac5-9f83-0468563567f0",
+              "Sender": "cli",
+              "StartTime": "2021-05-18T18:40:26.666000+00:00"
+            },
+            {
+              "ContactArn": "arn:aws:ssm-contacts:us-east-2:111122223333:contact/example_escalation",
+              "EngagementArn": "arn:aws:ssm-contacts:us-east-2:111122223333:engagement/example_escalation/69e40ce1-8dbb-4d57-8962-5fbe7fc53356",
+              "Sender": "cli",
+              "StartTime": "2021-05-18T18:25:41.151000+00:00"
+            },
+            {
+              "ContactArn": "arn:aws:ssm-contacts:us-east-2:111122223333:contact/akuam",
+              "EngagementArn": "arn:aws:ssm-contacts:us-east-2:111122223333:engagement/akuam/607ced0e-e8fa-4ea7-8958-a237b8803f8f",
+              "Sender": "cli",
+              "StartTime": "2021-05-18T18:20:58.093000+00:00"
+            }
+          ]
+        },
+        "comments": {
+        },
+        "description": "The following list-engagements example lists engagements to escalation plans and contacts. You can also list engagements for a single incident.",
+        "id": "to-list-all-engagements-1630367432635",
+        "title": "To list all engagements"
+      }
+    ],
+    "ListPageReceipts": [
+      {
+        "input": {
+          "PageId": "arn:aws:ssm-contacts:us-east-2:111122223333:page/akuam/94ea0c7b-56d9-46c3-b84a-a37c8b067ad3"
+        },
+        "output": {
+          "Receipts": [
+            {
+              "ContactChannelArn": "arn:aws:ssm-contacts:us-east-2:111122223333:contact-channel/akuam/fc7405c4-46b2-48b7-87b2-93e2f225b90d",
+              "ReceiptInfo": "425440",
+              "ReceiptTime": "2021-05-18T20:42:57.485000+00:00",
+              "ReceiptType": "DELIVERED"
+            },
+            {
+              "ContactChannelArn": "arn:aws:ssm-contacts:us-east-2:111122223333:contact-channel/akuam/fc7405c4-46b2-48b7-87b2-93e2f225b90d",
+              "ReceiptInfo": "425440",
+              "ReceiptTime": "2021-05-18T20:42:57.907000+00:00",
+              "ReceiptType": "READ"
+            },
+            {
+              "ContactChannelArn": "arn:aws:ssm-contacts:us-east-2:111122223333:contact-channel/akuam/fc7405c4-46b2-48b7-87b2-93e2f225b90d",
+              "ReceiptInfo": "SM6656c19132f1465f9c9c1123a5dde7c9",
+              "ReceiptTime": "2021-05-18T20:40:52.962000+00:00",
+              "ReceiptType": "SENT"
+            }
+          ]
+        },
+        "comments": {
+        },
+        "description": "The following command-name example lists whether a page was received or not by a contact.",
+        "id": "to-list-page-receipts-1630367706869",
+        "title": "To list page receipts"
+      }
+    ],
+    "ListPagesByContact": [
+      {
+        "input": {
+          "ContactId": "arn:aws:ssm-contacts:us-east-2:111122223333:contact/akuam"
+        },
+        "output": {
+          "Pages": [
+            {
+              "ContactArn": "arn:aws:ssm-contacts:us-east-2:111122223333:contact/akuam",
+              "DeliveryTime": "2021-05-18T18:43:55.265000+00:00",
+              "EngagementArn": "arn:aws:ssm-contacts:us-east-2:111122223333:engagement/akuam/78a29753-3674-4ac5-9f83-0468563567f0",
+              "PageArn": "arn:aws:ssm-contacts:us-east-2:111122223333:page/akuam/ad0052bd-e606-498a-861b-25726292eb93",
+              "ReadTime": "2021-05-18T18:43:55.708000+00:00",
+              "Sender": "cli",
+              "SentTime": "2021-05-18T18:43:29.301000+00:00"
+            }
+          ]
+        },
+        "comments": {
+        },
+        "description": "The following list-pages-by-contact example lists all pages to the specified contact.",
+        "id": "to-list-pages-by-contact-1630435789132",
+        "title": "To list pages by contact"
+      }
+    ],
+    "ListPagesByEngagement": [
+      {
+        "input": {
+          "EngagementId": "arn:aws:ssm-contacts:us-east-2:111122223333:engagement/akuam/78a29753-3674-4ac5-9f83-0468563567f0"
+        },
+        "output": {
+          "Pages": [
+            {
+              "ContactArn": "arn:aws:ssm-contacts:us-east-2:111122223333:contact/akuam",
+              "EngagementArn": "arn:aws:ssm-contacts:us-east-2:111122223333:engagement/akuam/78a29753-3674-4ac5-9f83-0468563567f0",
+              "PageArn": "arn:aws:ssm-contacts:us-east-2:111122223333:page/akuam/ad0052bd-e606-498a-861b-25726292eb93",
+              "Sender": "cli",
+              "SentTime": "2021-05-18T18:40:27.245000+00:00"
+            }
+          ]
+        },
+        "comments": {
+        },
+        "description": "The following list-pages-by-engagement example lists the pages that occurred while engaging the defined engagement plan.",
+        "id": "to-list-pages-to-contact-channels-started-from-an-engagement-1630435864674",
+        "title": "To list pages to contact channels started from an engagement."
+      }
+    ],
+    "ListTagsForResource": [
+      {
+        "input": {
+          "ResourceARN": "arn:aws:ssm-contacts:us-east-1:111122223333:contact/akuam"
+        },
+        "output": {
+          "Tags": [
+            {
+              "Key": "group1",
+              "Value": "1"
+            }
+          ]
+        },
+        "comments": {
+        },
+        "description": "The following list-tags-for-resource example lists the tags of the specified contact.",
+        "id": "to-list-tags-for-a-contact-1630436051681",
+        "title": "To list tags for a contact"
+      }
+    ],
+    "PutContactPolicy": [
+      {
+        "input": {
+          "ContactArn": "arn:aws:ssm-contacts:us-east-1:111122223333:contact/akuam",
+          "Policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"ExampleResourcePolicy\",\"Action\":[\"ssm-contacts:GetContact\",\"ssm-contacts:StartEngagement\",\"ssm-contacts:DescribeEngagement\",\"ssm-contacts:ListPagesByEngagement\",\"ssm-contacts:StopEngagement\"],\"Principal\":{\"AWS\":\"222233334444\"},\"Effect\":\"Allow\",\"Resource\":[\"arn:aws:ssm-contacts:*:111122223333:contact/akuam\",\"arn:aws:ssm-contacts:*:111122223333:engagement/akuam/*\"]}]}"
+        },
+        "output": {
+        },
+        "comments": {
+        },
+        "description": "The following put-contact-policy example adds a resource policy to the contact Akua that shares the contact and related engagements with the principal.",
+        "id": "to-share-a-contact-and-engagements-1630436278898",
+        "title": "To share a contact and engagements"
+      }
+    ],
+    "SendActivationCode": [
+      {
+        "input": {
+          "ContactChannelId": "arn:aws:ssm-contacts:us-east-1:111122223333:contact-channel/akuam/8ddae2d1-12c8-4e45-b852-c8587266c400"
+        },
+        "output": {
+        },
+        "comments": {
+        },
+        "description": "The following send-activation-code example sends an activation code and message to the specified contact channel.",
+        "id": "to-send-an-activation-code-1630436453574",
+        "title": "To send an activation code"
+      }
+    ],
+    "StartEngagement": [
+      {
+        "input": {
+          "ContactId": "arn:aws:ssm-contacts:us-east-2:111122223333:contact/akuam",
+          "Content": "Testing engagements",
+          "PublicContent": "Testing engagements",
+          "PublicSubject": "test",
+          "Sender": "tester",
+          "Subject": "test"
+        },
+        "output": {
+          "EngagementArn": "arn:aws:ssm-contacts:us-east-2:111122223333:engagement/akuam/607ced0e-e8fa-4ea7-8958-a237b8803f8f"
+        },
+        "comments": {
+        },
+        "description": "The following start-engagement pages contact's contact channels. Sender, subject, public-subject, and public-content are all free from fields. Incident Manager sends the subject and content to the provided VOICE or EMAIL contact channels. Incident Manager sends the public-subject and public-content to the provided SMS contact channels. Sender is used to track who started the engagement.",
+        "id": "example-1-to-page-a-contacts-contact-channels-1630436634872",
+        "title": "Example 1: To page a contact's contact channels"
+      },
+      {
+        "input": {
+          "ContactId": "arn:aws:ssm-contacts:us-east-2:111122223333:contact/example_escalation",
+          "Content": "Testing engagements",
+          "PublicContent": "Testing engagements",
+          "PublicSubject": "test",
+          "Sender": "tester",
+          "Subject": "test"
+        },
+        "output": {
+          "EngagementArn": "arn:aws:ssm-contacts:us-east-2:111122223333:engagement/example_escalation/69e40ce1-8dbb-4d57-8962-5fbe7fc53356"
+        },
+        "comments": {
+        },
+        "description": "The following start-engagement engages contact's through an escalation plan. Each contact is paged according to their engagement plan.",
+        "id": "example-2-to-page-a-contact-in-the-provided-escalation-plan-1630436808480",
+        "title": "Example 2: To page a contact in the provided escalation plan."
+      }
+    ],
+    "StopEngagement": [
+      {
+        "input": {
+          "EngagementId": "arn:aws:ssm-contacts:us-east-2:111122223333:engagement/example_escalation/69e40ce1-8dbb-4d57-8962-5fbe7fc53356"
+        },
+        "output": {
+        },
+        "comments": {
+        },
+        "description": "The following stop-engagement example stops an engagement from paging further contacts and contact channels.",
+        "id": "to-stop-an-engagement-1630436882864",
+        "title": "To stop an engagement"
+      }
+    ],
+    "TagResource": [
+      {
+        "input": {
+          "ResourceARN": "arn:aws:ssm-contacts:us-east-1:111122223333:contact/akuam",
+          "Tags": [
+            {
+              "Key": "group1",
+              "Value": "1"
+            }
+          ]
+        },
+        "output": {
+        },
+        "comments": {
+        },
+        "description": "The following tag-resource example tags a specified contact with the provided tag key value pair.",
+        "id": "to-tag-a-contact-1630437124572",
+        "title": "To tag a contact"
+      }
+    ],
+    "UntagResource": [
+      {
+        "input": {
+          "ResourceARN": "arn:aws:ssm-contacts:us-east-1:111122223333:contact/akuam",
+          "TagKeys": [
+            "group1"
+          ]
+        },
+        "output": {
+        },
+        "comments": {
+        },
+        "description": "The following untag-resource example removes the group1 tag from the specified contact.",
+        "id": "to-remove-tags-from-a-contact-1630437251110",
+        "title": "To remove tags from a contact"
+      }
+    ],
+    "UpdateContact": [
+      {
+        "input": {
+          "ContactId": "arn:aws:ssm-contacts:us-east-2:111122223333:contact/akuam",
+          "Plan": {
+            "Stages": [
+              {
+                "DurationInMinutes": 5,
+                "Targets": [
+                  {
+                    "ChannelTargetInfo": {
+                      "ContactChannelId": "arn:aws:ssm-contacts:us-east-2:111122223333:contact-channel/akuam/beb25840-5ac8-4644-95cc-7a8de390fa65",
+                      "RetryIntervalInMinutes": 1
+                    }
+                  }
+                ]
+              },
+              {
+                "DurationInMinutes": 5,
+                "Targets": [
+                  {
+                    "ChannelTargetInfo": {
+                      "ContactChannelId": "arn:aws:ssm-contacts:us-east-2:111122223333:contact-channel/akuam/49f3c24d-5f9f-4638-ae25-3f49e04229ad",
+                      "RetryIntervalInMinutes": 1
+                    }
+                  }
+                ]
+              },
+              {
+                "DurationInMinutes": 5,
+                "Targets": [
+                  {
+                    "ChannelTargetInfo": {
+                      "ContactChannelId": "arn:aws:ssm-contacts:us-east-2:111122223333:contact-channel/akuam/77d4f447-f619-4954-afff-85551e369c2a",
+                      "RetryIntervalInMinutes": 1
+                    }
+                  }
+                ]
+              }
+            ]
+          }
+        },
+        "output": {
+        },
+        "comments": {
+        },
+        "description": "The following update-contact example updates the engagement plan of the contact Akua to include the three types of contacts channels. This is done after creating contact channels for Akua.",
+        "id": "to-update-the-engagement-plan-of-contact-1630437436599",
+        "title": "To update the engagement plan of contact"
+      }
+    ],
+    "UpdateContactChannel": [
+      {
+        "input": {
+          "ContactChannelId": "arn:aws:ssm-contacts:us-east-2:111122223333:contact-channel/akuam/49f3c24d-5f9f-4638-ae25-3f49e04229ad",
+          "DeliveryAddress": {
+            "SimpleAddress": "+15005550198"
+          },
+          "Name": "akuas voice channel"
+        },
+        "output": {
+        },
+        "comments": {
+        },
+        "description": "The following update-contact-channel example updates the name and delivery address of a contact channel.",
+        "id": "to-update-a-contact-channel-1630437610256",
+        "title": "To update a contact channel"
+      }
+    ]
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ssm-contacts/2021-05-03/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/ssm-contacts/2021-05-03/paginators-1.json
new file mode 100644
index 00000000..621bde80
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ssm-contacts/2021-05-03/paginators-1.json
@@ -0,0 +1,69 @@
+{
+  "pagination": {
+    "ListContactChannels": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ContactChannels"
+    },
+    "ListContacts": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Contacts"
+    },
+    "ListEngagements": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Engagements"
+    },
+    "ListPageReceipts": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Receipts"
+    },
+    "ListPagesByContact": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Pages"
+    },
+    "ListPagesByEngagement": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Pages"
+    },
+    "ListPageResolutions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "PageResolutions"
+    },
+    "ListPreviewRotationShifts": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "RotationShifts"
+    },
+    "ListRotationOverrides": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "RotationOverrides"
+    },
+    "ListRotationShifts": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "RotationShifts"
+    },
+    "ListRotations": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Rotations"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ssm-contacts/2021-05-03/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ssm-contacts/2021-05-03/service-2.json.gz
new file mode 100644
index 00000000..77d909f1
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ssm-contacts/2021-05-03/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ssm-incidents/2018-05-10/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ssm-incidents/2018-05-10/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..e937fcd1
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ssm-incidents/2018-05-10/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ssm-incidents/2018-05-10/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/ssm-incidents/2018-05-10/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ssm-incidents/2018-05-10/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ssm-incidents/2018-05-10/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/ssm-incidents/2018-05-10/paginators-1.json
new file mode 100644
index 00000000..662c714f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ssm-incidents/2018-05-10/paginators-1.json
@@ -0,0 +1,46 @@
+{
+  "pagination": {
+    "GetResourcePolicies": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "resourcePolicies"
+    },
+    "ListIncidentRecords": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "incidentRecordSummaries"
+    },
+    "ListRelatedItems": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "relatedItems"
+    },
+    "ListReplicationSets": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "replicationSetArns"
+    },
+    "ListResponsePlans": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "responsePlanSummaries"
+    },
+    "ListTimelineEvents": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "eventSummaries"
+    },
+    "ListIncidentFindings": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "findings"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ssm-incidents/2018-05-10/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ssm-incidents/2018-05-10/service-2.json.gz
new file mode 100644
index 00000000..05dfb2f0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ssm-incidents/2018-05-10/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ssm-incidents/2018-05-10/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/ssm-incidents/2018-05-10/waiters-2.json
new file mode 100644
index 00000000..47c19b3a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ssm-incidents/2018-05-10/waiters-2.json
@@ -0,0 +1,53 @@
+{
+  "version" : 2,
+  "waiters" : {
+    "WaitForReplicationSetActive" : {
+      "description" : "Wait for a replication set to become ACTIVE",
+      "delay" : 30,
+      "maxAttempts" : 5,
+      "operation" : "GetReplicationSet",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "replicationSet.status",
+        "state" : "success",
+        "expected" : "ACTIVE"
+      }, {
+        "matcher" : "path",
+        "argument" : "replicationSet.status",
+        "state" : "retry",
+        "expected" : "CREATING"
+      }, {
+        "matcher" : "path",
+        "argument" : "replicationSet.status",
+        "state" : "retry",
+        "expected" : "UPDATING"
+      }, {
+        "matcher" : "path",
+        "argument" : "replicationSet.status",
+        "state" : "failure",
+        "expected" : "FAILED"
+      } ]
+    },
+    "WaitForReplicationSetDeleted" : {
+      "description" : "Wait for a replication set to be deleted",
+      "delay" : 30,
+      "maxAttempts" : 5,
+      "operation" : "GetReplicationSet",
+      "acceptors" : [ {
+        "matcher" : "error",
+        "state" : "success",
+        "expected" : "ResourceNotFoundException"
+      }, {
+        "matcher" : "path",
+        "argument" : "replicationSet.status",
+        "state" : "retry",
+        "expected" : "DELETING"
+      }, {
+        "matcher" : "path",
+        "argument" : "replicationSet.status",
+        "state" : "failure",
+        "expected" : "FAILED"
+      } ]
+    }
+  }
+}
\ No newline at end of file
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ssm-quicksetup/2018-05-10/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ssm-quicksetup/2018-05-10/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..58aa2adc
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ssm-quicksetup/2018-05-10/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ssm-quicksetup/2018-05-10/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/ssm-quicksetup/2018-05-10/paginators-1.json
new file mode 100644
index 00000000..fed0f281
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ssm-quicksetup/2018-05-10/paginators-1.json
@@ -0,0 +1,16 @@
+{
+  "pagination": {
+    "ListConfigurationManagers": {
+      "input_token": "StartingToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxItems",
+      "result_key": "ConfigurationManagersList"
+    },
+    "ListConfigurations": {
+      "input_token": "StartingToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxItems",
+      "result_key": "ConfigurationsList"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ssm-quicksetup/2018-05-10/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ssm-quicksetup/2018-05-10/service-2.json.gz
new file mode 100644
index 00000000..54b2a9c3
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ssm-quicksetup/2018-05-10/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ssm-sap/2018-05-10/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ssm-sap/2018-05-10/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..e6f7b1ab
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ssm-sap/2018-05-10/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ssm-sap/2018-05-10/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/ssm-sap/2018-05-10/paginators-1.json
new file mode 100644
index 00000000..6695d1f1
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ssm-sap/2018-05-10/paginators-1.json
@@ -0,0 +1,34 @@
+{
+  "pagination": {
+    "ListApplications": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Applications"
+    },
+    "ListComponents": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Components"
+    },
+    "ListDatabases": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Databases"
+    },
+    "ListOperations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Operations"
+    },
+    "ListOperationEvents": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "OperationEvents"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ssm-sap/2018-05-10/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ssm-sap/2018-05-10/service-2.json.gz
new file mode 100644
index 00000000..35f9587d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ssm-sap/2018-05-10/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ssm/2014-11-06/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ssm/2014-11-06/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..ef6910b3
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ssm/2014-11-06/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ssm/2014-11-06/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/ssm/2014-11-06/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ssm/2014-11-06/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ssm/2014-11-06/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/ssm/2014-11-06/paginators-1.json
new file mode 100644
index 00000000..3aafccc6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ssm/2014-11-06/paginators-1.json
@@ -0,0 +1,304 @@
+{
+  "pagination": {
+    "ListAssociations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Associations"
+    },
+    "ListCommandInvocations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "CommandInvocations"
+    },
+    "ListCommands": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Commands"
+    },
+    "ListDocuments": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "DocumentIdentifiers"
+    },
+    "DescribeInstanceInformation": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "InstanceInformationList"
+    },
+    "DescribeActivations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ActivationList"
+    },
+    "DescribeParameters": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Parameters"
+    },
+    "DescribeAssociationExecutions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "AssociationExecutions"
+    },
+    "DescribeAssociationExecutionTargets": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "AssociationExecutionTargets"
+    },
+    "GetInventory": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Entities"
+    },
+    "GetParametersByPath": {
+      "result_key": "Parameters",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "GetParameterHistory": {
+      "result_key": "Parameters",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "DescribeAutomationExecutions": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "AutomationExecutionMetadataList"
+    },
+    "DescribeAutomationStepExecutions": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "StepExecutions"
+    },
+    "DescribeAvailablePatches": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Patches"
+    },
+    "DescribeEffectiveInstanceAssociations": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Associations"
+    },
+    "DescribeEffectivePatchesForPatchBaseline": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "EffectivePatches"
+    },
+    "DescribeInstanceAssociationsStatus": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "InstanceAssociationStatusInfos"
+    },
+    "DescribeInstancePatchStates": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "InstancePatchStates"
+    },
+    "DescribeInstancePatchStatesForPatchGroup": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "InstancePatchStates"
+    },
+    "DescribeInstancePatches": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Patches"
+    },
+    "DescribeInventoryDeletions": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "InventoryDeletions"
+    },
+    "DescribeMaintenanceWindowExecutionTaskInvocations": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "WindowExecutionTaskInvocationIdentities"
+    },
+    "DescribeMaintenanceWindowExecutionTasks": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "WindowExecutionTaskIdentities"
+    },
+    "DescribeMaintenanceWindowExecutions": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "WindowExecutions"
+    },
+    "DescribeMaintenanceWindowSchedule": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ScheduledWindowExecutions"
+    },
+    "DescribeMaintenanceWindowTargets": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Targets"
+    },
+    "DescribeMaintenanceWindowTasks": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Tasks"
+    },
+    "DescribeMaintenanceWindows": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "WindowIdentities"
+    },
+    "DescribeMaintenanceWindowsForTarget": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "WindowIdentities"
+    },
+    "DescribePatchBaselines": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "BaselineIdentities"
+    },
+    "DescribePatchGroups": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Mappings"
+    },
+    "DescribeSessions": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Sessions"
+    },
+    "GetInventorySchema": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Schemas"
+    },
+    "ListAssociationVersions": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "AssociationVersions"
+    },
+    "ListComplianceItems": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ComplianceItems"
+    },
+    "ListComplianceSummaries": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ComplianceSummaryItems"
+    },
+    "ListDocumentVersions": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "DocumentVersions"
+    },
+    "ListResourceComplianceSummaries": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ResourceComplianceSummaryItems"
+    },
+    "ListResourceDataSync": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ResourceDataSyncItems"
+    },
+    "DescribeOpsItems": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "OpsItemSummaries"
+    },
+    "DescribePatchProperties": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Properties"
+    },
+    "GetOpsSummary": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Entities"
+    },
+    "ListOpsItemEvents": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Summaries"
+    },
+    "ListOpsMetadata": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "OpsMetadataList"
+    },
+    "ListOpsItemRelatedItems": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Summaries"
+    },
+    "GetResourcePolicies": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Policies"
+    },
+    "DescribeInstanceProperties": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "InstanceProperties"
+    },
+    "ListNodes": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Nodes"
+    },
+    "ListNodesSummary": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Summary"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/ssm/2014-11-06/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/ssm/2014-11-06/service-2.json.gz
new file mode 100644
index 00000000..03de1d76
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ssm/2014-11-06/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/ssm/2014-11-06/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/ssm/2014-11-06/waiters-2.json
new file mode 100644
index 00000000..43f5237f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/ssm/2014-11-06/waiters-2.json
@@ -0,0 +1,65 @@
+{
+  "version": 2,
+  "waiters": {
+    "CommandExecuted": {
+      "delay": 5,
+      "operation": "GetCommandInvocation",
+      "maxAttempts": 20,
+      "acceptors": [
+        {
+          "expected": "Pending",
+          "matcher": "path",
+          "state": "retry",
+          "argument": "Status"
+        },
+        {
+          "expected": "InProgress",
+          "matcher": "path",
+          "state": "retry",
+          "argument": "Status"
+        },
+        {
+          "expected": "Delayed",
+          "matcher": "path",
+          "state": "retry",
+          "argument": "Status"
+        },
+        {
+          "expected": "Success",
+          "matcher": "path",
+          "state": "success",
+          "argument": "Status"
+        },
+        {
+          "expected": "Cancelled",
+          "matcher": "path",
+          "state": "failure",
+          "argument": "Status"
+        },
+        {
+          "expected": "TimedOut",
+          "matcher": "path",
+          "state": "failure",
+          "argument": "Status"
+        },
+        {
+          "expected": "Failed",
+          "matcher": "path",
+          "state": "failure",
+          "argument": "Status"
+        },
+        {
+          "expected": "Cancelling",
+          "matcher": "path",
+          "state": "failure",
+          "argument": "Status"
+        },
+	{
+          "state": "retry",
+          "matcher": "error",
+          "expected": "InvocationDoesNotExist"
+        }
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/sso-admin/2020-07-20/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/sso-admin/2020-07-20/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..173e8de5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sso-admin/2020-07-20/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/sso-admin/2020-07-20/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/sso-admin/2020-07-20/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sso-admin/2020-07-20/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/sso-admin/2020-07-20/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/sso-admin/2020-07-20/paginators-1.json
new file mode 100644
index 00000000..d2c8b687
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sso-admin/2020-07-20/paginators-1.json
@@ -0,0 +1,121 @@
+{
+  "pagination": {
+    "ListAccountAssignmentCreationStatus": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "AccountAssignmentsCreationStatus"
+    },
+    "ListAccountAssignmentDeletionStatus": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "AccountAssignmentsDeletionStatus"
+    },
+    "ListAccountAssignments": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "AccountAssignments"
+    },
+    "ListAccountsForProvisionedPermissionSet": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "AccountIds"
+    },
+    "ListInstances": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Instances"
+    },
+    "ListManagedPoliciesInPermissionSet": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "AttachedManagedPolicies"
+    },
+    "ListPermissionSetProvisioningStatus": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "PermissionSetsProvisioningStatus"
+    },
+    "ListPermissionSets": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "PermissionSets"
+    },
+    "ListPermissionSetsProvisionedToAccount": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "PermissionSets"
+    },
+    "ListTagsForResource": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "Tags"
+    },
+    "ListCustomerManagedPolicyReferencesInPermissionSet": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "CustomerManagedPolicyReferences"
+    },
+    "ListAccountAssignmentsForPrincipal": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "AccountAssignments"
+    },
+    "ListApplicationAccessScopes": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Scopes"
+    },
+    "ListApplicationAssignments": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ApplicationAssignments"
+    },
+    "ListApplicationAssignmentsForPrincipal": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ApplicationAssignments"
+    },
+    "ListApplicationAuthenticationMethods": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "AuthenticationMethods"
+    },
+    "ListApplicationGrants": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "Grants"
+    },
+    "ListApplicationProviders": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "ApplicationProviders"
+    },
+    "ListApplications": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Applications"
+    },
+    "ListTrustedTokenIssuers": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "TrustedTokenIssuers"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/sso-admin/2020-07-20/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/sso-admin/2020-07-20/service-2.json.gz
new file mode 100644
index 00000000..29e16b1d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sso-admin/2020-07-20/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/sso-oidc/2019-06-10/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/sso-oidc/2019-06-10/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..0bbb4e5e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sso-oidc/2019-06-10/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/sso-oidc/2019-06-10/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/sso-oidc/2019-06-10/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sso-oidc/2019-06-10/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/sso-oidc/2019-06-10/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/sso-oidc/2019-06-10/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sso-oidc/2019-06-10/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/sso-oidc/2019-06-10/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/sso-oidc/2019-06-10/service-2.json.gz
new file mode 100644
index 00000000..afebb51d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sso-oidc/2019-06-10/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/sso/2019-06-10/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/sso/2019-06-10/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..ab35b45b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sso/2019-06-10/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/sso/2019-06-10/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/sso/2019-06-10/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sso/2019-06-10/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/sso/2019-06-10/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/sso/2019-06-10/paginators-1.json
new file mode 100644
index 00000000..daaed6fe
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sso/2019-06-10/paginators-1.json
@@ -0,0 +1,16 @@
+{
+  "pagination": {
+    "ListAccountRoles": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "roleList"
+    },
+    "ListAccounts": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "accountList"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/sso/2019-06-10/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/sso/2019-06-10/service-2.json.gz
new file mode 100644
index 00000000..4bc2b66f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sso/2019-06-10/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/stepfunctions/2016-11-23/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/stepfunctions/2016-11-23/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..bab52ed0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/stepfunctions/2016-11-23/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/stepfunctions/2016-11-23/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/stepfunctions/2016-11-23/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/stepfunctions/2016-11-23/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/stepfunctions/2016-11-23/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/stepfunctions/2016-11-23/paginators-1.json
new file mode 100644
index 00000000..fb8eb5e5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/stepfunctions/2016-11-23/paginators-1.json
@@ -0,0 +1,34 @@
+{
+  "pagination": {
+    "GetExecutionHistory": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "events"
+    },
+    "ListActivities": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "activities"
+    },
+    "ListExecutions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "executions"
+    },
+    "ListStateMachines": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "stateMachines"
+    },
+    "ListMapRuns": {
+      "input_token": "nextToken",
+      "limit_key": "maxResults",
+      "output_token": "nextToken",
+      "result_key": "mapRuns"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/stepfunctions/2016-11-23/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/stepfunctions/2016-11-23/service-2.json.gz
new file mode 100644
index 00000000..7472b705
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/stepfunctions/2016-11-23/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/storagegateway/2013-06-30/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/storagegateway/2013-06-30/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..1f930d8d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/storagegateway/2013-06-30/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/storagegateway/2013-06-30/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/storagegateway/2013-06-30/examples-1.json
new file mode 100644
index 00000000..7cc0d7d4
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/storagegateway/2013-06-30/examples-1.json
@@ -0,0 +1,1381 @@
+{
+  "version": "1.0",
+  "examples": {
+    "ActivateGateway": [
+      {
+        "input": {
+          "ActivationKey": "29AV1-3OFV9-VVIUB-NKT0I-LRO6V",
+          "GatewayName": "My_Gateway",
+          "GatewayRegion": "us-east-1",
+          "GatewayTimezone": "GMT-12:00",
+          "GatewayType": "STORED",
+          "MediumChangerType": "AWS-Gateway-VTL",
+          "TapeDriveType": "IBM-ULT3580-TD5"
+        },
+        "output": {
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-11A2222B"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Activates the gateway you previously deployed on your host.",
+        "id": "to-activate-the-gateway-1471281611207",
+        "title": "To activate the gateway"
+      }
+    ],
+    "AddCache": [
+      {
+        "input": {
+          "DiskIds": [
+            "pci-0000:03:00.0-scsi-0:0:0:0",
+            "pci-0000:03:00.0-scsi-0:0:1:0"
+          ],
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B"
+        },
+        "output": {
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example shows a request that activates a gateway-stored volume.",
+        "id": "to-add-a-cache-1471043606854",
+        "title": "To add a cache"
+      }
+    ],
+    "AddTagsToResource": [
+      {
+        "input": {
+          "ResourceARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-11A2222B",
+          "Tags": [
+            {
+              "Key": "Dev Gatgeway Region",
+              "Value": "East Coast"
+            }
+          ]
+        },
+        "output": {
+          "ResourceARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-11A2222B"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Adds one or more tags to the specified resource.",
+        "id": "to-add-tags-to-resource-1471283689460",
+        "title": "To add tags to resource"
+      }
+    ],
+    "AddUploadBuffer": [
+      {
+        "input": {
+          "DiskIds": [
+            "pci-0000:03:00.0-scsi-0:0:0:0",
+            "pci-0000:03:00.0-scsi-0:0:1:0"
+          ],
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B"
+        },
+        "output": {
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Configures one or more gateway local disks as upload buffer for a specified gateway.",
+        "id": "to-add-upload-buffer-on-local-disk-1471293902847",
+        "title": "To add upload buffer on local disk"
+      }
+    ],
+    "AddWorkingStorage": [
+      {
+        "input": {
+          "DiskIds": [
+            "pci-0000:03:00.0-scsi-0:0:0:0",
+            "pci-0000:03:00.0-scsi-0:0:1:0"
+          ],
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B"
+        },
+        "output": {
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Configures one or more gateway local disks as working storage for a gateway. (Working storage is also referred to as upload buffer.)",
+        "id": "to-add-storage-on-local-disk-1471294305401",
+        "title": "To add storage on local disk"
+      }
+    ],
+    "CancelArchival": [
+      {
+        "input": {
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B",
+          "TapeARN": "arn:aws:storagegateway:us-east-1:999999999999:tape/AMZN01A2A4"
+        },
+        "output": {
+          "TapeARN": "arn:aws:storagegateway:us-east-1:999999999999:tape/AMZN01A2A4"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Cancels archiving of a virtual tape to the virtual tape shelf (VTS) after the archiving process is initiated.",
+        "id": "to-cancel-virtual-tape-archiving-1471294865203",
+        "title": "To cancel virtual tape archiving"
+      }
+    ],
+    "CancelRetrieval": [
+      {
+        "input": {
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B",
+          "TapeARN": "arn:aws:storagegateway:us-east-1:999999999999:tape/AMZN01A2A4"
+        },
+        "output": {
+          "TapeARN": "arn:aws:storagegateway:us-east-1:999999999999:tape/AMZN01A2A4"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Cancels retrieval of a virtual tape from the virtual tape shelf (VTS) to a gateway after the retrieval process is initiated.",
+        "id": "to-cancel-virtual-tape-retrieval-1471295704491",
+        "title": "To cancel virtual tape retrieval"
+      }
+    ],
+    "CreateCachediSCSIVolume": [
+      {
+        "input": {
+          "ClientToken": "cachedvol112233",
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B",
+          "NetworkInterfaceId": "10.1.1.1",
+          "SnapshotId": "snap-f47b7b94",
+          "TargetName": "my-volume",
+          "VolumeSizeInBytes": 536870912000
+        },
+        "output": {
+          "TargetARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B/target/iqn.1997-05.com.amazon:myvolume",
+          "VolumeARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B/volume/vol-1122AABB"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Creates a cached volume on a specified cached gateway.",
+        "id": "to-create-a-cached-iscsi-volume-1471296661787",
+        "title": "To create a cached iSCSI volume"
+      }
+    ],
+    "CreateSnapshot": [
+      {
+        "input": {
+          "SnapshotDescription": "My root volume snapshot as of 10/03/2017",
+          "VolumeARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B/volume/vol-1122AABB"
+        },
+        "output": {
+          "SnapshotId": "snap-78e22663",
+          "VolumeARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B/volume/vol-1122AABB"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Initiates an ad-hoc snapshot of a gateway volume.",
+        "id": "to-create-a-snapshot-of-a-gateway-volume-1471301469561",
+        "title": "To create a snapshot of a gateway volume"
+      }
+    ],
+    "CreateSnapshotFromVolumeRecoveryPoint": [
+      {
+        "input": {
+          "SnapshotDescription": "My root volume snapshot as of 2017-06-30T10:10:10.000Z",
+          "VolumeARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B/volume/vol-1122AABB"
+        },
+        "output": {
+          "SnapshotId": "snap-78e22663",
+          "VolumeARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B/volume/vol-1122AABB",
+          "VolumeRecoveryPointTime": "2017-06-30T10:10:10.000Z"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Initiates a snapshot of a gateway from a volume recovery point.",
+        "id": "to-create-a-snapshot-of-a-gateway-volume-1471301469561",
+        "title": "To create a snapshot of a gateway volume"
+      }
+    ],
+    "CreateStorediSCSIVolume": [
+      {
+        "input": {
+          "DiskId": "pci-0000:03:00.0-scsi-0:0:0:0",
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B",
+          "NetworkInterfaceId": "10.1.1.1",
+          "PreserveExistingData": true,
+          "SnapshotId": "snap-f47b7b94",
+          "TargetName": "my-volume"
+        },
+        "output": {
+          "TargetARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B/target/iqn.1997-05.com.amazon:myvolume",
+          "VolumeARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B/volume/vol-1122AABB",
+          "VolumeSizeInBytes": 1099511627776
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Creates a stored volume on a specified stored gateway.",
+        "id": "to-create-a-stored-iscsi-volume-1471367662813",
+        "title": "To create a stored iSCSI volume"
+      }
+    ],
+    "CreateTapeWithBarcode": [
+      {
+        "input": {
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:999999999999:gateway/sgw-12A3456B",
+          "TapeBarcode": "TEST12345",
+          "TapeSizeInBytes": 107374182400
+        },
+        "output": {
+          "TapeARN": "arn:aws:storagegateway:us-east-1:999999999999:tape/TEST12345"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Creates a virtual tape by using your own barcode.",
+        "id": "to-create-a-virtual-tape-using-a-barcode-1471371842452",
+        "title": "To create a virtual tape using a barcode"
+      }
+    ],
+    "CreateTapes": [
+      {
+        "input": {
+          "ClientToken": "77777",
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:999999999999:gateway/sgw-12A3456B",
+          "NumTapesToCreate": 3,
+          "TapeBarcodePrefix": "TEST",
+          "TapeSizeInBytes": 107374182400
+        },
+        "output": {
+          "TapeARNs": [
+            "arn:aws:storagegateway:us-east-1:999999999999:tape/TEST38A29D",
+            "arn:aws:storagegateway:us-east-1:204469490176:tape/TEST3AA29F",
+            "arn:aws:storagegateway:us-east-1:204469490176:tape/TEST3BA29E"
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Creates one or more virtual tapes.",
+        "id": "to-create-a-virtual-tape-1471372061659",
+        "title": "To create a virtual tape"
+      }
+    ],
+    "DeleteBandwidthRateLimit": [
+      {
+        "input": {
+          "BandwidthType": "All",
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B"
+        },
+        "output": {
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Deletes the bandwidth rate limits of a gateway; either the upload or download limit, or both.",
+        "id": "to-delete-bandwidth-rate-limits-of-gateway-1471373225520",
+        "title": "To delete bandwidth rate limits of gateway"
+      }
+    ],
+    "DeleteChapCredentials": [
+      {
+        "input": {
+          "InitiatorName": "iqn.1991-05.com.microsoft:computername.domain.example.com",
+          "TargetARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B/target/iqn.1997-05.com.amazon:myvolume"
+        },
+        "output": {
+          "InitiatorName": "iqn.1991-05.com.microsoft:computername.domain.example.com",
+          "TargetARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B/target/iqn.1997-05.com.amazon:myvolume"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Deletes Challenge-Handshake Authentication Protocol (CHAP) credentials for a specified iSCSI target and initiator pair.",
+        "id": "to-delete-chap-credentials-1471375025612",
+        "title": "To delete CHAP credentials"
+      }
+    ],
+    "DeleteGateway": [
+      {
+        "input": {
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B"
+        },
+        "output": {
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This operation deletes the gateway, but not the gateway's VM from the host computer.",
+        "id": "to-delete-a-gatgeway-1471381697333",
+        "title": "To delete a gatgeway"
+      }
+    ],
+    "DeleteSnapshotSchedule": [
+      {
+        "input": {
+          "VolumeARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B/volume/vol-1122AABB"
+        },
+        "output": {
+          "VolumeARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B/volume/vol-1122AABB"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This action enables you to delete a snapshot schedule for a volume.",
+        "id": "to-delete-a-snapshot-of-a-volume-1471382234377",
+        "title": "To delete a snapshot of a volume"
+      }
+    ],
+    "DeleteTape": [
+      {
+        "input": {
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:204469490176:gateway/sgw-12A3456B",
+          "TapeARN": "arn:aws:storagegateway:us-east-1:204469490176:tape/TEST05A2A0"
+        },
+        "output": {
+          "TapeARN": "arn:aws:storagegateway:us-east-1:204469490176:tape/TEST05A2A0"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example deletes the specified virtual tape.",
+        "id": "to-delete-a-virtual-tape-1471382444157",
+        "title": "To delete a virtual tape"
+      }
+    ],
+    "DeleteTapeArchive": [
+      {
+        "input": {
+          "TapeARN": "arn:aws:storagegateway:us-east-1:204469490176:tape/TEST05A2A0"
+        },
+        "output": {
+          "TapeARN": "arn:aws:storagegateway:us-east-1:204469490176:tape/TEST05A2A0"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Deletes the specified virtual tape from the virtual tape shelf (VTS).",
+        "id": "to-delete-a-virtual-tape-from-the-shelf-vts-1471383964329",
+        "title": "To delete a virtual tape from the shelf (VTS)"
+      }
+    ],
+    "DeleteVolume": [
+      {
+        "input": {
+          "VolumeARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B/volume/vol-1122AABB"
+        },
+        "output": {
+          "VolumeARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B/volume/vol-1122AABB"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Deletes the specified gateway volume that you previously created using the CreateCachediSCSIVolume or CreateStorediSCSIVolume API.",
+        "id": "to-delete-a-gateway-volume-1471384418416",
+        "title": "To delete a gateway volume"
+      }
+    ],
+    "DescribeBandwidthRateLimit": [
+      {
+        "input": {
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B"
+        },
+        "output": {
+          "AverageDownloadRateLimitInBitsPerSec": 204800,
+          "AverageUploadRateLimitInBitsPerSec": 102400,
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Returns a value for a bandwidth rate limit if set. If not set, then only the gateway ARN is returned.",
+        "id": "to-describe-the-bandwidth-rate-limits-of-a-gateway-1471384826404",
+        "title": "To describe the bandwidth rate limits of a gateway"
+      }
+    ],
+    "DescribeCache": [
+      {
+        "input": {
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B"
+        },
+        "output": {
+          "CacheAllocatedInBytes": 2199023255552,
+          "CacheDirtyPercentage": 0.07,
+          "CacheHitPercentage": 99.68,
+          "CacheMissPercentage": 0.32,
+          "CacheUsedPercentage": 0.07,
+          "DiskIds": [
+            "pci-0000:03:00.0-scsi-0:0:0:0",
+            "pci-0000:04:00.0-scsi-0:1:0:0"
+          ],
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Returns information about the cache of a gateway.",
+        "id": "to-describe-cache-information-1471385756036",
+        "title": "To describe cache information"
+      }
+    ],
+    "DescribeCachediSCSIVolumes": [
+      {
+        "input": {
+          "VolumeARNs": [
+            "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B/volume/vol-1122AABB"
+          ]
+        },
+        "output": {
+          "CachediSCSIVolumes": [
+            {
+              "VolumeARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B/volume/vol-1122AABB",
+              "VolumeId": "vol-1122AABB",
+              "VolumeSizeInBytes": 1099511627776,
+              "VolumeStatus": "AVAILABLE",
+              "VolumeType": "CACHED iSCSI",
+              "VolumeiSCSIAttributes": {
+                "ChapEnabled": true,
+                "LunNumber": 1,
+                "NetworkInterfaceId": "10.243.43.207",
+                "NetworkInterfacePort": 3260,
+                "TargetARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B/target/iqn.1997-05.com.amazon:myvolume"
+              }
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Returns a description of the gateway cached iSCSI volumes specified in the request.",
+        "id": "to-describe-gateway-cached-iscsi-volumes-1471458094649",
+        "title": "To describe gateway cached iSCSI volumes"
+      }
+    ],
+    "DescribeChapCredentials": [
+      {
+        "input": {
+          "TargetARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B/target/iqn.1997-05.com.amazon:myvolume"
+        },
+        "output": {
+          "ChapCredentials": [
+            {
+              "InitiatorName": "iqn.1991-05.com.microsoft:computername.domain.example.com",
+              "SecretToAuthenticateInitiator": "111111111111",
+              "SecretToAuthenticateTarget": "222222222222",
+              "TargetARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B/target/iqn.1997-05.com.amazon:myvolume"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Returns an array of Challenge-Handshake Authentication Protocol (CHAP) credentials information for a specified iSCSI target, one for each target-initiator pair.",
+        "id": "to-describe-chap-credetnitals-for-an-iscsi-1471467462967",
+        "title": "To describe CHAP credetnitals for an iSCSI"
+      }
+    ],
+    "DescribeGatewayInformation": [
+      {
+        "input": {
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B"
+        },
+        "output": {
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B",
+          "GatewayId": "sgw-AABB1122",
+          "GatewayName": "My_Gateway",
+          "GatewayNetworkInterfaces": [
+            {
+              "Ipv4Address": "10.35.69.216"
+            }
+          ],
+          "GatewayState": "STATE_RUNNING",
+          "GatewayTimezone": "GMT-8:00",
+          "GatewayType": "STORED",
+          "LastSoftwareUpdate": "2016-01-02T16:00:00",
+          "NextUpdateAvailabilityDate": "2017-01-02T16:00:00"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Returns metadata about a gateway such as its name, network interfaces, configured time zone, and the state (whether the gateway is running or not).",
+        "id": "to-describe-metadata-about-the-gateway-1471467849079",
+        "title": "To describe metadata about the gateway"
+      }
+    ],
+    "DescribeMaintenanceStartTime": [
+      {
+        "input": {
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B"
+        },
+        "output": {
+          "DayOfWeek": 2,
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B",
+          "HourOfDay": 15,
+          "MinuteOfHour": 35,
+          "Timezone": "GMT+7:00"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Returns your gateway's weekly maintenance start time including the day and time of the week.",
+        "id": "to-describe-gateways-maintenance-start-time-1471470727387",
+        "title": "To describe gateway's maintenance start time"
+      }
+    ],
+    "DescribeSnapshotSchedule": [
+      {
+        "input": {
+          "VolumeARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B/volume/vol-1122AABB"
+        },
+        "output": {
+          "Description": "sgw-AABB1122:vol-AABB1122:Schedule",
+          "RecurrenceInHours": 24,
+          "StartAt": 6,
+          "Timezone": "GMT+7:00",
+          "VolumeARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B/volume/vol-1122AABB"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Describes the snapshot schedule for the specified gateway volume including intervals at which snapshots are automatically initiated.",
+        "id": "to-describe-snapshot-schedule-for-gateway-volume-1471471139538",
+        "title": "To describe snapshot schedule for gateway volume"
+      }
+    ],
+    "DescribeStorediSCSIVolumes": [
+      {
+        "input": {
+          "VolumeARNs": [
+            "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B/volume/vol-1122AABB"
+          ]
+        },
+        "output": {
+          "StorediSCSIVolumes": [
+            {
+              "PreservedExistingData": false,
+              "VolumeARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B/volume/vol-1122AABB",
+              "VolumeDiskId": "pci-0000:03:00.0-scsi-0:0:0:0",
+              "VolumeId": "vol-1122AABB",
+              "VolumeProgress": 23.7,
+              "VolumeSizeInBytes": 1099511627776,
+              "VolumeStatus": "BOOTSTRAPPING",
+              "VolumeiSCSIAttributes": {
+                "ChapEnabled": true,
+                "NetworkInterfaceId": "10.243.43.207",
+                "NetworkInterfacePort": 3260,
+                "TargetARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B/target/iqn.1997-05.com.amazon:myvolume"
+              }
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Returns the description of the gateway volumes specified in the request belonging to the same gateway.",
+        "id": "to-describe-the-volumes-of-a-gateway-1471472640660",
+        "title": "To describe the volumes of a gateway"
+      }
+    ],
+    "DescribeTapeArchives": [
+      {
+        "input": {
+          "Limit": 123,
+          "Marker": "1",
+          "TapeARNs": [
+            "arn:aws:storagegateway:us-east-1:999999999999:tape/AM08A1AD",
+            "arn:aws:storagegateway:us-east-1:999999999999:tape/AMZN01A2A4"
+          ]
+        },
+        "output": {
+          "Marker": "1",
+          "TapeArchives": [
+            {
+              "CompletionTime": "2016-12-16T13:50Z",
+              "TapeARN": "arn:aws:storagegateway:us-east-1:999999999:tape/AM08A1AD",
+              "TapeBarcode": "AM08A1AD",
+              "TapeSizeInBytes": 107374182400,
+              "TapeStatus": "ARCHIVED"
+            },
+            {
+              "CompletionTime": "2016-12-16T13:59Z",
+              "TapeARN": "arn:aws:storagegateway:us-east-1:999999999:tape/AMZN01A2A4",
+              "TapeBarcode": "AMZN01A2A4",
+              "TapeSizeInBytes": 429496729600,
+              "TapeStatus": "ARCHIVED"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Returns a description of specified virtual tapes in the virtual tape shelf (VTS).",
+        "id": "to-describe-virtual-tapes-in-the-vts-1471473188198",
+        "title": "To describe virtual tapes in the VTS"
+      }
+    ],
+    "DescribeTapeRecoveryPoints": [
+      {
+        "input": {
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B",
+          "Limit": 1,
+          "Marker": "1"
+        },
+        "output": {
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B",
+          "Marker": "1",
+          "TapeRecoveryPointInfos": [
+            {
+              "TapeARN": "arn:aws:storagegateway:us-east-1:999999999:tape/AMZN01A2A4",
+              "TapeRecoveryPointTime": "2016-12-16T13:50Z",
+              "TapeSizeInBytes": 1471550497,
+              "TapeStatus": "AVAILABLE"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Returns a list of virtual tape recovery points that are available for the specified gateway-VTL.",
+        "id": "to-describe-virtual-tape-recovery-points-1471542042026",
+        "title": "To describe virtual tape recovery points"
+      }
+    ],
+    "DescribeTapes": [
+      {
+        "input": {
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:999999999999:gateway/sgw-12A3456B",
+          "Limit": 2,
+          "Marker": "1",
+          "TapeARNs": [
+            "arn:aws:storagegateway:us-east-1:999999999999:tape/TEST04A2A1",
+            "arn:aws:storagegateway:us-east-1:999999999999:tape/TEST05A2A0"
+          ]
+        },
+        "output": {
+          "Marker": "1",
+          "Tapes": [
+            {
+              "TapeARN": "arn:aws:storagegateway:us-east-1:999999999999:tape/TEST04A2A1",
+              "TapeBarcode": "TEST04A2A1",
+              "TapeSizeInBytes": 107374182400,
+              "TapeStatus": "AVAILABLE"
+            },
+            {
+              "TapeARN": "arn:aws:storagegateway:us-east-1:999999999999:tape/TEST05A2A0",
+              "TapeBarcode": "TEST05A2A0",
+              "TapeSizeInBytes": 107374182400,
+              "TapeStatus": "AVAILABLE"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Returns a description of the specified Amazon Resource Name (ARN) of virtual tapes. If a TapeARN is not specified, returns a description of all virtual tapes.",
+        "id": "to-describe-virtual-tapes-associated-with-gateway-1471629287727",
+        "title": "To describe virtual tape(s) associated with gateway"
+      }
+    ],
+    "DescribeUploadBuffer": [
+      {
+        "input": {
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B"
+        },
+        "output": {
+          "DiskIds": [
+            "pci-0000:03:00.0-scsi-0:0:0:0",
+            "pci-0000:04:00.0-scsi-0:1:0:0"
+          ],
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B",
+          "UploadBufferAllocatedInBytes": 0,
+          "UploadBufferUsedInBytes": 161061273600
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Returns information about the upload buffer of a gateway including disk IDs and the amount of upload buffer space allocated/used.",
+        "id": "to-describe-upload-buffer-of-gateway-1471631099003",
+        "title": "To describe upload buffer of gateway"
+      },
+      {
+        "input": {
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B"
+        },
+        "output": {
+          "DiskIds": [
+            "pci-0000:03:00.0-scsi-0:0:0:0",
+            "pci-0000:04:00.0-scsi-0:1:0:0"
+          ],
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B",
+          "UploadBufferAllocatedInBytes": 161061273600,
+          "UploadBufferUsedInBytes": 0
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Returns information about the upload buffer of a gateway including disk IDs and the amount of upload buffer space allocated and used.",
+        "id": "to-describe-upload-buffer-of-a-gateway--1471904566370",
+        "title": "To describe upload buffer of a gateway"
+      }
+    ],
+    "DescribeVTLDevices": [
+      {
+        "input": {
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:999999999999:gateway/sgw-12A3456B",
+          "Limit": 123,
+          "Marker": "1",
+          "VTLDeviceARNs": [
+
+          ]
+        },
+        "output": {
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:999999999999:gateway/sgw-12A3456B",
+          "Marker": "1",
+          "VTLDevices": [
+            {
+              "DeviceiSCSIAttributes": {
+                "ChapEnabled": false,
+                "NetworkInterfaceId": "10.243.43.207",
+                "NetworkInterfacePort": 3260,
+                "TargetARN": "arn:aws:storagegateway:us-east-1:999999999999:gateway/sgw-12A3456B/target/iqn.1997-05.com.amazon:sgw-1fad4876-mediachanger"
+              },
+              "VTLDeviceARN": "arn:aws:storagegateway:us-east-1:999999999999:gateway/sgw-12A3456B/device/AMZN_SGW-1FAD4876_MEDIACHANGER_00001",
+              "VTLDeviceProductIdentifier": "L700",
+              "VTLDeviceType": "Medium Changer",
+              "VTLDeviceVendor": "STK"
+            },
+            {
+              "DeviceiSCSIAttributes": {
+                "ChapEnabled": false,
+                "NetworkInterfaceId": "10.243.43.209",
+                "NetworkInterfacePort": 3260,
+                "TargetARN": "arn:aws:storagegateway:us-east-1:999999999999:gateway/sgw-12A3456B/target/iqn.1997-05.com.amazon:sgw-1fad4876-tapedrive-01"
+              },
+              "VTLDeviceARN": "arn:aws:storagegateway:us-east-1:999999999999:gateway/sgw-12A3456B/device/AMZN_SGW-1FAD4876_TAPEDRIVE_00001",
+              "VTLDeviceProductIdentifier": "ULT3580-TD5",
+              "VTLDeviceType": "Tape Drive",
+              "VTLDeviceVendor": "IBM"
+            },
+            {
+              "DeviceiSCSIAttributes": {
+                "ChapEnabled": false,
+                "NetworkInterfaceId": "10.243.43.209",
+                "NetworkInterfacePort": 3260,
+                "TargetARN": "arn:aws:storagegateway:us-east-1:999999999999:gateway/sgw-12A3456B/target/iqn.1997-05.com.amazon:sgw-1fad4876-tapedrive-02"
+              },
+              "VTLDeviceARN": "arn:aws:storagegateway:us-east-1:999999999999:gateway/sgw-12A3456B/device/AMZN_SGW-1FAD4876_TAPEDRIVE_00002",
+              "VTLDeviceProductIdentifier": "ULT3580-TD5",
+              "VTLDeviceType": "Tape Drive",
+              "VTLDeviceVendor": "IBM"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Returns a description of virtual tape library (VTL) devices for the specified gateway.",
+        "id": "to-describe-virtual-tape-library-vtl-devices-of-a-single-gateway-1471906071410",
+        "title": "To describe virtual tape library (VTL) devices of a single gateway"
+      }
+    ],
+    "DescribeWorkingStorage": [
+      {
+        "input": {
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B"
+        },
+        "output": {
+          "DiskIds": [
+            "pci-0000:03:00.0-scsi-0:0:0:0",
+            "pci-0000:03:00.0-scsi-0:0:1:0"
+          ],
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B",
+          "WorkingStorageAllocatedInBytes": 2199023255552,
+          "WorkingStorageUsedInBytes": 789207040
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This operation is supported only for the gateway-stored volume architecture. This operation is deprecated in cached-volumes API version (20120630). Use DescribeUploadBuffer instead.",
+        "id": "to-describe-the-working-storage-of-a-gateway-depreciated-1472070842332",
+        "title": "To describe the working storage of a gateway [Depreciated]"
+      }
+    ],
+    "DisableGateway": [
+      {
+        "input": {
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B"
+        },
+        "output": {
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Disables a gateway when the gateway is no longer functioning. Use this operation for a gateway-VTL that is not reachable or not functioning.",
+        "id": "to-disable-a-gateway-when-it-is-no-longer-functioning-1472076046936",
+        "title": "To disable a gateway when it is no longer functioning"
+      }
+    ],
+    "ListGateways": [
+      {
+        "input": {
+          "Limit": 2,
+          "Marker": "1"
+        },
+        "output": {
+          "Gateways": [
+            {
+              "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B"
+            },
+            {
+              "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-23A4567C"
+            }
+          ],
+          "Marker": "1"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Lists gateways owned by an AWS account in a specified region as requested. Results are sorted by gateway ARN up to a maximum of 100 gateways.",
+        "id": "to-lists-region-specific-gateways-per-aws-account-1472077860657",
+        "title": "To lists region specific gateways per AWS account"
+      }
+    ],
+    "ListLocalDisks": [
+      {
+        "input": {
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B"
+        },
+        "output": {
+          "Disks": [
+            {
+              "DiskAllocationType": "CACHE_STORAGE",
+              "DiskId": "pci-0000:03:00.0-scsi-0:0:0:0",
+              "DiskNode": "SCSI(0:0)",
+              "DiskPath": "/dev/sda",
+              "DiskSizeInBytes": 1099511627776,
+              "DiskStatus": "missing"
+            },
+            {
+              "DiskAllocationResource": "",
+              "DiskAllocationType": "UPLOAD_BUFFER",
+              "DiskId": "pci-0000:03:00.0-scsi-0:0:1:0",
+              "DiskNode": "SCSI(0:1)",
+              "DiskPath": "/dev/sdb",
+              "DiskSizeInBytes": 1099511627776,
+              "DiskStatus": "present"
+            }
+          ],
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The request returns a list of all disks, specifying which are configured as working storage, cache storage, or stored volume or not configured at all.",
+        "id": "to-list-the-gateways-local-disks-1472079564618",
+        "title": "To list the gateway's local disks"
+      }
+    ],
+    "ListTagsForResource": [
+      {
+        "input": {
+          "Limit": 1,
+          "Marker": "1",
+          "ResourceARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-11A2222B"
+        },
+        "output": {
+          "Marker": "1",
+          "ResourceARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-11A2222B",
+          "Tags": [
+            {
+              "Key": "Dev Gatgeway Region",
+              "Value": "East Coast"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Lists the tags that have been added to the specified resource.",
+        "id": "to-list-tags-that-have-been-added-to-a-resource-1472080268972",
+        "title": "To list tags that have been added to a resource"
+      }
+    ],
+    "ListVolumeRecoveryPoints": [
+      {
+        "input": {
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B"
+        },
+        "output": {
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B",
+          "VolumeRecoveryPointInfos": [
+            {
+              "VolumeARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B/volume/vol-1122AABB",
+              "VolumeRecoveryPointTime": "2012-09-04T21:08:44.627Z",
+              "VolumeSizeInBytes": 536870912000
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Lists the recovery points for a specified gateway in which all data of the volume is consistent and can be used to create a snapshot.",
+        "id": "to-list-recovery-points-for-a-gateway-1472143015088",
+        "title": "To list recovery points for a gateway"
+      }
+    ],
+    "ListVolumes": [
+      {
+        "input": {
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B",
+          "Limit": 2,
+          "Marker": "1"
+        },
+        "output": {
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B",
+          "Marker": "1",
+          "VolumeInfos": [
+            {
+              "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B",
+              "GatewayId": "sgw-12A3456B",
+              "VolumeARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B/volume/vol-1122AABB",
+              "VolumeId": "vol-1122AABB",
+              "VolumeSizeInBytes": 107374182400,
+              "VolumeType": "STORED"
+            },
+            {
+              "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-13B4567C",
+              "GatewayId": "sgw-gw-13B4567C",
+              "VolumeARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-13B4567C/volume/vol-3344CCDD",
+              "VolumeId": "vol-1122AABB",
+              "VolumeSizeInBytes": 107374182400,
+              "VolumeType": "STORED"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Lists the iSCSI stored volumes of a gateway. Results are sorted by volume ARN up to a maximum of 100 volumes.",
+        "id": "to-list-the-iscsi-stored-volumes-of-a-gateway-1472145723653",
+        "title": "To list the iSCSI stored volumes of a gateway"
+      }
+    ],
+    "RemoveTagsFromResource": [
+      {
+        "input": {
+          "ResourceARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-11A2222B",
+          "TagKeys": [
+            "Dev Gatgeway Region",
+            "East Coast"
+          ]
+        },
+        "output": {
+          "ResourceARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-11A2222B"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Lists the iSCSI stored volumes of a gateway. Removes one or more tags from the specified resource.",
+        "id": "to-remove-tags-from-a-resource-1472147210553",
+        "title": "To remove tags from a resource"
+      }
+    ],
+    "ResetCache": [
+      {
+        "input": {
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-13B4567C"
+        },
+        "output": {
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-13B4567C"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Resets all cache disks that have encountered a error and makes the disks available for reconfiguration as cache storage.",
+        "id": "to-reset-cache-disks-in-error-status-1472148909807",
+        "title": "To reset cache disks in error status"
+      }
+    ],
+    "RetrieveTapeArchive": [
+      {
+        "input": {
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:999999999999:gateway/sgw-12A3456B",
+          "TapeARN": "arn:aws:storagegateway:us-east-1:999999999999:tape/TEST0AA2AF"
+        },
+        "output": {
+          "TapeARN": "arn:aws:storagegateway:us-east-1:999999999999:tape/TEST0AA2AF"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Retrieves an archived virtual tape from the virtual tape shelf (VTS) to a gateway-VTL. Virtual tapes archived in the VTS are not associated with any gateway.",
+        "id": "to-retrieve-an-archived-tape-from-the-vts-1472149812358",
+        "title": "To retrieve an archived tape from the VTS"
+      }
+    ],
+    "RetrieveTapeRecoveryPoint": [
+      {
+        "input": {
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:999999999999:gateway/sgw-12A3456B",
+          "TapeARN": "arn:aws:storagegateway:us-east-1:999999999999:tape/TEST0AA2AF"
+        },
+        "output": {
+          "TapeARN": "arn:aws:storagegateway:us-east-1:999999999999:tape/TEST0AA2AF"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Retrieves the recovery point for the specified virtual tape.",
+        "id": "to-retrieve-the-recovery-point-of-a-virtual-tape-1472150014805",
+        "title": "To retrieve the recovery point of a virtual tape"
+      }
+    ],
+    "SetLocalConsolePassword": [
+      {
+        "input": {
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:999999999999:gateway/sgw-12A3456B",
+          "LocalConsolePassword": "PassWordMustBeAtLeast6Chars."
+        },
+        "output": {
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:999999999999:gateway/sgw-12A3456B"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Sets the password for your VM local console.",
+        "id": "to-set-a-password-for-your-vm-1472150202632",
+        "title": "To set a password for your VM"
+      }
+    ],
+    "ShutdownGateway": [
+      {
+        "input": {
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:999999999999:gateway/sgw-12A3456B"
+        },
+        "output": {
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:999999999999:gateway/sgw-12A3456B"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This operation shuts down the gateway service component running in the storage gateway's virtual machine (VM) and not the VM.",
+        "id": "to-shut-down-a-gateway-service-1472150508835",
+        "title": "To shut down a gateway service"
+      }
+    ],
+    "StartGateway": [
+      {
+        "input": {
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:999999999999:gateway/sgw-12A3456B"
+        },
+        "output": {
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:999999999999:gateway/sgw-12A3456B"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Starts a gateway service that was previously shut down.",
+        "id": "to-start-a-gateway-service-1472150722315",
+        "title": "To start a gateway service"
+      }
+    ],
+    "UpdateBandwidthRateLimit": [
+      {
+        "input": {
+          "AverageDownloadRateLimitInBitsPerSec": 102400,
+          "AverageUploadRateLimitInBitsPerSec": 51200,
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B"
+        },
+        "output": {
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Updates the bandwidth rate limits of a gateway. Both the upload and download bandwidth rate limit can be set, or either one of the two. If a new limit is not set, the existing rate limit remains.",
+        "id": "to-update-the-bandwidth-rate-limits-of-a-gateway-1472151016202",
+        "title": "To update the bandwidth rate limits of a gateway"
+      }
+    ],
+    "UpdateChapCredentials": [
+      {
+        "input": {
+          "InitiatorName": "iqn.1991-05.com.microsoft:computername.domain.example.com",
+          "SecretToAuthenticateInitiator": "111111111111",
+          "SecretToAuthenticateTarget": "222222222222",
+          "TargetARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B/target/iqn.1997-05.com.amazon:myvolume"
+        },
+        "output": {
+          "InitiatorName": "iqn.1991-05.com.microsoft:computername.domain.example.com",
+          "TargetARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B/target/iqn.1997-05.com.amazon:myvolume"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Updates the Challenge-Handshake Authentication Protocol (CHAP) credentials for a specified iSCSI target.",
+        "id": "to-update-chap-credentials-for-an-iscsi-target-1472151325795",
+        "title": "To update CHAP credentials for an iSCSI target"
+      }
+    ],
+    "UpdateGatewayInformation": [
+      {
+        "input": {
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B",
+          "GatewayName": "MyGateway2",
+          "GatewayTimezone": "GMT-12:00"
+        },
+        "output": {
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B",
+          "GatewayName": ""
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Updates a gateway's metadata, which includes the gateway's name and time zone.",
+        "id": "to-update-a-gateways-metadata-1472151688693",
+        "title": "To update a gateway's metadata"
+      }
+    ],
+    "UpdateGatewaySoftwareNow": [
+      {
+        "input": {
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B"
+        },
+        "output": {
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Updates the gateway virtual machine (VM) software. The request immediately triggers the software update.",
+        "id": "to-update-a-gateways-vm-software-1472152020929",
+        "title": "To update a gateway's VM software"
+      }
+    ],
+    "UpdateMaintenanceStartTime": [
+      {
+        "input": {
+          "DayOfWeek": 2,
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B",
+          "HourOfDay": 0,
+          "MinuteOfHour": 30
+        },
+        "output": {
+          "GatewayARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Updates a gateway's weekly maintenance start time information, including day and time of the week. The maintenance time is in your gateway's time zone.",
+        "id": "to-update-a-gateways-maintenance-start-time-1472152552031",
+        "title": "To update a gateway's maintenance start time"
+      }
+    ],
+    "UpdateSnapshotSchedule": [
+      {
+        "input": {
+          "Description": "Hourly snapshot",
+          "RecurrenceInHours": 1,
+          "StartAt": 0,
+          "VolumeARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B/volume/vol-1122AABB"
+        },
+        "output": {
+          "VolumeARN": "arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B/volume/vol-1122AABB"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Updates a snapshot schedule configured for a gateway volume.",
+        "id": "to-update-a-volume-snapshot-schedule-1472152757068",
+        "title": "To update a volume snapshot schedule"
+      }
+    ],
+    "UpdateVTLDeviceType": [
+      {
+        "input": {
+          "DeviceType": "Medium Changer",
+          "VTLDeviceARN": "arn:aws:storagegateway:us-east-1:999999999999:gateway/sgw-12A3456B/device/AMZN_SGW-1FAD4876_MEDIACHANGER_00001"
+        },
+        "output": {
+          "VTLDeviceARN": "arn:aws:storagegateway:us-east-1:999999999999:gateway/sgw-12A3456B/device/AMZN_SGW-1FAD4876_MEDIACHANGER_00001"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "Updates the type of medium changer in a gateway-VTL after a gateway-VTL is activated.",
+        "id": "to-update-a-vtl-device-type-1472153012967",
+        "title": "To update a VTL device type"
+      }
+    ]
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/storagegateway/2013-06-30/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/storagegateway/2013-06-30/paginators-1.json
new file mode 100644
index 00000000..ef9e79e6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/storagegateway/2013-06-30/paginators-1.json
@@ -0,0 +1,79 @@
+{
+  "pagination": {
+    "DescribeTapeArchives": {
+      "input_token": "Marker",
+      "limit_key": "Limit",
+      "output_token": "Marker",
+      "result_key": "TapeArchives"
+    },
+    "DescribeTapeRecoveryPoints": {
+      "input_token": "Marker",
+      "limit_key": "Limit",
+      "output_token": "Marker",
+      "result_key": "TapeRecoveryPointInfos"
+    },
+    "DescribeTapes": {
+      "input_token": "Marker",
+      "limit_key": "Limit",
+      "output_token": "Marker",
+      "result_key": "Tapes"
+    },
+    "DescribeVTLDevices": {
+      "input_token": "Marker",
+      "limit_key": "Limit",
+      "output_token": "Marker",
+      "result_key": "VTLDevices"
+    },
+    "ListGateways": {
+      "input_token": "Marker",
+      "limit_key": "Limit",
+      "output_token": "Marker",
+      "result_key": "Gateways"
+    },
+    "ListVolumes": {
+      "input_token": "Marker",
+      "limit_key": "Limit",
+      "output_token": "Marker",
+      "result_key": "VolumeInfos"
+    },
+    "ListTapes": {
+      "input_token": "Marker",
+      "limit_key": "Limit",
+      "output_token": "Marker",
+      "result_key": "TapeInfos"
+    },
+    "ListFileShares": {
+      "input_token": "Marker",
+      "limit_key": "Limit",
+      "non_aggregate_keys": [
+        "Marker"
+      ],
+      "output_token": "NextMarker",
+      "result_key": "FileShareInfoList"
+    },
+    "ListTagsForResource": {
+      "input_token": "Marker",
+      "limit_key": "Limit",
+      "non_aggregate_keys": [
+        "ResourceARN"
+      ],
+      "output_token": "Marker",
+      "result_key": "Tags"
+    },
+    "ListTapePools": {
+      "input_token": "Marker",
+      "limit_key": "Limit",
+      "output_token": "Marker",
+      "result_key": "PoolInfos"
+    },
+    "ListFileSystemAssociations": {
+      "input_token": "Marker",
+      "limit_key": "Limit",
+      "non_aggregate_keys": [
+        "Marker"
+      ],
+      "output_token": "NextMarker",
+      "result_key": "FileSystemAssociationSummaryList"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/storagegateway/2013-06-30/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/storagegateway/2013-06-30/service-2.json.gz
new file mode 100644
index 00000000..4d042366
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/storagegateway/2013-06-30/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/sts/2011-06-15/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/sts/2011-06-15/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..c8ceff06
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sts/2011-06-15/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/sts/2011-06-15/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/sts/2011-06-15/examples-1.json
new file mode 100644
index 00000000..7396aef5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sts/2011-06-15/examples-1.json
@@ -0,0 +1,271 @@
+{
+  "version": "1.0",
+  "examples": {
+    "AssumeRole": [
+      {
+        "input": {
+          "ExternalId": "123ABC",
+          "Policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"Stmt1\",\"Effect\":\"Allow\",\"Action\":\"s3:ListAllMyBuckets\",\"Resource\":\"*\"}]}",
+          "RoleArn": "arn:aws:iam::123456789012:role/demo",
+          "RoleSessionName": "testAssumeRoleSession",
+          "Tags": [
+            {
+              "Key": "Project",
+              "Value": "Unicorn"
+            },
+            {
+              "Key": "Team",
+              "Value": "Automation"
+            },
+            {
+              "Key": "Cost-Center",
+              "Value": "12345"
+            }
+          ],
+          "TransitiveTagKeys": [
+            "Project",
+            "Cost-Center"
+          ]
+        },
+        "output": {
+          "AssumedRoleUser": {
+            "Arn": "arn:aws:sts::123456789012:assumed-role/demo/Bob",
+            "AssumedRoleId": "ARO123EXAMPLE123:Bob"
+          },
+          "Credentials": {
+            "AccessKeyId": "AKIAIOSFODNN7EXAMPLE",
+            "Expiration": "2011-07-15T23:28:33.359Z",
+            "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY",
+            "SessionToken": "AQoDYXdzEPT//////////wEXAMPLEtc764bNrC9SAPBSM22wDOk4x4HIZ8j4FZTwdQWLWsKWHGBuFqwAeMicRXmxfpSPfIeoIYRqTflfKD8YUuwthAx7mSEI/qkPpKPi/kMcGdQrmGdeehM4IC1NtBmUpp2wUE8phUZampKsburEDy0KPkyQDYwT7WZ0wq5VSXDvp75YU9HFvlRd8Tx6q6fE8YQcHNVXAkiY9q6d+xo0rKwT38xVqr7ZD0u0iPPkUL64lIZbqBAz+scqKmlzm8FDrypNC9Yjc8fPOLn9FX9KSYvKTr4rvx3iSIlTJabIQwj2ICCR/oLxBA=="
+          },
+          "PackedPolicySize": 8
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "",
+        "id": "to-assume-a-role-1480532402212",
+        "title": "To assume a role"
+      }
+    ],
+    "AssumeRoleWithSAML": [
+      {
+        "input": {
+          "DurationSeconds": 3600,
+          "PrincipalArn": "arn:aws:iam::123456789012:saml-provider/SAML-test",
+          "RoleArn": "arn:aws:iam::123456789012:role/TestSaml",
+          "SAMLAssertion": "VERYLONGENCODEDASSERTIONEXAMPLExzYW1sOkF1ZGllbmNlPmJsYW5rPC9zYW1sOkF1ZGllbmNlPjwvc2FtbDpBdWRpZW5jZVJlc3RyaWN0aW9uPjwvc2FtbDpDb25kaXRpb25zPjxzYW1sOlN1YmplY3Q+PHNhbWw6TmFtZUlEIEZvcm1hdD0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOm5hbWVpZC1mb3JtYXQ6dHJhbnNpZW50Ij5TYW1sRXhhbXBsZTwvc2FtbDpOYW1lSUQ+PHNhbWw6U3ViamVjdENvbmZpcm1hdGlvbiBNZXRob2Q9InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDpjbTpiZWFyZXIiPjxzYW1sOlN1YmplY3RDb25maXJtYXRpb25EYXRhIE5vdE9uT3JBZnRlcj0iMjAxOS0xMS0wMVQyMDoyNTowNS4xNDVaIiBSZWNpcGllbnQ9Imh0dHBzOi8vc2lnbmluLmF3cy5hbWF6b24uY29tL3NhbWwiLz48L3NhbWw6U3ViamVjdENvbmZpcm1hdGlvbj48L3NhbWw6U3ViamVjdD48c2FtbDpBdXRoblN0YXRlbWVudCBBdXRoPD94bWwgdmpSZXNwb25zZT4="
+        },
+        "output": {
+          "AssumedRoleUser": {
+            "Arn": "arn:aws:sts::123456789012:assumed-role/TestSaml",
+            "AssumedRoleId": "ARO456EXAMPLE789:TestSaml"
+          },
+          "Audience": "https://signin.aws.amazon.com/saml",
+          "Credentials": {
+            "AccessKeyId": "ASIAV3ZUEFP6EXAMPLE",
+            "Expiration": "2019-11-01T20:26:47Z",
+            "SecretAccessKey": "8P+SQvWIuLnKhh8d++jpw0nNmQRBZvNEXAMPLEKEY",
+            "SessionToken": "IQoJb3JpZ2luX2VjEOz////////////////////wEXAMPLEtMSJHMEUCIDoKK3JH9uGQE1z0sINr5M4jk+Na8KHDcCYRVjJCZEvOAiEA3OvJGtw1EcViOleS2vhs8VdCKFJQWPQrmGdeehM4IC1NtBmUpp2wUE8phUZampKsburEDy0KPkyQDYwT7WZ0wq5VSXDvp75YU9HFvlRd8Tx6q6fE8YQcHNVXAkiY9q6d+xo0rKwT38xVqr7ZD0u0iPPkUL64lIZbqBAz+scqKmlzm8FDrypNC9Yjc8fPOLn9FX9KSYvKTr4rvx3iSIlTJabIQwj2ICCR/oLxBA=="
+          },
+          "Issuer": "https://integ.example.com/idp/shibboleth",
+          "NameQualifier": "SbdGOnUkh1i4+EXAMPLExL/jEvs=",
+          "PackedPolicySize": 6,
+          "Subject": "SamlExample",
+          "SubjectType": "transient"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "",
+        "id": "to-assume-role-with-saml-14882749597814",
+        "title": "To assume a role using a SAML assertion"
+      }
+    ],
+    "AssumeRoleWithWebIdentity": [
+      {
+        "input": {
+          "DurationSeconds": 3600,
+          "Policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"Stmt1\",\"Effect\":\"Allow\",\"Action\":\"s3:ListAllMyBuckets\",\"Resource\":\"*\"}]}",
+          "ProviderId": "www.amazon.com",
+          "RoleArn": "arn:aws:iam::123456789012:role/FederatedWebIdentityRole",
+          "RoleSessionName": "app1",
+          "WebIdentityToken": "Atza%7CIQEBLjAsAhRFiXuWpUXuRvQ9PZL3GMFcYevydwIUFAHZwXZXXXXXXXXJnrulxKDHwy87oGKPznh0D6bEQZTSCzyoCtL_8S07pLpr0zMbn6w1lfVZKNTBdDansFBmtGnIsIapjI6xKR02Yc_2bQ8LZbUXSGm6Ry6_BG7PrtLZtj_dfCTj92xNGed-CrKqjG7nPBjNIL016GGvuS5gSvPRUxWES3VYfm1wl7WTI7jn-Pcb6M-buCgHhFOzTQxod27L9CqnOLio7N3gZAGpsp6n1-AJBOCJckcyXe2c6uD0srOJeZlKUm2eTDVMf8IehDVI0r1QOnTV6KzzAI3OY87Vd_cVMQ"
+        },
+        "output": {
+          "AssumedRoleUser": {
+            "Arn": "arn:aws:sts::123456789012:assumed-role/FederatedWebIdentityRole/app1",
+            "AssumedRoleId": "AROACLKWSDQRAOEXAMPLE:app1"
+          },
+          "Audience": "client.5498841531868486423.1548@apps.example.com",
+          "Credentials": {
+            "AccessKeyId": "AKIAIOSFODNN7EXAMPLE",
+            "Expiration": "2014-10-24T23:00:23Z",
+            "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY",
+            "SessionToken": "AQoDYXdzEE0a8ANXXXXXXXXNO1ewxE5TijQyp+IEXAMPLE"
+          },
+          "PackedPolicySize": 123,
+          "Provider": "www.amazon.com",
+          "SubjectFromWebIdentityToken": "amzn1.account.AF6RHO7KZU5XRVQJGXK6HEXAMPLE"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "",
+        "id": "to-assume-a-role-as-an-openid-connect-federated-user-1480533445696",
+        "title": "To assume a role as an OpenID Connect-federated user"
+      }
+    ],
+    "DecodeAuthorizationMessage": [
+      {
+        "input": {
+          "EncodedMessage": "<encoded-message>"
+        },
+        "output": {
+          "DecodedMessage": "{\"allowed\": \"false\",\"explicitDeny\": \"false\",\"matchedStatements\": \"\",\"failures\": \"\",\"context\": {\"principal\": {\"id\": \"AIDACKCEVSQ6C2EXAMPLE\",\"name\": \"Bob\",\"arn\": \"arn:aws:iam::123456789012:user/Bob\"},\"action\": \"ec2:StopInstances\",\"resource\": \"arn:aws:ec2:us-east-1:123456789012:instance/i-dd01c9bd\",\"conditions\": [{\"item\": {\"key\": \"ec2:Tenancy\",\"values\": [\"default\"]},{\"item\": {\"key\": \"ec2:ResourceTag/elasticbeanstalk:environment-name\",\"values\": [\"Default-Environment\"]}},(Additional items ...)]}}"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "",
+        "id": "to-decode-information-about-an-authorization-status-of-a-request-1480533854499",
+        "title": "To decode information about an authorization status of a request"
+      }
+    ],
+    "GetCallerIdentity": [
+      {
+        "input": {
+        },
+        "output": {
+          "Account": "123456789012",
+          "Arn": "arn:aws:iam::123456789012:user/Alice",
+          "UserId": "AKIAI44QH8DHBEXAMPLE"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example shows a request and response made with the credentials for a user named Alice in the AWS account 123456789012.",
+        "id": "to-get-details-about-a-calling-iam-user-1480540050376",
+        "title": "To get details about a calling IAM user"
+      },
+      {
+        "input": {
+        },
+        "output": {
+          "Account": "123456789012",
+          "Arn": "arn:aws:sts::123456789012:assumed-role/my-role-name/my-role-session-name",
+          "UserId": "AKIAI44QH8DHBEXAMPLE:my-role-session-name"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example shows a request and response made with temporary credentials created by AssumeRole. The name of the assumed role is my-role-name, and the RoleSessionName is set to my-role-session-name.",
+        "id": "to-get-details-about-a-calling-user-federated-with-assumerole-1480540158545",
+        "title": "To get details about a calling user federated with AssumeRole"
+      },
+      {
+        "input": {
+        },
+        "output": {
+          "Account": "123456789012",
+          "Arn": "arn:aws:sts::123456789012:federated-user/my-federated-user-name",
+          "UserId": "123456789012:my-federated-user-name"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "This example shows a request and response made with temporary credentials created by using GetFederationToken. The Name parameter is set to my-federated-user-name.",
+        "id": "to-get-details-about-a-calling-user-federated-with-getfederationtoken-1480540231316",
+        "title": "To get details about a calling user federated with GetFederationToken"
+      }
+    ],
+    "GetFederationToken": [
+      {
+        "input": {
+          "DurationSeconds": 3600,
+          "Name": "testFedUserSession",
+          "Policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"Stmt1\",\"Effect\":\"Allow\",\"Action\":\"s3:ListAllMyBuckets\",\"Resource\":\"*\"}]}",
+          "Tags": [
+            {
+              "Key": "Project",
+              "Value": "Pegasus"
+            },
+            {
+              "Key": "Cost-Center",
+              "Value": "98765"
+            }
+          ]
+        },
+        "output": {
+          "Credentials": {
+            "AccessKeyId": "AKIAIOSFODNN7EXAMPLE",
+            "Expiration": "2011-07-15T23:28:33.359Z",
+            "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY",
+            "SessionToken": "AQoDYXdzEPT//////////wEXAMPLEtc764bNrC9SAPBSM22wDOk4x4HIZ8j4FZTwdQWLWsKWHGBuFqwAeMicRXmxfpSPfIeoIYRqTflfKD8YUuwthAx7mSEI/qkPpKPi/kMcGdQrmGdeehM4IC1NtBmUpp2wUE8phUZampKsburEDy0KPkyQDYwT7WZ0wq5VSXDvp75YU9HFvlRd8Tx6q6fE8YQcHNVXAkiY9q6d+xo0rKwT38xVqr7ZD0u0iPPkUL64lIZbqBAz+scqKmlzm8FDrypNC9Yjc8fPOLn9FX9KSYvKTr4rvx3iSIlTJabIQwj2ICCR/oLxBA=="
+          },
+          "FederatedUser": {
+            "Arn": "arn:aws:sts::123456789012:federated-user/Bob",
+            "FederatedUserId": "123456789012:Bob"
+          },
+          "PackedPolicySize": 8
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "",
+        "id": "to-get-temporary-credentials-for-a-role-by-using-getfederationtoken-1480540749900",
+        "title": "To get temporary credentials for a role by using GetFederationToken"
+      }
+    ],
+    "GetSessionToken": [
+      {
+        "input": {
+          "DurationSeconds": 3600,
+          "SerialNumber": "YourMFASerialNumber",
+          "TokenCode": "123456"
+        },
+        "output": {
+          "Credentials": {
+            "AccessKeyId": "AKIAIOSFODNN7EXAMPLE",
+            "Expiration": "2011-07-11T19:55:29.611Z",
+            "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY",
+            "SessionToken": "AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4OlgkBN9bkUDNCJiBeb/AXlzBBko7b15fjrBs2+cTQtpZ3CYWFXG8C5zqx37wnOE49mRl/+OtkIKGO7fAE"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "",
+        "id": "to-get-temporary-credentials-for-an-iam-user-or-an-aws-account-1480540814038",
+        "title": "To get temporary credentials for an IAM user or an AWS account"
+      }
+    ]
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/sts/2011-06-15/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/sts/2011-06-15/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sts/2011-06-15/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/sts/2011-06-15/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/sts/2011-06-15/service-2.json.gz
new file mode 100644
index 00000000..27988cc6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/sts/2011-06-15/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/supplychain/2024-01-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/supplychain/2024-01-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..bd4c8512
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/supplychain/2024-01-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/supplychain/2024-01-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/supplychain/2024-01-01/paginators-1.json
new file mode 100644
index 00000000..8ca1db6b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/supplychain/2024-01-01/paginators-1.json
@@ -0,0 +1,22 @@
+{
+  "pagination": {
+    "ListDataIntegrationFlows": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "flows"
+    },
+    "ListDataLakeDatasets": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "datasets"
+    },
+    "ListInstances": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "instances"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/supplychain/2024-01-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/supplychain/2024-01-01/service-2.json.gz
new file mode 100644
index 00000000..820b768d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/supplychain/2024-01-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/support-app/2021-08-20/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/support-app/2021-08-20/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..6eb60e85
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/support-app/2021-08-20/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/support-app/2021-08-20/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/support-app/2021-08-20/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/support-app/2021-08-20/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/support-app/2021-08-20/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/support-app/2021-08-20/service-2.json.gz
new file mode 100644
index 00000000..1558d146
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/support-app/2021-08-20/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/support/2013-04-15/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/support/2013-04-15/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..e472d9be
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/support/2013-04-15/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/support/2013-04-15/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/support/2013-04-15/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/support/2013-04-15/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/support/2013-04-15/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/support/2013-04-15/paginators-1.json
new file mode 100644
index 00000000..11bdb62c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/support/2013-04-15/paginators-1.json
@@ -0,0 +1,16 @@
+{
+  "pagination": {
+    "DescribeCases": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "cases"
+    },
+    "DescribeCommunications": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "communications"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/support/2013-04-15/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/support/2013-04-15/service-2.json.gz
new file mode 100644
index 00000000..df3bb85b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/support/2013-04-15/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/swf/2012-01-25/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/swf/2012-01-25/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..e2008f92
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/swf/2012-01-25/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/swf/2012-01-25/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/swf/2012-01-25/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/swf/2012-01-25/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/swf/2012-01-25/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/swf/2012-01-25/paginators-1.json
new file mode 100644
index 00000000..e92bfebe
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/swf/2012-01-25/paginators-1.json
@@ -0,0 +1,53 @@
+{
+  "pagination": {
+    "GetWorkflowExecutionHistory": {
+      "limit_key": "maximumPageSize",
+      "input_token": "nextPageToken",
+      "output_token": "nextPageToken",
+      "result_key": "events"
+    },
+    "ListActivityTypes": {
+      "limit_key": "maximumPageSize",
+      "input_token": "nextPageToken",
+      "output_token": "nextPageToken",
+      "result_key": "typeInfos"
+    },
+    "ListClosedWorkflowExecutions": {
+      "limit_key": "maximumPageSize",
+      "input_token": "nextPageToken",
+      "output_token": "nextPageToken",
+      "result_key": "executionInfos"
+    },
+    "ListDomains": {
+      "limit_key": "maximumPageSize",
+      "input_token": "nextPageToken",
+      "output_token": "nextPageToken",
+      "result_key": "domainInfos"
+    },
+    "ListOpenWorkflowExecutions": {
+      "limit_key": "maximumPageSize",
+      "input_token": "nextPageToken",
+      "output_token": "nextPageToken",
+      "result_key": "executionInfos"
+    },
+    "ListWorkflowTypes": {
+      "limit_key": "maximumPageSize",
+      "input_token": "nextPageToken",
+      "output_token": "nextPageToken",
+      "result_key": "typeInfos"
+    },
+    "PollForDecisionTask": {
+      "limit_key": "maximumPageSize",
+      "input_token": "nextPageToken",
+      "output_token": "nextPageToken",
+      "result_key": "events",
+      "non_aggregate_keys": [
+        "taskToken",
+        "startedEventId",
+        "workflowExecution",
+        "workflowType",
+        "previousStartedEventId"
+      ]
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/swf/2012-01-25/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/swf/2012-01-25/service-2.json.gz
new file mode 100644
index 00000000..a561f0a1
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/swf/2012-01-25/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/synthetics/2017-10-11/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/synthetics/2017-10-11/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..fd6bf17b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/synthetics/2017-10-11/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/synthetics/2017-10-11/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/synthetics/2017-10-11/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/synthetics/2017-10-11/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/synthetics/2017-10-11/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/synthetics/2017-10-11/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/synthetics/2017-10-11/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/synthetics/2017-10-11/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/synthetics/2017-10-11/service-2.json.gz
new file mode 100644
index 00000000..066edd6a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/synthetics/2017-10-11/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/taxsettings/2018-05-10/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/taxsettings/2018-05-10/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..2b4c14ec
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/taxsettings/2018-05-10/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/taxsettings/2018-05-10/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/taxsettings/2018-05-10/paginators-1.json
new file mode 100644
index 00000000..bd57abc9
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/taxsettings/2018-05-10/paginators-1.json
@@ -0,0 +1,22 @@
+{
+  "pagination": {
+    "ListTaxRegistrations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "accountDetails"
+    },
+    "ListSupplementalTaxRegistrations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "taxRegistrations"
+    },
+    "ListTaxExemptions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "taxExemptionDetailsMap"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/taxsettings/2018-05-10/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/taxsettings/2018-05-10/service-2.json.gz
new file mode 100644
index 00000000..20b18d08
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/taxsettings/2018-05-10/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/textract/2018-06-27/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/textract/2018-06-27/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..5bae26c7
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/textract/2018-06-27/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/textract/2018-06-27/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/textract/2018-06-27/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/textract/2018-06-27/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/textract/2018-06-27/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/textract/2018-06-27/paginators-1.json
new file mode 100644
index 00000000..f0d04050
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/textract/2018-06-27/paginators-1.json
@@ -0,0 +1,16 @@
+{
+  "pagination": {
+    "ListAdapterVersions": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "AdapterVersions"
+    },
+    "ListAdapters": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "Adapters"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/textract/2018-06-27/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/textract/2018-06-27/service-2.json.gz
new file mode 100644
index 00000000..72c9ba7c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/textract/2018-06-27/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/timestream-influxdb/2023-01-27/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/timestream-influxdb/2023-01-27/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..823aad3a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/timestream-influxdb/2023-01-27/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/timestream-influxdb/2023-01-27/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/timestream-influxdb/2023-01-27/paginators-1.json
new file mode 100644
index 00000000..e0b4f3c5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/timestream-influxdb/2023-01-27/paginators-1.json
@@ -0,0 +1,28 @@
+{
+  "pagination": {
+    "ListDbInstances": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListDbParameterGroups": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListDbClusters": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListDbInstancesForCluster": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/timestream-influxdb/2023-01-27/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/timestream-influxdb/2023-01-27/service-2.json.gz
new file mode 100644
index 00000000..6635e9b6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/timestream-influxdb/2023-01-27/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/timestream-query/2018-11-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/timestream-query/2018-11-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..f6fc5c02
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/timestream-query/2018-11-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/timestream-query/2018-11-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/timestream-query/2018-11-01/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/timestream-query/2018-11-01/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/timestream-query/2018-11-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/timestream-query/2018-11-01/paginators-1.json
new file mode 100644
index 00000000..a20456ba
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/timestream-query/2018-11-01/paginators-1.json
@@ -0,0 +1,28 @@
+{
+  "pagination": {
+    "Query": {
+      "input_token": "NextToken",
+      "limit_key": "MaxRows",
+      "non_aggregate_keys": [
+        "ColumnInfo",
+        "QueryId",
+        "QueryStatus",
+        "QueryInsightsResponse"
+      ],
+      "output_token": "NextToken",
+      "result_key": "Rows"
+    },
+    "ListScheduledQueries": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ScheduledQueries"
+    },
+    "ListTagsForResource": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Tags"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/timestream-query/2018-11-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/timestream-query/2018-11-01/service-2.json.gz
new file mode 100644
index 00000000..4a6aed5c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/timestream-query/2018-11-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/timestream-write/2018-11-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/timestream-write/2018-11-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..c1c6d35a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/timestream-write/2018-11-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/timestream-write/2018-11-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/timestream-write/2018-11-01/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/timestream-write/2018-11-01/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/timestream-write/2018-11-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/timestream-write/2018-11-01/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/timestream-write/2018-11-01/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/timestream-write/2018-11-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/timestream-write/2018-11-01/service-2.json.gz
new file mode 100644
index 00000000..df7b6414
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/timestream-write/2018-11-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/tnb/2008-10-21/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/tnb/2008-10-21/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..4f9a2fef
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/tnb/2008-10-21/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/tnb/2008-10-21/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/tnb/2008-10-21/paginators-1.json
new file mode 100644
index 00000000..18ac477b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/tnb/2008-10-21/paginators-1.json
@@ -0,0 +1,34 @@
+{
+  "pagination": {
+    "ListSolFunctionInstances": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "functionInstances"
+    },
+    "ListSolFunctionPackages": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "functionPackages"
+    },
+    "ListSolNetworkInstances": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "networkInstances"
+    },
+    "ListSolNetworkOperations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "networkOperations"
+    },
+    "ListSolNetworkPackages": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "networkPackages"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/tnb/2008-10-21/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/tnb/2008-10-21/service-2.json.gz
new file mode 100644
index 00000000..392c6fdf
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/tnb/2008-10-21/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/transcribe/2017-10-26/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/transcribe/2017-10-26/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..9816f9e8
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/transcribe/2017-10-26/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/transcribe/2017-10-26/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/transcribe/2017-10-26/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/transcribe/2017-10-26/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/transcribe/2017-10-26/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/transcribe/2017-10-26/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/transcribe/2017-10-26/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/transcribe/2017-10-26/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/transcribe/2017-10-26/service-2.json.gz
new file mode 100644
index 00000000..9580b2f6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/transcribe/2017-10-26/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/transfer/2018-11-05/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/transfer/2018-11-05/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..140ab147
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/transfer/2018-11-05/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/transfer/2018-11-05/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/transfer/2018-11-05/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/transfer/2018-11-05/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/transfer/2018-11-05/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/transfer/2018-11-05/paginators-1.json
new file mode 100644
index 00000000..a343b613
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/transfer/2018-11-05/paginators-1.json
@@ -0,0 +1,94 @@
+{
+  "pagination": {
+    "ListServers": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Servers"
+    },
+    "ListAccesses": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "non_aggregate_keys": [
+        "ServerId"
+      ],
+      "output_token": "NextToken",
+      "result_key": "Accesses"
+    },
+    "ListExecutions": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "non_aggregate_keys": [
+        "WorkflowId"
+      ],
+      "output_token": "NextToken",
+      "result_key": "Executions"
+    },
+    "ListSecurityPolicies": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "SecurityPolicyNames"
+    },
+    "ListTagsForResource": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "non_aggregate_keys": [
+        "Arn"
+      ],
+      "output_token": "NextToken",
+      "result_key": "Tags"
+    },
+    "ListUsers": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "non_aggregate_keys": [
+        "ServerId"
+      ],
+      "output_token": "NextToken",
+      "result_key": "Users"
+    },
+    "ListWorkflows": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Workflows"
+    },
+    "ListAgreements": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Agreements"
+    },
+    "ListCertificates": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Certificates"
+    },
+    "ListConnectors": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Connectors"
+    },
+    "ListProfiles": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Profiles"
+    },
+    "ListFileTransferResults": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "FileTransferResults"
+    },
+    "ListWebApps": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "WebApps"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/transfer/2018-11-05/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/transfer/2018-11-05/service-2.json.gz
new file mode 100644
index 00000000..55754635
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/transfer/2018-11-05/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/transfer/2018-11-05/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/transfer/2018-11-05/waiters-2.json
new file mode 100644
index 00000000..ddcd604d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/transfer/2018-11-05/waiters-2.json
@@ -0,0 +1,37 @@
+{
+  "version" : 2,
+  "waiters" : {
+    "ServerOffline" : {
+      "delay" : 30,
+      "maxAttempts" : 120,
+      "operation" : "DescribeServer",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "Server.State",
+        "state" : "success",
+        "expected" : "OFFLINE"
+      }, {
+        "matcher" : "path",
+        "argument" : "Server.State",
+        "state" : "failure",
+        "expected" : "STOP_FAILED"
+      } ]
+    },
+    "ServerOnline" : {
+      "delay" : 30,
+      "maxAttempts" : 120,
+      "operation" : "DescribeServer",
+      "acceptors" : [ {
+        "matcher" : "path",
+        "argument" : "Server.State",
+        "state" : "success",
+        "expected" : "ONLINE"
+      }, {
+        "matcher" : "path",
+        "argument" : "Server.State",
+        "state" : "failure",
+        "expected" : "START_FAILED"
+      } ]
+    }
+  }
+}
\ No newline at end of file
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/translate/2017-07-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/translate/2017-07-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..bce6c991
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/translate/2017-07-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/translate/2017-07-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/translate/2017-07-01/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/translate/2017-07-01/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/translate/2017-07-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/translate/2017-07-01/paginators-1.json
new file mode 100644
index 00000000..6898cd44
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/translate/2017-07-01/paginators-1.json
@@ -0,0 +1,10 @@
+{
+  "pagination": {
+    "ListTerminologies": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "TerminologyPropertiesList"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/translate/2017-07-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/translate/2017-07-01/service-2.json.gz
new file mode 100644
index 00000000..d96c8221
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/translate/2017-07-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/trustedadvisor/2022-09-15/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/trustedadvisor/2022-09-15/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..1f8d7726
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/trustedadvisor/2022-09-15/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/trustedadvisor/2022-09-15/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/trustedadvisor/2022-09-15/paginators-1.json
new file mode 100644
index 00000000..0ac4c7b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/trustedadvisor/2022-09-15/paginators-1.json
@@ -0,0 +1,40 @@
+{
+  "pagination": {
+    "ListChecks": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "checkSummaries"
+    },
+    "ListOrganizationRecommendationAccounts": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "accountRecommendationLifecycleSummaries"
+    },
+    "ListOrganizationRecommendationResources": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "organizationRecommendationResourceSummaries"
+    },
+    "ListOrganizationRecommendations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "organizationRecommendationSummaries"
+    },
+    "ListRecommendationResources": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "recommendationResourceSummaries"
+    },
+    "ListRecommendations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "recommendationSummaries"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/trustedadvisor/2022-09-15/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/trustedadvisor/2022-09-15/service-2.json.gz
new file mode 100644
index 00000000..c3ce2f95
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/trustedadvisor/2022-09-15/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/verifiedpermissions/2021-12-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/verifiedpermissions/2021-12-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..9128a6e9
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/verifiedpermissions/2021-12-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/verifiedpermissions/2021-12-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/verifiedpermissions/2021-12-01/paginators-1.json
new file mode 100644
index 00000000..4314d715
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/verifiedpermissions/2021-12-01/paginators-1.json
@@ -0,0 +1,28 @@
+{
+  "pagination": {
+    "ListIdentitySources": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "identitySources"
+    },
+    "ListPolicies": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "policies"
+    },
+    "ListPolicyStores": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "policyStores"
+    },
+    "ListPolicyTemplates": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "policyTemplates"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/verifiedpermissions/2021-12-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/verifiedpermissions/2021-12-01/service-2.json.gz
new file mode 100644
index 00000000..2216d487
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/verifiedpermissions/2021-12-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/verifiedpermissions/2021-12-01/waiters-2.json b/.venv/lib/python3.12/site-packages/botocore/data/verifiedpermissions/2021-12-01/waiters-2.json
new file mode 100644
index 00000000..13f60ee6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/verifiedpermissions/2021-12-01/waiters-2.json
@@ -0,0 +1,5 @@
+{
+  "version": 2,
+  "waiters": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/voice-id/2021-09-27/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/voice-id/2021-09-27/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..2b010efe
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/voice-id/2021-09-27/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/voice-id/2021-09-27/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/voice-id/2021-09-27/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/voice-id/2021-09-27/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/voice-id/2021-09-27/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/voice-id/2021-09-27/paginators-1.json
new file mode 100644
index 00000000..49dd7cca
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/voice-id/2021-09-27/paginators-1.json
@@ -0,0 +1,40 @@
+{
+  "pagination": {
+    "ListDomains": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "DomainSummaries"
+    },
+    "ListFraudsterRegistrationJobs": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "JobSummaries"
+    },
+    "ListSpeakerEnrollmentJobs": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "JobSummaries"
+    },
+    "ListSpeakers": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "SpeakerSummaries"
+    },
+    "ListFraudsters": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "FraudsterSummaries"
+    },
+    "ListWatchlists": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "WatchlistSummaries"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/voice-id/2021-09-27/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/voice-id/2021-09-27/service-2.json.gz
new file mode 100644
index 00000000..c641a7d5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/voice-id/2021-09-27/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/vpc-lattice/2022-11-30/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/vpc-lattice/2022-11-30/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..6a2692e3
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/vpc-lattice/2022-11-30/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/vpc-lattice/2022-11-30/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/vpc-lattice/2022-11-30/paginators-1.json
new file mode 100644
index 00000000..36688e97
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/vpc-lattice/2022-11-30/paginators-1.json
@@ -0,0 +1,88 @@
+{
+  "pagination": {
+    "ListAccessLogSubscriptions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListListeners": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListRules": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListServiceNetworkServiceAssociations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListServiceNetworkVpcAssociations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListServiceNetworks": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListServices": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListTargetGroups": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListTargets": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListResourceConfigurations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListResourceEndpointAssociations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListResourceGateways": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListServiceNetworkResourceAssociations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    },
+    "ListServiceNetworkVpcEndpointAssociations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "items"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/vpc-lattice/2022-11-30/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/vpc-lattice/2022-11-30/service-2.json.gz
new file mode 100644
index 00000000..7ff7e4bf
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/vpc-lattice/2022-11-30/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/waf-regional/2016-11-28/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/waf-regional/2016-11-28/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..5f8aa460
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/waf-regional/2016-11-28/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/waf-regional/2016-11-28/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/waf-regional/2016-11-28/examples-1.json
new file mode 100644
index 00000000..eee5b6f4
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/waf-regional/2016-11-28/examples-1.json
@@ -0,0 +1,1017 @@
+{
+  "version": "1.0",
+  "examples": {
+    "CreateIPSet": [
+      {
+        "input": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+          "Name": "MyIPSetFriendlyName"
+        },
+        "output": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+          "IPSet": {
+            "IPSetDescriptors": [
+              {
+                "Type": "IPV4",
+                "Value": "192.0.2.44/32"
+              }
+            ],
+            "IPSetId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5",
+            "Name": "MyIPSetFriendlyName"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example creates an IP match set named MyIPSetFriendlyName.",
+        "id": "createipset-1472501003122",
+        "title": "To create an IP set"
+      }
+    ],
+    "CreateRule": [
+      {
+        "input": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+          "MetricName": "WAFByteHeaderRule",
+          "Name": "WAFByteHeaderRule"
+        },
+        "output": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+          "Rule": {
+            "MetricName": "WAFByteHeaderRule",
+            "Name": "WAFByteHeaderRule",
+            "Predicates": [
+              {
+                "DataId": "MyByteMatchSetID",
+                "Negated": false,
+                "Type": "ByteMatch"
+              }
+            ],
+            "RuleId": "WAFRule-1-Example"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example creates a rule named WAFByteHeaderRule.",
+        "id": "createrule-1474072675555",
+        "title": "To create a rule"
+      }
+    ],
+    "CreateSizeConstraintSet": [
+      {
+        "input": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+          "Name": "MySampleSizeConstraintSet"
+        },
+        "output": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+          "SizeConstraintSet": {
+            "Name": "MySampleSizeConstraintSet",
+            "SizeConstraintSetId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5",
+            "SizeConstraints": [
+              {
+                "ComparisonOperator": "GT",
+                "FieldToMatch": {
+                  "Type": "QUERY_STRING"
+                },
+                "Size": 0,
+                "TextTransformation": "NONE"
+              }
+            ]
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example creates size constraint set named MySampleSizeConstraintSet.",
+        "id": "createsizeconstraint-1474299140754",
+        "title": "To create a size constraint"
+      }
+    ],
+    "CreateSqlInjectionMatchSet": [
+      {
+        "input": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+          "Name": "MySQLInjectionMatchSet"
+        },
+        "output": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+          "SqlInjectionMatchSet": {
+            "Name": "MySQLInjectionMatchSet",
+            "SqlInjectionMatchSetId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5",
+            "SqlInjectionMatchTuples": [
+              {
+                "FieldToMatch": {
+                  "Type": "QUERY_STRING"
+                },
+                "TextTransformation": "URL_DECODE"
+              }
+            ]
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example creates a SQL injection match set named MySQLInjectionMatchSet.",
+        "id": "createsqlinjectionmatchset-1474492796105",
+        "title": "To create a SQL injection match set"
+      }
+    ],
+    "CreateWebACL": [
+      {
+        "input": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+          "DefaultAction": {
+            "Type": "ALLOW"
+          },
+          "MetricName": "CreateExample",
+          "Name": "CreateExample"
+        },
+        "output": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+          "WebACL": {
+            "DefaultAction": {
+              "Type": "ALLOW"
+            },
+            "MetricName": "CreateExample",
+            "Name": "CreateExample",
+            "Rules": [
+              {
+                "Action": {
+                  "Type": "ALLOW"
+                },
+                "Priority": 1,
+                "RuleId": "WAFRule-1-Example"
+              }
+            ],
+            "WebACLId": "example-46da-4444-5555-example"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example creates a web ACL named CreateExample.",
+        "id": "createwebacl-1472061481310",
+        "title": "To create a web ACL"
+      }
+    ],
+    "CreateXssMatchSet": [
+      {
+        "input": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+          "Name": "MySampleXssMatchSet"
+        },
+        "output": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+          "XssMatchSet": {
+            "Name": "MySampleXssMatchSet",
+            "XssMatchSetId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5",
+            "XssMatchTuples": [
+              {
+                "FieldToMatch": {
+                  "Type": "QUERY_STRING"
+                },
+                "TextTransformation": "URL_DECODE"
+              }
+            ]
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example creates an XSS match set named MySampleXssMatchSet.",
+        "id": "createxssmatchset-1474560868500",
+        "title": "To create an XSS match set"
+      }
+    ],
+    "DeleteByteMatchSet": [
+      {
+        "input": {
+          "ByteMatchSetId": "exampleIDs3t-46da-4fdb-b8d5-abc321j569j5",
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f"
+        },
+        "output": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes a byte match set with the ID exampleIDs3t-46da-4fdb-b8d5-abc321j569j5.",
+        "id": "deletebytematchset-1473367566229",
+        "title": "To delete a byte match set"
+      }
+    ],
+    "DeleteIPSet": [
+      {
+        "input": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+          "IPSetId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5"
+        },
+        "output": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes an IP match set  with the ID example1ds3t-46da-4fdb-b8d5-abc321j569j5.",
+        "id": "deleteipset-1472767434306",
+        "title": "To delete an IP set"
+      }
+    ],
+    "DeleteRule": [
+      {
+        "input": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+          "RuleId": "WAFRule-1-Example"
+        },
+        "output": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes a rule with the ID WAFRule-1-Example.",
+        "id": "deleterule-1474073108749",
+        "title": "To delete a rule"
+      }
+    ],
+    "DeleteSizeConstraintSet": [
+      {
+        "input": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+          "SizeConstraintSetId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5"
+        },
+        "output": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes a size constraint set  with the ID example1ds3t-46da-4fdb-b8d5-abc321j569j5.",
+        "id": "deletesizeconstraintset-1474299857905",
+        "title": "To delete a size constraint set"
+      }
+    ],
+    "DeleteSqlInjectionMatchSet": [
+      {
+        "input": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+          "SqlInjectionMatchSetId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5"
+        },
+        "output": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes a SQL injection match set  with the ID example1ds3t-46da-4fdb-b8d5-abc321j569j5.",
+        "id": "deletesqlinjectionmatchset-1474493373197",
+        "title": "To delete a SQL injection match set"
+      }
+    ],
+    "DeleteWebACL": [
+      {
+        "input": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+          "WebACLId": "example-46da-4444-5555-example"
+        },
+        "output": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes a web ACL with the ID example-46da-4444-5555-example.",
+        "id": "deletewebacl-1472767755931",
+        "title": "To delete a web ACL"
+      }
+    ],
+    "DeleteXssMatchSet": [
+      {
+        "input": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+          "XssMatchSetId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5"
+        },
+        "output": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes an XSS match set with the ID example1ds3t-46da-4fdb-b8d5-abc321j569j5.",
+        "id": "deletexssmatchset-1474561302618",
+        "title": "To delete an XSS match set"
+      }
+    ],
+    "GetByteMatchSet": [
+      {
+        "input": {
+          "ByteMatchSetId": "exampleIDs3t-46da-4fdb-b8d5-abc321j569j5"
+        },
+        "output": {
+          "ByteMatchSet": {
+            "ByteMatchSetId": "exampleIDs3t-46da-4fdb-b8d5-abc321j569j5",
+            "ByteMatchTuples": [
+              {
+                "FieldToMatch": {
+                  "Data": "referer",
+                  "Type": "HEADER"
+                },
+                "PositionalConstraint": "CONTAINS",
+                "TargetString": "badrefer1",
+                "TextTransformation": "NONE"
+              }
+            ],
+            "Name": "ByteMatchNameExample"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns the details of a byte match set with the ID exampleIDs3t-46da-4fdb-b8d5-abc321j569j5.",
+        "id": "getbytematchset-1473273311532",
+        "title": "To get a byte match set"
+      }
+    ],
+    "GetChangeToken": [
+      {
+        "input": {
+        },
+        "output": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns a change token to use for a create, update or delete operation.",
+        "id": "get-change-token-example-1471635120794",
+        "title": "To get a change token"
+      }
+    ],
+    "GetChangeTokenStatus": [
+      {
+        "input": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f"
+        },
+        "output": {
+          "ChangeTokenStatus": "PENDING"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns the status of a change token with the ID abcd12f2-46da-4fdb-b8d5-fbd4c466928f.",
+        "id": "getchangetokenstatus-1474658417107",
+        "title": "To get the change token status"
+      }
+    ],
+    "GetIPSet": [
+      {
+        "input": {
+          "IPSetId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5"
+        },
+        "output": {
+          "IPSet": {
+            "IPSetDescriptors": [
+              {
+                "Type": "IPV4",
+                "Value": "192.0.2.44/32"
+              }
+            ],
+            "IPSetId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5",
+            "Name": "MyIPSetFriendlyName"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns the details of an IP match set with the ID example1ds3t-46da-4fdb-b8d5-abc321j569j5.",
+        "id": "getipset-1474658688675",
+        "title": "To get an IP set"
+      }
+    ],
+    "GetRule": [
+      {
+        "input": {
+          "RuleId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5"
+        },
+        "output": {
+          "Rule": {
+            "MetricName": "WAFByteHeaderRule",
+            "Name": "WAFByteHeaderRule",
+            "Predicates": [
+              {
+                "DataId": "MyByteMatchSetID",
+                "Negated": false,
+                "Type": "ByteMatch"
+              }
+            ],
+            "RuleId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns the details of a rule with the ID example1ds3t-46da-4fdb-b8d5-abc321j569j5.",
+        "id": "getrule-1474659238790",
+        "title": "To get a rule"
+      }
+    ],
+    "GetSampledRequests": [
+      {
+        "input": {
+          "MaxItems": 100,
+          "RuleId": "WAFRule-1-Example",
+          "TimeWindow": {
+            "EndTime": "2016-09-27T15:50Z",
+            "StartTime": "2016-09-27T15:50Z"
+          },
+          "WebAclId": "createwebacl-1472061481310"
+        },
+        "output": {
+          "PopulationSize": 50,
+          "SampledRequests": [
+            {
+              "Action": "BLOCK",
+              "Request": {
+                "ClientIP": "192.0.2.44",
+                "Country": "US",
+                "HTTPVersion": "HTTP/1.1",
+                "Headers": [
+                  {
+                    "Name": "User-Agent",
+                    "Value": "BadBot "
+                  }
+                ],
+                "Method": "HEAD"
+              },
+              "Timestamp": "2016-09-27T14:55Z",
+              "Weight": 1
+            }
+          ],
+          "TimeWindow": {
+            "EndTime": "2016-09-27T15:50Z",
+            "StartTime": "2016-09-27T14:50Z"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns detailed information about 100 requests --a sample-- that AWS WAF randomly selects from among the first 5,000 requests that your AWS resource received between the time period 2016-09-27T15:50Z to 2016-09-27T15:50Z.",
+        "id": "getsampledrequests-1474927997195",
+        "title": "To get a sampled requests"
+      }
+    ],
+    "GetSizeConstraintSet": [
+      {
+        "input": {
+          "SizeConstraintSetId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5"
+        },
+        "output": {
+          "SizeConstraintSet": {
+            "Name": "MySampleSizeConstraintSet",
+            "SizeConstraintSetId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5",
+            "SizeConstraints": [
+              {
+                "ComparisonOperator": "GT",
+                "FieldToMatch": {
+                  "Type": "QUERY_STRING"
+                },
+                "Size": 0,
+                "TextTransformation": "NONE"
+              }
+            ]
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns the details of a size constraint match set with the ID example1ds3t-46da-4fdb-b8d5-abc321j569j5.",
+        "id": "getsizeconstraintset-1475005422493",
+        "title": "To get a size constraint set"
+      }
+    ],
+    "GetSqlInjectionMatchSet": [
+      {
+        "input": {
+          "SqlInjectionMatchSetId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5"
+        },
+        "output": {
+          "SqlInjectionMatchSet": {
+            "Name": "MySQLInjectionMatchSet",
+            "SqlInjectionMatchSetId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5",
+            "SqlInjectionMatchTuples": [
+              {
+                "FieldToMatch": {
+                  "Type": "QUERY_STRING"
+                },
+                "TextTransformation": "URL_DECODE"
+              }
+            ]
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns the details of a SQL injection match set with the ID example1ds3t-46da-4fdb-b8d5-abc321j569j5.",
+        "id": "getsqlinjectionmatchset-1475005940137",
+        "title": "To get a SQL injection match set"
+      }
+    ],
+    "GetWebACL": [
+      {
+        "input": {
+          "WebACLId": "createwebacl-1472061481310"
+        },
+        "output": {
+          "WebACL": {
+            "DefaultAction": {
+              "Type": "ALLOW"
+            },
+            "MetricName": "CreateExample",
+            "Name": "CreateExample",
+            "Rules": [
+              {
+                "Action": {
+                  "Type": "ALLOW"
+                },
+                "Priority": 1,
+                "RuleId": "WAFRule-1-Example"
+              }
+            ],
+            "WebACLId": "createwebacl-1472061481310"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns the details of a web ACL with the ID createwebacl-1472061481310.",
+        "id": "getwebacl-1475006348525",
+        "title": "To get a web ACL"
+      }
+    ],
+    "GetXssMatchSet": [
+      {
+        "input": {
+          "XssMatchSetId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5"
+        },
+        "output": {
+          "XssMatchSet": {
+            "Name": "MySampleXssMatchSet",
+            "XssMatchSetId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5",
+            "XssMatchTuples": [
+              {
+                "FieldToMatch": {
+                  "Type": "QUERY_STRING"
+                },
+                "TextTransformation": "URL_DECODE"
+              }
+            ]
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns the details of an XSS match set with the ID example1ds3t-46da-4fdb-b8d5-abc321j569j5.",
+        "id": "getxssmatchset-1475187879017",
+        "title": "To get an XSS match set"
+      }
+    ],
+    "ListIPSets": [
+      {
+        "input": {
+          "Limit": 100
+        },
+        "output": {
+          "IPSets": [
+            {
+              "IPSetId": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+              "Name": "MyIPSetFriendlyName"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns an array of up to 100 IP match sets.",
+        "id": "listipsets-1472235676229",
+        "title": "To list IP sets"
+      }
+    ],
+    "ListRules": [
+      {
+        "input": {
+          "Limit": 100
+        },
+        "output": {
+          "Rules": [
+            {
+              "Name": "WAFByteHeaderRule",
+              "RuleId": "WAFRule-1-Example"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns an array of up to 100 rules.",
+        "id": "listrules-1475258406433",
+        "title": "To list rules"
+      }
+    ],
+    "ListSizeConstraintSets": [
+      {
+        "input": {
+          "Limit": 100
+        },
+        "output": {
+          "SizeConstraintSets": [
+            {
+              "Name": "MySampleSizeConstraintSet",
+              "SizeConstraintSetId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns an array of up to 100 size contraint match sets.",
+        "id": "listsizeconstraintsets-1474300067597",
+        "title": "To list a size constraint sets"
+      }
+    ],
+    "ListSqlInjectionMatchSets": [
+      {
+        "input": {
+          "Limit": 100
+        },
+        "output": {
+          "SqlInjectionMatchSets": [
+            {
+              "Name": "MySQLInjectionMatchSet",
+              "SqlInjectionMatchSetId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns an array of up to 100 SQL injection match sets.",
+        "id": "listsqlinjectionmatchset-1474493560103",
+        "title": "To list SQL injection match sets"
+      }
+    ],
+    "ListWebACLs": [
+      {
+        "input": {
+          "Limit": 100
+        },
+        "output": {
+          "WebACLs": [
+            {
+              "Name": "WebACLexample",
+              "WebACLId": "webacl-1472061481310"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns an array of up to 100 web ACLs.",
+        "id": "listwebacls-1475258732691",
+        "title": "To list Web ACLs"
+      }
+    ],
+    "ListXssMatchSets": [
+      {
+        "input": {
+          "Limit": 100
+        },
+        "output": {
+          "XssMatchSets": [
+            {
+              "Name": "MySampleXssMatchSet",
+              "XssMatchSetId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns an array of up to 100 XSS match sets.",
+        "id": "listxssmatchsets-1474561481168",
+        "title": "To list XSS match sets"
+      }
+    ],
+    "UpdateByteMatchSet": [
+      {
+        "input": {
+          "ByteMatchSetId": "exampleIDs3t-46da-4fdb-b8d5-abc321j569j5",
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+          "Updates": [
+            {
+              "Action": "DELETE",
+              "ByteMatchTuple": {
+                "FieldToMatch": {
+                  "Data": "referer",
+                  "Type": "HEADER"
+                },
+                "PositionalConstraint": "CONTAINS",
+                "TargetString": "badrefer1",
+                "TextTransformation": "NONE"
+              }
+            }
+          ]
+        },
+        "output": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes a ByteMatchTuple object (filters) in an byte match set with the ID exampleIDs3t-46da-4fdb-b8d5-abc321j569j5.",
+        "id": "updatebytematchset-1475259074558",
+        "title": "To update a byte match set"
+      }
+    ],
+    "UpdateIPSet": [
+      {
+        "input": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+          "IPSetId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5",
+          "Updates": [
+            {
+              "Action": "DELETE",
+              "IPSetDescriptor": {
+                "Type": "IPV4",
+                "Value": "192.0.2.44/32"
+              }
+            }
+          ]
+        },
+        "output": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes an IPSetDescriptor object in an IP match set with the ID example1ds3t-46da-4fdb-b8d5-abc321j569j5.",
+        "id": "updateipset-1475259733625",
+        "title": "To update an IP set"
+      }
+    ],
+    "UpdateRule": [
+      {
+        "input": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+          "RuleId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5",
+          "Updates": [
+            {
+              "Action": "DELETE",
+              "Predicate": {
+                "DataId": "MyByteMatchSetID",
+                "Negated": false,
+                "Type": "ByteMatch"
+              }
+            }
+          ]
+        },
+        "output": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes a Predicate object in a rule with the ID example1ds3t-46da-4fdb-b8d5-abc321j569j5.",
+        "id": "updaterule-1475260064720",
+        "title": "To update a rule"
+      }
+    ],
+    "UpdateSizeConstraintSet": [
+      {
+        "input": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+          "SizeConstraintSetId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5",
+          "Updates": [
+            {
+              "Action": "DELETE",
+              "SizeConstraint": {
+                "ComparisonOperator": "GT",
+                "FieldToMatch": {
+                  "Type": "QUERY_STRING"
+                },
+                "Size": 0,
+                "TextTransformation": "NONE"
+              }
+            }
+          ]
+        },
+        "output": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes a SizeConstraint object (filters) in a size constraint set with the ID example1ds3t-46da-4fdb-b8d5-abc321j569j5.",
+        "id": "updatesizeconstraintset-1475531697891",
+        "title": "To update a size constraint set"
+      }
+    ],
+    "UpdateSqlInjectionMatchSet": [
+      {
+        "input": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+          "SqlInjectionMatchSetId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5",
+          "Updates": [
+            {
+              "Action": "DELETE",
+              "SqlInjectionMatchTuple": {
+                "FieldToMatch": {
+                  "Type": "QUERY_STRING"
+                },
+                "TextTransformation": "URL_DECODE"
+              }
+            }
+          ]
+        },
+        "output": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes a SqlInjectionMatchTuple object (filters) in a SQL injection match set with the ID example1ds3t-46da-4fdb-b8d5-abc321j569j5.",
+        "id": "updatesqlinjectionmatchset-1475532094686",
+        "title": "To update a SQL injection match set"
+      }
+    ],
+    "UpdateWebACL": [
+      {
+        "input": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+          "DefaultAction": {
+            "Type": "ALLOW"
+          },
+          "Updates": [
+            {
+              "Action": "DELETE",
+              "ActivatedRule": {
+                "Action": {
+                  "Type": "ALLOW"
+                },
+                "Priority": 1,
+                "RuleId": "WAFRule-1-Example"
+              }
+            }
+          ],
+          "WebACLId": "webacl-1472061481310"
+        },
+        "output": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes an ActivatedRule object in a WebACL with the ID webacl-1472061481310.",
+        "id": "updatewebacl-1475533627385",
+        "title": "To update a Web ACL"
+      }
+    ],
+    "UpdateXssMatchSet": [
+      {
+        "input": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+          "Updates": [
+            {
+              "Action": "DELETE",
+              "XssMatchTuple": {
+                "FieldToMatch": {
+                  "Type": "QUERY_STRING"
+                },
+                "TextTransformation": "URL_DECODE"
+              }
+            }
+          ],
+          "XssMatchSetId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5"
+        },
+        "output": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes an XssMatchTuple object (filters) in an XssMatchSet with the ID example1ds3t-46da-4fdb-b8d5-abc321j569j5.",
+        "id": "updatexssmatchset-1475534098881",
+        "title": "To update an XSS match set"
+      }
+    ]
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/waf-regional/2016-11-28/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/waf-regional/2016-11-28/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/waf-regional/2016-11-28/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/waf-regional/2016-11-28/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/waf-regional/2016-11-28/service-2.json.gz
new file mode 100644
index 00000000..369ded76
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/waf-regional/2016-11-28/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/waf/2015-08-24/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/waf/2015-08-24/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..99885da2
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/waf/2015-08-24/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/waf/2015-08-24/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/waf/2015-08-24/examples-1.json
new file mode 100644
index 00000000..eee5b6f4
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/waf/2015-08-24/examples-1.json
@@ -0,0 +1,1017 @@
+{
+  "version": "1.0",
+  "examples": {
+    "CreateIPSet": [
+      {
+        "input": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+          "Name": "MyIPSetFriendlyName"
+        },
+        "output": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+          "IPSet": {
+            "IPSetDescriptors": [
+              {
+                "Type": "IPV4",
+                "Value": "192.0.2.44/32"
+              }
+            ],
+            "IPSetId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5",
+            "Name": "MyIPSetFriendlyName"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example creates an IP match set named MyIPSetFriendlyName.",
+        "id": "createipset-1472501003122",
+        "title": "To create an IP set"
+      }
+    ],
+    "CreateRule": [
+      {
+        "input": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+          "MetricName": "WAFByteHeaderRule",
+          "Name": "WAFByteHeaderRule"
+        },
+        "output": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+          "Rule": {
+            "MetricName": "WAFByteHeaderRule",
+            "Name": "WAFByteHeaderRule",
+            "Predicates": [
+              {
+                "DataId": "MyByteMatchSetID",
+                "Negated": false,
+                "Type": "ByteMatch"
+              }
+            ],
+            "RuleId": "WAFRule-1-Example"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example creates a rule named WAFByteHeaderRule.",
+        "id": "createrule-1474072675555",
+        "title": "To create a rule"
+      }
+    ],
+    "CreateSizeConstraintSet": [
+      {
+        "input": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+          "Name": "MySampleSizeConstraintSet"
+        },
+        "output": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+          "SizeConstraintSet": {
+            "Name": "MySampleSizeConstraintSet",
+            "SizeConstraintSetId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5",
+            "SizeConstraints": [
+              {
+                "ComparisonOperator": "GT",
+                "FieldToMatch": {
+                  "Type": "QUERY_STRING"
+                },
+                "Size": 0,
+                "TextTransformation": "NONE"
+              }
+            ]
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example creates size constraint set named MySampleSizeConstraintSet.",
+        "id": "createsizeconstraint-1474299140754",
+        "title": "To create a size constraint"
+      }
+    ],
+    "CreateSqlInjectionMatchSet": [
+      {
+        "input": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+          "Name": "MySQLInjectionMatchSet"
+        },
+        "output": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+          "SqlInjectionMatchSet": {
+            "Name": "MySQLInjectionMatchSet",
+            "SqlInjectionMatchSetId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5",
+            "SqlInjectionMatchTuples": [
+              {
+                "FieldToMatch": {
+                  "Type": "QUERY_STRING"
+                },
+                "TextTransformation": "URL_DECODE"
+              }
+            ]
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example creates a SQL injection match set named MySQLInjectionMatchSet.",
+        "id": "createsqlinjectionmatchset-1474492796105",
+        "title": "To create a SQL injection match set"
+      }
+    ],
+    "CreateWebACL": [
+      {
+        "input": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+          "DefaultAction": {
+            "Type": "ALLOW"
+          },
+          "MetricName": "CreateExample",
+          "Name": "CreateExample"
+        },
+        "output": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+          "WebACL": {
+            "DefaultAction": {
+              "Type": "ALLOW"
+            },
+            "MetricName": "CreateExample",
+            "Name": "CreateExample",
+            "Rules": [
+              {
+                "Action": {
+                  "Type": "ALLOW"
+                },
+                "Priority": 1,
+                "RuleId": "WAFRule-1-Example"
+              }
+            ],
+            "WebACLId": "example-46da-4444-5555-example"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example creates a web ACL named CreateExample.",
+        "id": "createwebacl-1472061481310",
+        "title": "To create a web ACL"
+      }
+    ],
+    "CreateXssMatchSet": [
+      {
+        "input": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+          "Name": "MySampleXssMatchSet"
+        },
+        "output": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+          "XssMatchSet": {
+            "Name": "MySampleXssMatchSet",
+            "XssMatchSetId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5",
+            "XssMatchTuples": [
+              {
+                "FieldToMatch": {
+                  "Type": "QUERY_STRING"
+                },
+                "TextTransformation": "URL_DECODE"
+              }
+            ]
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example creates an XSS match set named MySampleXssMatchSet.",
+        "id": "createxssmatchset-1474560868500",
+        "title": "To create an XSS match set"
+      }
+    ],
+    "DeleteByteMatchSet": [
+      {
+        "input": {
+          "ByteMatchSetId": "exampleIDs3t-46da-4fdb-b8d5-abc321j569j5",
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f"
+        },
+        "output": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes a byte match set with the ID exampleIDs3t-46da-4fdb-b8d5-abc321j569j5.",
+        "id": "deletebytematchset-1473367566229",
+        "title": "To delete a byte match set"
+      }
+    ],
+    "DeleteIPSet": [
+      {
+        "input": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+          "IPSetId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5"
+        },
+        "output": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes an IP match set  with the ID example1ds3t-46da-4fdb-b8d5-abc321j569j5.",
+        "id": "deleteipset-1472767434306",
+        "title": "To delete an IP set"
+      }
+    ],
+    "DeleteRule": [
+      {
+        "input": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+          "RuleId": "WAFRule-1-Example"
+        },
+        "output": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes a rule with the ID WAFRule-1-Example.",
+        "id": "deleterule-1474073108749",
+        "title": "To delete a rule"
+      }
+    ],
+    "DeleteSizeConstraintSet": [
+      {
+        "input": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+          "SizeConstraintSetId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5"
+        },
+        "output": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes a size constraint set  with the ID example1ds3t-46da-4fdb-b8d5-abc321j569j5.",
+        "id": "deletesizeconstraintset-1474299857905",
+        "title": "To delete a size constraint set"
+      }
+    ],
+    "DeleteSqlInjectionMatchSet": [
+      {
+        "input": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+          "SqlInjectionMatchSetId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5"
+        },
+        "output": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes a SQL injection match set  with the ID example1ds3t-46da-4fdb-b8d5-abc321j569j5.",
+        "id": "deletesqlinjectionmatchset-1474493373197",
+        "title": "To delete a SQL injection match set"
+      }
+    ],
+    "DeleteWebACL": [
+      {
+        "input": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+          "WebACLId": "example-46da-4444-5555-example"
+        },
+        "output": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes a web ACL with the ID example-46da-4444-5555-example.",
+        "id": "deletewebacl-1472767755931",
+        "title": "To delete a web ACL"
+      }
+    ],
+    "DeleteXssMatchSet": [
+      {
+        "input": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+          "XssMatchSetId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5"
+        },
+        "output": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes an XSS match set with the ID example1ds3t-46da-4fdb-b8d5-abc321j569j5.",
+        "id": "deletexssmatchset-1474561302618",
+        "title": "To delete an XSS match set"
+      }
+    ],
+    "GetByteMatchSet": [
+      {
+        "input": {
+          "ByteMatchSetId": "exampleIDs3t-46da-4fdb-b8d5-abc321j569j5"
+        },
+        "output": {
+          "ByteMatchSet": {
+            "ByteMatchSetId": "exampleIDs3t-46da-4fdb-b8d5-abc321j569j5",
+            "ByteMatchTuples": [
+              {
+                "FieldToMatch": {
+                  "Data": "referer",
+                  "Type": "HEADER"
+                },
+                "PositionalConstraint": "CONTAINS",
+                "TargetString": "badrefer1",
+                "TextTransformation": "NONE"
+              }
+            ],
+            "Name": "ByteMatchNameExample"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns the details of a byte match set with the ID exampleIDs3t-46da-4fdb-b8d5-abc321j569j5.",
+        "id": "getbytematchset-1473273311532",
+        "title": "To get a byte match set"
+      }
+    ],
+    "GetChangeToken": [
+      {
+        "input": {
+        },
+        "output": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns a change token to use for a create, update or delete operation.",
+        "id": "get-change-token-example-1471635120794",
+        "title": "To get a change token"
+      }
+    ],
+    "GetChangeTokenStatus": [
+      {
+        "input": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f"
+        },
+        "output": {
+          "ChangeTokenStatus": "PENDING"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns the status of a change token with the ID abcd12f2-46da-4fdb-b8d5-fbd4c466928f.",
+        "id": "getchangetokenstatus-1474658417107",
+        "title": "To get the change token status"
+      }
+    ],
+    "GetIPSet": [
+      {
+        "input": {
+          "IPSetId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5"
+        },
+        "output": {
+          "IPSet": {
+            "IPSetDescriptors": [
+              {
+                "Type": "IPV4",
+                "Value": "192.0.2.44/32"
+              }
+            ],
+            "IPSetId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5",
+            "Name": "MyIPSetFriendlyName"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns the details of an IP match set with the ID example1ds3t-46da-4fdb-b8d5-abc321j569j5.",
+        "id": "getipset-1474658688675",
+        "title": "To get an IP set"
+      }
+    ],
+    "GetRule": [
+      {
+        "input": {
+          "RuleId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5"
+        },
+        "output": {
+          "Rule": {
+            "MetricName": "WAFByteHeaderRule",
+            "Name": "WAFByteHeaderRule",
+            "Predicates": [
+              {
+                "DataId": "MyByteMatchSetID",
+                "Negated": false,
+                "Type": "ByteMatch"
+              }
+            ],
+            "RuleId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns the details of a rule with the ID example1ds3t-46da-4fdb-b8d5-abc321j569j5.",
+        "id": "getrule-1474659238790",
+        "title": "To get a rule"
+      }
+    ],
+    "GetSampledRequests": [
+      {
+        "input": {
+          "MaxItems": 100,
+          "RuleId": "WAFRule-1-Example",
+          "TimeWindow": {
+            "EndTime": "2016-09-27T15:50Z",
+            "StartTime": "2016-09-27T15:50Z"
+          },
+          "WebAclId": "createwebacl-1472061481310"
+        },
+        "output": {
+          "PopulationSize": 50,
+          "SampledRequests": [
+            {
+              "Action": "BLOCK",
+              "Request": {
+                "ClientIP": "192.0.2.44",
+                "Country": "US",
+                "HTTPVersion": "HTTP/1.1",
+                "Headers": [
+                  {
+                    "Name": "User-Agent",
+                    "Value": "BadBot "
+                  }
+                ],
+                "Method": "HEAD"
+              },
+              "Timestamp": "2016-09-27T14:55Z",
+              "Weight": 1
+            }
+          ],
+          "TimeWindow": {
+            "EndTime": "2016-09-27T15:50Z",
+            "StartTime": "2016-09-27T14:50Z"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns detailed information about 100 requests --a sample-- that AWS WAF randomly selects from among the first 5,000 requests that your AWS resource received between the time period 2016-09-27T15:50Z to 2016-09-27T15:50Z.",
+        "id": "getsampledrequests-1474927997195",
+        "title": "To get a sampled requests"
+      }
+    ],
+    "GetSizeConstraintSet": [
+      {
+        "input": {
+          "SizeConstraintSetId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5"
+        },
+        "output": {
+          "SizeConstraintSet": {
+            "Name": "MySampleSizeConstraintSet",
+            "SizeConstraintSetId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5",
+            "SizeConstraints": [
+              {
+                "ComparisonOperator": "GT",
+                "FieldToMatch": {
+                  "Type": "QUERY_STRING"
+                },
+                "Size": 0,
+                "TextTransformation": "NONE"
+              }
+            ]
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns the details of a size constraint match set with the ID example1ds3t-46da-4fdb-b8d5-abc321j569j5.",
+        "id": "getsizeconstraintset-1475005422493",
+        "title": "To get a size constraint set"
+      }
+    ],
+    "GetSqlInjectionMatchSet": [
+      {
+        "input": {
+          "SqlInjectionMatchSetId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5"
+        },
+        "output": {
+          "SqlInjectionMatchSet": {
+            "Name": "MySQLInjectionMatchSet",
+            "SqlInjectionMatchSetId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5",
+            "SqlInjectionMatchTuples": [
+              {
+                "FieldToMatch": {
+                  "Type": "QUERY_STRING"
+                },
+                "TextTransformation": "URL_DECODE"
+              }
+            ]
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns the details of a SQL injection match set with the ID example1ds3t-46da-4fdb-b8d5-abc321j569j5.",
+        "id": "getsqlinjectionmatchset-1475005940137",
+        "title": "To get a SQL injection match set"
+      }
+    ],
+    "GetWebACL": [
+      {
+        "input": {
+          "WebACLId": "createwebacl-1472061481310"
+        },
+        "output": {
+          "WebACL": {
+            "DefaultAction": {
+              "Type": "ALLOW"
+            },
+            "MetricName": "CreateExample",
+            "Name": "CreateExample",
+            "Rules": [
+              {
+                "Action": {
+                  "Type": "ALLOW"
+                },
+                "Priority": 1,
+                "RuleId": "WAFRule-1-Example"
+              }
+            ],
+            "WebACLId": "createwebacl-1472061481310"
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns the details of a web ACL with the ID createwebacl-1472061481310.",
+        "id": "getwebacl-1475006348525",
+        "title": "To get a web ACL"
+      }
+    ],
+    "GetXssMatchSet": [
+      {
+        "input": {
+          "XssMatchSetId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5"
+        },
+        "output": {
+          "XssMatchSet": {
+            "Name": "MySampleXssMatchSet",
+            "XssMatchSetId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5",
+            "XssMatchTuples": [
+              {
+                "FieldToMatch": {
+                  "Type": "QUERY_STRING"
+                },
+                "TextTransformation": "URL_DECODE"
+              }
+            ]
+          }
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns the details of an XSS match set with the ID example1ds3t-46da-4fdb-b8d5-abc321j569j5.",
+        "id": "getxssmatchset-1475187879017",
+        "title": "To get an XSS match set"
+      }
+    ],
+    "ListIPSets": [
+      {
+        "input": {
+          "Limit": 100
+        },
+        "output": {
+          "IPSets": [
+            {
+              "IPSetId": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+              "Name": "MyIPSetFriendlyName"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns an array of up to 100 IP match sets.",
+        "id": "listipsets-1472235676229",
+        "title": "To list IP sets"
+      }
+    ],
+    "ListRules": [
+      {
+        "input": {
+          "Limit": 100
+        },
+        "output": {
+          "Rules": [
+            {
+              "Name": "WAFByteHeaderRule",
+              "RuleId": "WAFRule-1-Example"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns an array of up to 100 rules.",
+        "id": "listrules-1475258406433",
+        "title": "To list rules"
+      }
+    ],
+    "ListSizeConstraintSets": [
+      {
+        "input": {
+          "Limit": 100
+        },
+        "output": {
+          "SizeConstraintSets": [
+            {
+              "Name": "MySampleSizeConstraintSet",
+              "SizeConstraintSetId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns an array of up to 100 size contraint match sets.",
+        "id": "listsizeconstraintsets-1474300067597",
+        "title": "To list a size constraint sets"
+      }
+    ],
+    "ListSqlInjectionMatchSets": [
+      {
+        "input": {
+          "Limit": 100
+        },
+        "output": {
+          "SqlInjectionMatchSets": [
+            {
+              "Name": "MySQLInjectionMatchSet",
+              "SqlInjectionMatchSetId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns an array of up to 100 SQL injection match sets.",
+        "id": "listsqlinjectionmatchset-1474493560103",
+        "title": "To list SQL injection match sets"
+      }
+    ],
+    "ListWebACLs": [
+      {
+        "input": {
+          "Limit": 100
+        },
+        "output": {
+          "WebACLs": [
+            {
+              "Name": "WebACLexample",
+              "WebACLId": "webacl-1472061481310"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns an array of up to 100 web ACLs.",
+        "id": "listwebacls-1475258732691",
+        "title": "To list Web ACLs"
+      }
+    ],
+    "ListXssMatchSets": [
+      {
+        "input": {
+          "Limit": 100
+        },
+        "output": {
+          "XssMatchSets": [
+            {
+              "Name": "MySampleXssMatchSet",
+              "XssMatchSetId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5"
+            }
+          ]
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example returns an array of up to 100 XSS match sets.",
+        "id": "listxssmatchsets-1474561481168",
+        "title": "To list XSS match sets"
+      }
+    ],
+    "UpdateByteMatchSet": [
+      {
+        "input": {
+          "ByteMatchSetId": "exampleIDs3t-46da-4fdb-b8d5-abc321j569j5",
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+          "Updates": [
+            {
+              "Action": "DELETE",
+              "ByteMatchTuple": {
+                "FieldToMatch": {
+                  "Data": "referer",
+                  "Type": "HEADER"
+                },
+                "PositionalConstraint": "CONTAINS",
+                "TargetString": "badrefer1",
+                "TextTransformation": "NONE"
+              }
+            }
+          ]
+        },
+        "output": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes a ByteMatchTuple object (filters) in an byte match set with the ID exampleIDs3t-46da-4fdb-b8d5-abc321j569j5.",
+        "id": "updatebytematchset-1475259074558",
+        "title": "To update a byte match set"
+      }
+    ],
+    "UpdateIPSet": [
+      {
+        "input": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+          "IPSetId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5",
+          "Updates": [
+            {
+              "Action": "DELETE",
+              "IPSetDescriptor": {
+                "Type": "IPV4",
+                "Value": "192.0.2.44/32"
+              }
+            }
+          ]
+        },
+        "output": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes an IPSetDescriptor object in an IP match set with the ID example1ds3t-46da-4fdb-b8d5-abc321j569j5.",
+        "id": "updateipset-1475259733625",
+        "title": "To update an IP set"
+      }
+    ],
+    "UpdateRule": [
+      {
+        "input": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+          "RuleId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5",
+          "Updates": [
+            {
+              "Action": "DELETE",
+              "Predicate": {
+                "DataId": "MyByteMatchSetID",
+                "Negated": false,
+                "Type": "ByteMatch"
+              }
+            }
+          ]
+        },
+        "output": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes a Predicate object in a rule with the ID example1ds3t-46da-4fdb-b8d5-abc321j569j5.",
+        "id": "updaterule-1475260064720",
+        "title": "To update a rule"
+      }
+    ],
+    "UpdateSizeConstraintSet": [
+      {
+        "input": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+          "SizeConstraintSetId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5",
+          "Updates": [
+            {
+              "Action": "DELETE",
+              "SizeConstraint": {
+                "ComparisonOperator": "GT",
+                "FieldToMatch": {
+                  "Type": "QUERY_STRING"
+                },
+                "Size": 0,
+                "TextTransformation": "NONE"
+              }
+            }
+          ]
+        },
+        "output": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes a SizeConstraint object (filters) in a size constraint set with the ID example1ds3t-46da-4fdb-b8d5-abc321j569j5.",
+        "id": "updatesizeconstraintset-1475531697891",
+        "title": "To update a size constraint set"
+      }
+    ],
+    "UpdateSqlInjectionMatchSet": [
+      {
+        "input": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+          "SqlInjectionMatchSetId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5",
+          "Updates": [
+            {
+              "Action": "DELETE",
+              "SqlInjectionMatchTuple": {
+                "FieldToMatch": {
+                  "Type": "QUERY_STRING"
+                },
+                "TextTransformation": "URL_DECODE"
+              }
+            }
+          ]
+        },
+        "output": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes a SqlInjectionMatchTuple object (filters) in a SQL injection match set with the ID example1ds3t-46da-4fdb-b8d5-abc321j569j5.",
+        "id": "updatesqlinjectionmatchset-1475532094686",
+        "title": "To update a SQL injection match set"
+      }
+    ],
+    "UpdateWebACL": [
+      {
+        "input": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+          "DefaultAction": {
+            "Type": "ALLOW"
+          },
+          "Updates": [
+            {
+              "Action": "DELETE",
+              "ActivatedRule": {
+                "Action": {
+                  "Type": "ALLOW"
+                },
+                "Priority": 1,
+                "RuleId": "WAFRule-1-Example"
+              }
+            }
+          ],
+          "WebACLId": "webacl-1472061481310"
+        },
+        "output": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes an ActivatedRule object in a WebACL with the ID webacl-1472061481310.",
+        "id": "updatewebacl-1475533627385",
+        "title": "To update a Web ACL"
+      }
+    ],
+    "UpdateXssMatchSet": [
+      {
+        "input": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f",
+          "Updates": [
+            {
+              "Action": "DELETE",
+              "XssMatchTuple": {
+                "FieldToMatch": {
+                  "Type": "QUERY_STRING"
+                },
+                "TextTransformation": "URL_DECODE"
+              }
+            }
+          ],
+          "XssMatchSetId": "example1ds3t-46da-4fdb-b8d5-abc321j569j5"
+        },
+        "output": {
+          "ChangeToken": "abcd12f2-46da-4fdb-b8d5-fbd4c466928f"
+        },
+        "comments": {
+          "input": {
+          },
+          "output": {
+          }
+        },
+        "description": "The following example deletes an XssMatchTuple object (filters) in an XssMatchSet with the ID example1ds3t-46da-4fdb-b8d5-abc321j569j5.",
+        "id": "updatexssmatchset-1475534098881",
+        "title": "To update an XSS match set"
+      }
+    ]
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/waf/2015-08-24/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/waf/2015-08-24/paginators-1.json
new file mode 100644
index 00000000..9f2eba80
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/waf/2015-08-24/paginators-1.json
@@ -0,0 +1,99 @@
+{
+  "pagination": {
+    "ListByteMatchSets": {
+      "input_token": "NextMarker",
+      "output_token": "NextMarker",
+      "limit_key": "Limit",
+      "result_key": "ByteMatchSets"
+    },
+    "ListIPSets": {
+      "input_token": "NextMarker",
+      "output_token": "NextMarker",
+      "limit_key": "Limit",
+      "result_key": "IPSets"
+    },
+    "ListRules": {
+      "input_token": "NextMarker",
+      "output_token": "NextMarker",
+      "limit_key": "Limit",
+      "result_key": "Rules"
+    },
+    "ListSizeConstraintSets": {
+      "input_token": "NextMarker",
+      "output_token": "NextMarker",
+      "limit_key": "Limit",
+      "result_key": "SizeConstraintSets"
+    },
+    "ListSqlInjectionMatchSets": {
+      "input_token": "NextMarker",
+      "output_token": "NextMarker",
+      "limit_key": "Limit",
+      "result_key": "SqlInjectionMatchSets"
+    },
+    "ListWebACLs": {
+      "input_token": "NextMarker",
+      "output_token": "NextMarker",
+      "limit_key": "Limit",
+      "result_key": "WebACLs"
+    },
+    "ListXssMatchSets": {
+      "input_token": "NextMarker",
+      "output_token": "NextMarker",
+      "limit_key": "Limit",
+      "result_key": "XssMatchSets"
+    },
+    "GetRateBasedRuleManagedKeys": {
+      "input_token": "NextMarker",
+      "output_token": "NextMarker",
+      "result_key": "ManagedKeys"
+    },
+    "ListActivatedRulesInRuleGroup": {
+      "input_token": "NextMarker",
+      "limit_key": "Limit",
+      "output_token": "NextMarker",
+      "result_key": "ActivatedRules"
+    },
+    "ListGeoMatchSets": {
+      "input_token": "NextMarker",
+      "limit_key": "Limit",
+      "output_token": "NextMarker",
+      "result_key": "GeoMatchSets"
+    },
+    "ListLoggingConfigurations": {
+      "input_token": "NextMarker",
+      "limit_key": "Limit",
+      "output_token": "NextMarker",
+      "result_key": "LoggingConfigurations"
+    },
+    "ListRateBasedRules": {
+      "input_token": "NextMarker",
+      "limit_key": "Limit",
+      "output_token": "NextMarker",
+      "result_key": "Rules"
+    },
+    "ListRegexMatchSets": {
+      "input_token": "NextMarker",
+      "limit_key": "Limit",
+      "output_token": "NextMarker",
+      "result_key": "RegexMatchSets"
+    },
+    "ListRegexPatternSets": {
+      "input_token": "NextMarker",
+      "limit_key": "Limit",
+      "output_token": "NextMarker",
+      "result_key": "RegexPatternSets"
+    },
+    "ListRuleGroups": {
+      "input_token": "NextMarker",
+      "limit_key": "Limit",
+      "output_token": "NextMarker",
+      "result_key": "RuleGroups"
+    },
+    "ListSubscribedRuleGroups": {
+      "input_token": "NextMarker",
+      "limit_key": "Limit",
+      "output_token": "NextMarker",
+      "result_key": "RuleGroups"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/waf/2015-08-24/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/waf/2015-08-24/service-2.json.gz
new file mode 100644
index 00000000..357918b1
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/waf/2015-08-24/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/wafv2/2019-07-29/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/wafv2/2019-07-29/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..19ff687e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/wafv2/2019-07-29/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/wafv2/2019-07-29/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/wafv2/2019-07-29/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/wafv2/2019-07-29/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/wafv2/2019-07-29/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/wafv2/2019-07-29/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/wafv2/2019-07-29/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/wafv2/2019-07-29/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/wafv2/2019-07-29/service-2.json.gz
new file mode 100644
index 00000000..72c6157d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/wafv2/2019-07-29/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/wellarchitected/2020-03-31/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/wellarchitected/2020-03-31/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..ab9b6a76
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/wellarchitected/2020-03-31/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/wellarchitected/2020-03-31/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/wellarchitected/2020-03-31/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/wellarchitected/2020-03-31/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/wellarchitected/2020-03-31/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/wellarchitected/2020-03-31/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/wellarchitected/2020-03-31/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/wellarchitected/2020-03-31/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/wellarchitected/2020-03-31/service-2.json.gz
new file mode 100644
index 00000000..2d595373
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/wellarchitected/2020-03-31/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/wisdom/2020-10-19/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/wisdom/2020-10-19/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..872dd90e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/wisdom/2020-10-19/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/wisdom/2020-10-19/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/wisdom/2020-10-19/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/wisdom/2020-10-19/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/wisdom/2020-10-19/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/wisdom/2020-10-19/paginators-1.json
new file mode 100644
index 00000000..60b1dca5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/wisdom/2020-10-19/paginators-1.json
@@ -0,0 +1,64 @@
+{
+  "pagination": {
+    "ListAssistantAssociations": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "assistantAssociationSummaries"
+    },
+    "ListAssistants": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "assistantSummaries"
+    },
+    "ListContents": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "contentSummaries"
+    },
+    "ListKnowledgeBases": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "knowledgeBaseSummaries"
+    },
+    "QueryAssistant": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "results"
+    },
+    "SearchContent": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "contentSummaries"
+    },
+    "SearchSessions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "sessionSummaries"
+    },
+    "ListImportJobs": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "importJobSummaries"
+    },
+    "ListQuickResponses": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "quickResponseSummaries"
+    },
+    "SearchQuickResponses": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "results"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/wisdom/2020-10-19/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/wisdom/2020-10-19/service-2.json.gz
new file mode 100644
index 00000000..97e57983
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/wisdom/2020-10-19/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/workdocs/2016-05-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/workdocs/2016-05-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..52886300
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/workdocs/2016-05-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/workdocs/2016-05-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/workdocs/2016-05-01/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/workdocs/2016-05-01/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/workdocs/2016-05-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/workdocs/2016-05-01/paginators-1.json
new file mode 100644
index 00000000..ff2f410a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/workdocs/2016-05-01/paginators-1.json
@@ -0,0 +1,67 @@
+{
+  "pagination": {
+    "DescribeDocumentVersions": {
+      "input_token": "Marker",
+      "limit_key": "Limit",
+      "output_token": "Marker",
+      "result_key": "DocumentVersions"
+    },
+    "DescribeFolderContents": {
+      "input_token": "Marker",
+      "limit_key": "Limit",
+      "output_token": "Marker",
+      "result_key": [
+        "Folders",
+        "Documents"
+      ]
+    },
+    "DescribeUsers": {
+      "input_token": "Marker",
+      "limit_key": "Limit",
+      "output_token": "Marker",
+      "result_key": "Users"
+    },
+    "DescribeActivities": {
+      "input_token": "Marker",
+      "limit_key": "Limit",
+      "output_token": "Marker",
+      "result_key": "UserActivities"
+    },
+    "DescribeComments": {
+      "input_token": "Marker",
+      "limit_key": "Limit",
+      "output_token": "Marker",
+      "result_key": "Comments"
+    },
+    "DescribeGroups": {
+      "input_token": "Marker",
+      "limit_key": "Limit",
+      "output_token": "Marker",
+      "result_key": "Groups"
+    },
+    "DescribeNotificationSubscriptions": {
+      "input_token": "Marker",
+      "limit_key": "Limit",
+      "output_token": "Marker",
+      "result_key": "Subscriptions"
+    },
+    "DescribeResourcePermissions": {
+      "input_token": "Marker",
+      "limit_key": "Limit",
+      "output_token": "Marker",
+      "result_key": "Principals"
+    },
+    "DescribeRootFolders": {
+      "input_token": "Marker",
+      "limit_key": "Limit",
+      "output_token": "Marker",
+      "result_key": "Folders"
+    },
+    "SearchResources": {
+      "input_token": "Marker",
+      "limit_key": "Limit",
+      "output_token": "Marker",
+      "result_key": "Items"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/workdocs/2016-05-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/workdocs/2016-05-01/service-2.json.gz
new file mode 100644
index 00000000..630c9d94
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/workdocs/2016-05-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/workmail/2017-10-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/workmail/2017-10-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..a9e34c96
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/workmail/2017-10-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/workmail/2017-10-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/workmail/2017-10-01/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/workmail/2017-10-01/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/workmail/2017-10-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/workmail/2017-10-01/paginators-1.json
new file mode 100644
index 00000000..a4d5bd2f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/workmail/2017-10-01/paginators-1.json
@@ -0,0 +1,64 @@
+{
+  "pagination": {
+    "ListUsers": {
+      "result_key": "Users",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListGroupMembers": {
+      "result_key": "Members",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListOrganizations": {
+      "result_key": "OrganizationSummaries",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListGroups": {
+      "result_key": "Groups",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListResources": {
+      "result_key": "Resources",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListAliases": {
+      "result_key": "Aliases",
+      "output_token": "NextToken",
+      "input_token": "NextToken",
+      "limit_key": "MaxResults"
+    },
+    "ListMailboxPermissions": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Permissions"
+    },
+    "ListResourceDelegates": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Delegates"
+    },
+    "ListAvailabilityConfigurations": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "AvailabilityConfigurations"
+    },
+    "ListPersonalAccessTokens": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "limit_key": "MaxResults",
+      "result_key": "PersonalAccessTokenSummaries"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/workmail/2017-10-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/workmail/2017-10-01/service-2.json.gz
new file mode 100644
index 00000000..12be14f5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/workmail/2017-10-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/workmailmessageflow/2019-05-01/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/workmailmessageflow/2019-05-01/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..a1befe6b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/workmailmessageflow/2019-05-01/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/workmailmessageflow/2019-05-01/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/workmailmessageflow/2019-05-01/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/workmailmessageflow/2019-05-01/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/workmailmessageflow/2019-05-01/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/workmailmessageflow/2019-05-01/paginators-1.json
new file mode 100644
index 00000000..ea142457
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/workmailmessageflow/2019-05-01/paginators-1.json
@@ -0,0 +1,3 @@
+{
+  "pagination": {}
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/workmailmessageflow/2019-05-01/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/workmailmessageflow/2019-05-01/service-2.json.gz
new file mode 100644
index 00000000..811e63e8
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/workmailmessageflow/2019-05-01/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/workspaces-thin-client/2023-08-22/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/workspaces-thin-client/2023-08-22/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..b49f35f7
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/workspaces-thin-client/2023-08-22/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/workspaces-thin-client/2023-08-22/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/workspaces-thin-client/2023-08-22/paginators-1.json
new file mode 100644
index 00000000..9fe21a48
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/workspaces-thin-client/2023-08-22/paginators-1.json
@@ -0,0 +1,22 @@
+{
+  "pagination": {
+    "ListDevices": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "devices"
+    },
+    "ListEnvironments": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "environments"
+    },
+    "ListSoftwareSets": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "softwareSets"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/workspaces-thin-client/2023-08-22/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/workspaces-thin-client/2023-08-22/service-2.json.gz
new file mode 100644
index 00000000..4ec6e78d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/workspaces-thin-client/2023-08-22/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/workspaces-web/2020-07-08/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/workspaces-web/2020-07-08/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..1ba47809
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/workspaces-web/2020-07-08/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/workspaces-web/2020-07-08/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/workspaces-web/2020-07-08/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/workspaces-web/2020-07-08/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/workspaces-web/2020-07-08/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/workspaces-web/2020-07-08/paginators-1.json
new file mode 100644
index 00000000..73743e34
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/workspaces-web/2020-07-08/paginators-1.json
@@ -0,0 +1,16 @@
+{
+  "pagination": {
+    "ListSessions": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "sessions"
+    },
+    "ListDataProtectionSettings": {
+      "input_token": "nextToken",
+      "output_token": "nextToken",
+      "limit_key": "maxResults",
+      "result_key": "dataProtectionSettings"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/workspaces-web/2020-07-08/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/workspaces-web/2020-07-08/service-2.json.gz
new file mode 100644
index 00000000..a0d7070b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/workspaces-web/2020-07-08/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/workspaces/2015-04-08/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/workspaces/2015-04-08/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..ea3c68ea
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/workspaces/2015-04-08/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/workspaces/2015-04-08/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/workspaces/2015-04-08/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/workspaces/2015-04-08/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/workspaces/2015-04-08/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/workspaces/2015-04-08/paginators-1.json
new file mode 100644
index 00000000..01176ffb
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/workspaces/2015-04-08/paginators-1.json
@@ -0,0 +1,54 @@
+{
+  "pagination": {
+    "DescribeWorkspaceBundles": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "Bundles"
+    },
+    "DescribeWorkspaceDirectories": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "Directories"
+    },
+    "DescribeWorkspaces": {
+      "limit_key": "Limit",
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "Workspaces"
+    },
+    "DescribeAccountModifications": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "AccountModifications"
+    },
+    "DescribeIpGroups": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Result"
+    },
+    "DescribeWorkspaceImages": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "Images"
+    },
+    "DescribeWorkspacesConnectionStatus": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "WorkspacesConnectionStatus"
+    },
+    "ListAvailableManagementCidrRanges": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "ManagementCidrRanges"
+    },
+    "ListAccountLinks": {
+      "input_token": "NextToken",
+      "limit_key": "MaxResults",
+      "output_token": "NextToken",
+      "result_key": "AccountLinks"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/workspaces/2015-04-08/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/workspaces/2015-04-08/service-2.json.gz
new file mode 100644
index 00000000..542ce1b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/workspaces/2015-04-08/service-2.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/xray/2016-04-12/endpoint-rule-set-1.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/xray/2016-04-12/endpoint-rule-set-1.json.gz
new file mode 100644
index 00000000..251db98c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/xray/2016-04-12/endpoint-rule-set-1.json.gz
Binary files differdiff --git a/.venv/lib/python3.12/site-packages/botocore/data/xray/2016-04-12/examples-1.json b/.venv/lib/python3.12/site-packages/botocore/data/xray/2016-04-12/examples-1.json
new file mode 100644
index 00000000..0ea7e3b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/xray/2016-04-12/examples-1.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.0",
+  "examples": {
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/xray/2016-04-12/paginators-1.json b/.venv/lib/python3.12/site-packages/botocore/data/xray/2016-04-12/paginators-1.json
new file mode 100644
index 00000000..0f65898f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/xray/2016-04-12/paginators-1.json
@@ -0,0 +1,69 @@
+{
+  "pagination": {
+    "BatchGetTraces": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "Traces",
+      "non_aggregate_keys": [
+        "UnprocessedTraceIds"
+      ]
+    },
+    "GetServiceGraph": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "Services",
+      "non_aggregate_keys": [
+        "StartTime",
+        "EndTime",
+        "ContainsOldGroupVersions"
+      ]
+    },
+    "GetTraceGraph": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "Services"
+    },
+    "GetTraceSummaries": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "TraceSummaries",
+      "non_aggregate_keys": [
+        "TracesProcessedCount",
+        "ApproximateTime"
+      ]
+    },
+    "GetGroups": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "Groups"
+    },
+    "GetSamplingRules": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "SamplingRuleRecords"
+    },
+    "GetSamplingStatisticSummaries": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "SamplingStatisticSummaries"
+    },
+    "GetTimeSeriesServiceStatistics": {
+      "input_token": "NextToken",
+      "non_aggregate_keys": [
+        "ContainsOldGroupVersions"
+      ],
+      "output_token": "NextToken",
+      "result_key": "TimeSeriesServiceStatistics"
+    },
+    "ListResourcePolicies": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "ResourcePolicies"
+    },
+    "ListTagsForResource": {
+      "input_token": "NextToken",
+      "output_token": "NextToken",
+      "result_key": "Tags"
+    }
+  }
+}
diff --git a/.venv/lib/python3.12/site-packages/botocore/data/xray/2016-04-12/service-2.json.gz b/.venv/lib/python3.12/site-packages/botocore/data/xray/2016-04-12/service-2.json.gz
new file mode 100644
index 00000000..0701492c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/data/xray/2016-04-12/service-2.json.gz
Binary files differ